This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: {Patch/documentation} PR 35054 Document #pragma push|pop_macro


Ping

On Feb 5, 2008 10:36 PM, Danny Smith <dansmister@gmail.com> wrote:
> This provides missung user documentation for the new extension
> #pragma_push_macro and #pragma_pop_macro.
>
> OK for 4.3.0?
>
> :ADDPATCH documentation:
>
> 2008-02-05  Danny Smith  <dannysmith@users.sourceforge.net>
>
>         PR 35054
>         * doc/extend.texi (Push/Pop Macro Pragmas): Add documentation
>         for #pragma_push_macro and #pragma_pop_macro
>
> Index: extend.texi
> ===================================================================
> --- extend.texi (revision 131857)
> +++ extend.texi (working copy)
> @@ -10831,6 +10831,7 @@
>  * Weak Pragmas::
>  * Diagnostic Pragmas::
>  * Visibility Pragmas::
> +* Push/Pop Macro Pragmas::
>  @end menu
>
>  @node ARM Pragmas
> @@ -11146,6 +11147,34 @@
>
>  @end table
>
> +
> +@node Push/Pop Macro Pragmas
> +@subsection Push/Pop Macro Pragmas
> +For compatibility with MSVC, GCC supports the Win32 style pragmas
> +@samp{#pragma push_macro(@var{"macro_name"})} and @samp{#pragma
> +pop_macro(@var{"macro_name"})}.
> +
> +@enumerate
> +@item @code{#pragma push_macro(@var{"macro_name"})} saves the
> +value of the macro named as @var{macro_name} to the top of the stack for
> +this macro
> +@item @code{#pragma pop_macro(@var{"macro_name"})} sets the
> +value of the macro named as @var{macro_name} to the value on top of
> +the stack for this macro. If the stack for @var{macro_name} is empty,
> +the value of the macro remains unchanged.
> +@end enumerate
> +
> +For example:
> +
> +@smallexample
> +#define X  1
> +#pragma push_macro("X")
> +#undef X
> +#define X -1
> +#pragma pop_macro("X")
> +int x [X];
> +@end smallexample
> +
>  @node Unnamed Fields
>  @section Unnamed struct/union fields within structs/unions
>  @cindex struct
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]