GCC supports several types of pragmas, primarily in order to compile
code originally written for other compilers. Note that in general
we do not recommend the use of pragmas; Section 6.25 Declaring Attributes of Functions,
for further explanation.
6.47.1. RS/6000 and PowerPC Pragmas
The RS/6000 and PowerPC targets define one pragma for controlling
whether or not the longcall attribute is added to function
declarations by default. This pragma overrides the -mlongcall
option, but not the longcall and shortcall attributes.
Section 4.17.1 IBM RS/6000 and PowerPC Options, for more information about when long
calls are and are not necessary.
longcall (1)
Apply the longcall attribute to all subsequent function
declarations.
longcall (0)
Do not apply the longcall attribute to subsequent function
declarations.
6.47.2. Darwin Pragmas
The following pragmas are available for all architectures running the
Darwin operating system. These are useful for compatibility with other
Mac OS compilers.
mark tokens…
This pragma is accepted, but has no effect.
options align=alignment
This pragma sets the alignment of fields in structures. The values of
alignment may be mac68k, to emulate m68k alignment, or
power, to emulate PowerPC alignment. Uses of this pragma nest
properly; to restore the previous setting, use reset for the
alignment.
segment tokens…
This pragma is accepted, but has no effect.
unused (var [, var]…)
This pragma declares variables to be possibly unused. GCC will not
produce warnings for the listed variables. The effect is similar to
that of the unused attribute, except that this pragma may appear
anywhere within the variables' scopes.