blob: 14b19b33d05054fa3d7ac25bbe583bf15835cea0 [file] [log] [blame]
// Test allowexcept feature
%module allowexcept
// First make sure %exception is not used by default for variable wrappers
%nodefaultctor;
%nodefaultdtor;
%exception {
This will not compile
}
%inline %{
struct UVW {};
UVW uvw_global_variable;
struct Bar {
UVW member_variable;
static UVW static_member_variable;
};
UVW Bar::static_member_variable;
%}
// Now test the allowexcept feature by making the usual $action uncompileable and ensuring the %exception is picked up
struct XYZ {
};
%{
struct XYZ {
void foo() {}
private:
XYZ& operator=(const XYZ& other); // prevent assignment used in normally generated set method
XYZ* operator&(); // prevent dereferencing used in normally generated get method
};
%}
#if defined(SWIGUTL)
%exception {
/*
$action
*/
SWIG_fail;
}
#else
%exception {
/*
$action
*/
}
#endif
%allowexception;
%inline %{
XYZ global_variable;
struct Foo {
XYZ member_variable;
static XYZ static_member_variable;
};
XYZ Foo::static_member_variable;
%}