aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/tests2/77_push_pop_macro.c30
-rw-r--r--tests/tests2/77_push_pop_macro.expect5
-rw-r--r--tests/tests2/Makefile3
3 files changed, 37 insertions, 1 deletions
diff --git a/tests/tests2/77_push_pop_macro.c b/tests/tests2/77_push_pop_macro.c
new file mode 100644
index 0000000..d38e0bf
--- /dev/null
+++ b/tests/tests2/77_push_pop_macro.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+
+int main()
+{
+ /* must not affect how #pragma ppop_macro works */
+ #define pop_macro foobar1
+
+ /* must not affect how #pragma push_macro works */
+ #define push_macro foobar2
+
+ #undef abort
+ #define abort "111"
+ printf("abort = %s\n", abort);
+
+ #pragma push_macro("abort")
+ #undef abort
+ #define abort "222"
+ printf("abort = %s\n", abort);
+
+ #pragma push_macro("abort")
+ #undef abort
+ #define abort "333"
+ printf("abort = %s\n", abort);
+
+ #pragma pop_macro("abort")
+ printf("abort = %s\n", abort);
+
+ #pragma pop_macro("abort")
+ printf("abort = %s\n", abort);
+}
diff --git a/tests/tests2/77_push_pop_macro.expect b/tests/tests2/77_push_pop_macro.expect
new file mode 100644
index 0000000..d8a5530
--- /dev/null
+++ b/tests/tests2/77_push_pop_macro.expect
@@ -0,0 +1,5 @@
+abort = 111
+abort = 222
+abort = 333
+abort = 222
+abort = 111
diff --git a/tests/tests2/Makefile b/tests/tests2/Makefile
index a5a18fb..87daf7b 100644
--- a/tests/tests2/Makefile
+++ b/tests/tests2/Makefile
@@ -95,7 +95,8 @@ TESTS = \
73_arm64.test \
74_nocode_wanted.test \
75_array_in_struct_init.test \
- 76_dollars_in_identifiers.test
+ 76_dollars_in_identifiers.test \
+ 77_push_pop_macro.test
# 34_array_assignment.test -- array assignment is not in C standard