diff options
Diffstat (limited to 'Examples/test-suite/preproc_defined.i')
-rw-r--r-- | Examples/test-suite/preproc_defined.i | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/Examples/test-suite/preproc_defined.i b/Examples/test-suite/preproc_defined.i index 21afa86ec..de654df36 100644 --- a/Examples/test-suite/preproc_defined.i +++ b/Examples/test-suite/preproc_defined.i @@ -125,4 +125,28 @@ void another_macro_checking(void) { #endif #define __attribute__(x) -%import <preproc_defined.h> +%inline %{ +/* + * This should not compile in when this bug is present + * https://github.com/swig/swig/issues/2525 + */ +#define my_bad_attr __attribute__ +#define my_good_attr(x) __attribute__(x) + +int bad my_bad_attr((used)); +int good my_good_attr((used)); + +/* + * The behaviour of Self-Referential Macros is defined + * https://gcc.gnu.org/onlinedocs/gcc-4.8.5/cpp/Self-Referential-Macros.html + */ +int y = 0; + +#define x (4 + y) +#define y (2 * x) + +int z = y; + +#undef y +#undef x +%} |