aboutsummaryrefslogtreecommitdiff
path: root/tests/tests2/77_push_pop_macro.c
diff options
context:
space:
mode:
authorseyko <seyko2@gmail.com>2015-04-21 06:34:35 +0300
committerseyko <seyko2@gmail.com>2015-04-21 06:34:35 +0300
commit0c8447db7970813292a8be74ee50e49091be5d15 (patch)
treef1db257725c3ac9ddec1632473835a0e44d2d240 /tests/tests2/77_push_pop_macro.c
parent5e8fb713c49cfad17d5fb78fb353d88b1ab86eb8 (diff)
downloadtinycc-0c8447db7970813292a8be74ee50e49091be5d15.tar.gz
tinycc-0c8447db7970813292a8be74ee50e49091be5d15.tar.bz2
* 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.
Diffstat (limited to 'tests/tests2/77_push_pop_macro.c')
-rw-r--r--tests/tests2/77_push_pop_macro.c23
1 files changed, 23 insertions, 0 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..1f0b1bc
--- /dev/null
+++ b/tests/tests2/77_push_pop_macro.c
@@ -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);
+}