a test for the #pragma push/pop_macro

master
seyko 2015-04-25 15:03:50 +03:00
parent 72e8ff11e9
commit 9cbab3630e
3 changed files with 37 additions and 1 deletions

View File

@ -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);
}

View File

@ -0,0 +1,5 @@
abort = 111
abort = 222
abort = 333
abort = 222
abort = 111

View File

@ -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