summaryrefslogtreecommitdiffstats
path: root/gcc/tm.texi
diff options
context:
space:
mode:
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>1998-10-01 10:50:15 +0000
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>1998-10-01 10:50:15 +0000
commita3fa7febd330f496ccf318605c3b293e092b4028 (patch)
treef2a375a13ffbab6fc37885d69817a8914b50746e /gcc/tm.texi
parent2ebda888fcd6502d6f6074956be683798967e4c6 (diff)
downloadppe42-gcc-a3fa7febd330f496ccf318605c3b293e092b4028.tar.gz
ppe42-gcc-a3fa7febd330f496ccf318605c3b293e092b4028.zip
Add support for #pragma pack(push,<n>) and #pragma pack(pop).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22710 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tm.texi')
-rw-r--r--gcc/tm.texi39
1 files changed, 35 insertions, 4 deletions
diff --git a/gcc/tm.texi b/gcc/tm.texi
index 0378bc8f233..d0dee150668 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -7345,10 +7345,10 @@ C++, which is to pretend that the file's contents are enclosed in
@findex HANDLE_PRAGMA
@findex #pragma
@findex pragma
-@item HANDLE_PRAGMA (@var{getc}, @var{ungetc}, @var{node})
+@item HANDLE_PRAGMA (@var{getc}, @var{ungetc}, @var{name})
Define this macro if you want to implement any pragmas. If defined, it
is a C expression whose value is 1 if the pragma was handled by the
-function, zero otherwise. The argument @var{getc} is a function of type
+macro, zero otherwise. The argument @var{getc} is a function of type
@samp{int (*)(void)} which will return the next character in the input
stream, or EOF if no characters are left. The argument @var{ungetc} is
a function of type @samp{void (*)(int)} which will push a character back
@@ -7356,8 +7356,8 @@ into the input stream. The argument @var{name} is the word following
#pragma in the input stream. The input stream pointer will be pointing
just beyond the end of this word. The input stream should be left
undistrubed if the expression returns zero, otherwise it should be
-pointing at the last character after the end of the pragma (newline or
-end-of-file).
+pointing at the next character after the end of the pragma. Any
+characters remaining on the line will be ignored.
It is generally a bad idea to implement new uses of @code{#pragma}. The
only reason to define this macro is for compatibility with other
@@ -7371,6 +7371,37 @@ Note: older versions of this macro only had two arguments: @var{stream}
and @var{token}. The macro was changed in order to allow it to work
when gcc is built both with and without a cpp library.
+@findex HANDLE_SYSV_PRAGMA
+@findex #pragma
+@findex pragma
+@item HANDLE_SYSV_PRAGMA
+Define this macro (to a value of 1) if you want the System V style
+pragmas @samp{#pragma pack(<n>)} and @samp{#pragma weak <name>
+[=<value>]} to be supported by gcc.
+
+The pack pragma specifies the maximum alignment (in bytes) of fields
+within a structure, in much the same way as the @samp{__aligned__} and
+@samp{__packed__} @code{__attribute__}s do. A pack value of zero resets
+the behaviour to the default.
+
+The weak pragma only works if @code{SUPPORTS_WEAK} and
+@code{ASM_WEAKEN_LABEL} are defined. If enabled it allows the creation
+of specifically named weak labels, optionally with a value.
+
+@findex HANDLE_PRAGMA_PACK_PUSH_POP
+@findex #pragma
+@findex pragma
+@item HANDLE_PRAGMA_PACK_PUSH_POP
+Define this macro (to a value of 1) if you want to support the Win32
+style pragmas @samp{#pragma pack(push,<n>)} and @samp{#pragma
+pack(pop)}. The pack(push,<n>) pragma specifies the maximum alignment
+(in bytes) of fields within a structure, in much the same way as the
+@samp{__aligned__} and @samp{__packed__} @code{__attribute__}s do. A
+pack value of zero resets the behaviour to the default. Successive
+invocations of this pragma cause the previous values to be stacked, so
+that invocations of @samp{#pragma pack(pop)} will return to the previous
+value.
+
@findex VALID_MACHINE_DECL_ATTRIBUTE
@item VALID_MACHINE_DECL_ATTRIBUTE (@var{decl}, @var{attributes}, @var{identifier}, @var{args})
If defined, a C expression whose value is nonzero if @var{identifier} with
OpenPOWER on IntegriCloud