summaryrefslogtreecommitdiff
path: root/Examples/test-suite/preproc_defined.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/preproc_defined.i')
-rw-r--r--Examples/test-suite/preproc_defined.i26
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
+%}