* and #pragma pop_macro("macro_name")
* give warning if pragma is unknown for tcc
* don't free asm_label in sym_free(),
it's a job of the asm_free_labels().
The above pragmas are used in the mingw headers.
Thise pragmas are implemented in gcc-4.5+ and current
clang.
This commit is contained in:
23
tests/tests2/77_push_pop_macro.c
Normal file
23
tests/tests2/77_push_pop_macro.c
Normal file
@ -0,0 +1,23 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
#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);
|
||||
}
|
||||
5
tests/tests2/77_push_pop_macro.expect
Normal file
5
tests/tests2/77_push_pop_macro.expect
Normal file
@ -0,0 +1,5 @@
|
||||
abort = 111
|
||||
abort = 222
|
||||
abort = 333
|
||||
abort = 222
|
||||
abort = 111
|
||||
@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user