* 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:
seyko
2015-04-21 06:34:35 +03:00
parent 5e8fb713c4
commit 0c8447db79
8 changed files with 71 additions and 3 deletions

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