test-suite fixes (2) for compilers that don't support varargs

Split director_exception testcase into two so that testing throw(),
with no arguments, that is nothrows, can be tested separately to throw()
taking arguments. [The throw keyword needs to be removed for C++
compilation in C++11 and later when it was deprecated.]
This commit is contained in:
William S Fulton 2018-05-05 14:43:56 +01:00
commit 50cb18087d
5 changed files with 35 additions and 7 deletions

View file

@ -118,9 +118,9 @@ Foo *launder(Foo *f) {
%{
// throw is deprecated in C++11 and invalid in C++17 and later
#if defined(__cplusplus) && __cplusplus >= 201103L
#define throw(TYPES...)
#define throw(TYPE1, TYPE2, TYPE3)
#else
#define throw(TYPES...) throw(TYPES)
#define throw(TYPE1, TYPE2, TYPE3) throw(TYPE1, TYPE2, TYPE3)
#if defined(_MSC_VER)
#pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
#endif
@ -139,16 +139,15 @@ Foo *launder(Foo *f) {
class Base
{
public:
virtual ~Base() throw() {}
virtual ~Base() {}
};
class Bar : public Base
{
public:
virtual std::string ping() throw(Exception1, Exception2&) { return "Bar::ping()"; }
virtual std::string ping() throw(Exception1, Exception2&, double) { return "Bar::ping()"; }
virtual std::string pong() throw(Unknown1, int, Unknown2&) { return "Bar::pong();" + ping(); }
virtual std::string pang() throw() { return "Bar::pang()"; }
};
// Class to allow regression testing SWIG/PHP not checking if an exception