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