gcc: Push/Pop Macro Pragmas

1 
1 6.61.14 Push/Pop Macro Pragmas
1 ------------------------------
1 
1 For compatibility with Microsoft Windows compilers, GCC supports
1 '#pragma push_macro("MACRO_NAME")' and '#pragma
1 pop_macro("MACRO_NAME")'.
1 
1 '#pragma push_macro("MACRO_NAME")'
1      This pragma saves the value of the macro named as MACRO_NAME to the
1      top of the stack for this macro.
1 
1 '#pragma pop_macro("MACRO_NAME")'
1      This pragma sets the value of the macro named as MACRO_NAME to the
1      value on top of the stack for this macro.  If the stack for
1      MACRO_NAME is empty, the value of the macro remains unchanged.
1 
1  For example:
1 
1      #define X  1
1      #pragma push_macro("X")
1      #undef X
1      #define X -1
1      #pragma pop_macro("X")
1      int x [X];
1 
1 In this example, the definition of X as 1 is saved by '#pragma
1 push_macro' and restored by '#pragma pop_macro'.
1