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:
parent
9fb996b83f
commit
50cb18087d
5 changed files with 35 additions and 7 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue