From e2965db317ee7efd916963c87b9c34023eefda54 Mon Sep 17 00:00:00 2001 From: redi Date: Sun, 27 Mar 2011 20:08:35 +0000 Subject: [PATCH 012/200] 2011-03-27 Jonathan Wakely PR other/48179 PR other/48221 PR other/48234 * doc/extend.texi (Alignment): Move section to match order in TOC. * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise. (Warning Options): Adjust -Wno-cpp summary and remove stray backslash. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@171581 138bc75d-0d04-0410-961f-82ee72b054a4 index c897101..998d703 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -4180,42 +4180,6 @@ machines, typically because the target assembler does not allow them. You can use the sequence @samp{\e} in a string or character constant to stand for the ASCII character @key{ESC}. -@node Alignment -@section Inquiring on Alignment of Types or Variables -@cindex alignment -@cindex type alignment -@cindex variable alignment - -The keyword @code{__alignof__} allows you to inquire about how an object -is aligned, or the minimum alignment usually required by a type. Its -syntax is just like @code{sizeof}. - -For example, if the target machine requires a @code{double} value to be -aligned on an 8-byte boundary, then @code{__alignof__ (double)} is 8. -This is true on many RISC machines. On more traditional machine -designs, @code{__alignof__ (double)} is 4 or even 2. - -Some machines never actually require alignment; they allow reference to any -data type even at an odd address. For these machines, @code{__alignof__} -reports the smallest alignment that GCC will give the data type, usually as -mandated by the target ABI. - -If the operand of @code{__alignof__} is an lvalue rather than a type, -its value is the required alignment for its type, taking into account -any minimum alignment specified with GCC's @code{__attribute__} -extension (@pxref{Variable Attributes}). For example, after this -declaration: - -@smallexample -struct foo @{ int x; char y; @} foo1; -@end smallexample - -@noindent -the value of @code{__alignof__ (foo1.y)} is 1, even though its actual -alignment is probably 2 or 4, the same as @code{__alignof__ (int)}. - -It is an error to ask for the alignment of an incomplete type. - @node Variable Attributes @section Specifying Attributes of Variables @cindex attribute of variables @@ -5224,6 +5188,42 @@ allows one to declare vector data types supported by the Sony/Toshiba/IBM SPU Language Extensions Specification. It is intended to support the @code{__vector} keyword. +@node Alignment +@section Inquiring on Alignment of Types or Variables +@cindex alignment +@cindex type alignment +@cindex variable alignment + +The keyword @code{__alignof__} allows you to inquire about how an object +is aligned, or the minimum alignment usually required by a type. Its +syntax is just like @code{sizeof}. + +For example, if the target machine requires a @code{double} value to be +aligned on an 8-byte boundary, then @code{__alignof__ (double)} is 8. +This is true on many RISC machines. On more traditional machine +designs, @code{__alignof__ (double)} is 4 or even 2. + +Some machines never actually require alignment; they allow reference to any +data type even at an odd address. For these machines, @code{__alignof__} +reports the smallest alignment that GCC will give the data type, usually as +mandated by the target ABI. + +If the operand of @code{__alignof__} is an lvalue rather than a type, +its value is the required alignment for its type, taking into account +any minimum alignment specified with GCC's @code{__attribute__} +extension (@pxref{Variable Attributes}). For example, after this +declaration: + +@smallexample +struct foo @{ int x; char y; @} foo1; +@end smallexample + +@noindent +the value of @code{__alignof__ (foo1.y)} is 1, even though its actual +alignment is probably 2 or 4, the same as @code{__alignof__ (int)}. + +It is an error to ask for the alignment of an incomplete type. + @node Inline @section An Inline Function is As Fast As a Macro diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index f4cdf66..5478f79 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -237,7 +237,7 @@ Objective-C and Objective-C++ Dialects}. -Wno-attributes -Wno-builtin-macro-redefined @gol -Wc++-compat -Wc++0x-compat -Wcast-align -Wcast-qual @gol -Wchar-subscripts -Wclobbered -Wcomment @gol --Wconversion -Wcoverage-mismatch -Wcpp -Wno-deprecated @gol +-Wconversion -Wcoverage-mismatch -Wno-cpp -Wno-deprecated @gol -Wno-deprecated-declarations -Wdisabled-optimization @gol -Wno-div-by-zero -Wdouble-promotion -Wempty-body -Wenum-compare @gol -Wno-endif-labels -Werror -Werror=* @gol @@ -613,6 +613,11 @@ Objective-C and Objective-C++ Dialects}. -m32 -m64 -mlarge-data-threshold=@var{num} @gol -msse2avx -mfentry -m8bit-idiv} +@emph{i386 and x86-64 Windows Options} +@gccoptlist{-mconsole -mcygwin -mno-cygwin -mdll +-mnop-fun-dllimport -mthread @gol +-municode -mwin32 -mwindows -fno-set-stack-executable} + @emph{IA-64 Options} @gccoptlist{-mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic @gol -mvolatile-asm-stop -mregister-names -msdata -mno-sdata @gol @@ -906,11 +911,6 @@ See RS/6000 and PowerPC Options. @emph{x86-64 Options} See i386 and x86-64 Options. -@emph{i386 and x86-64 Windows Options} -@gccoptlist{-mconsole -mcygwin -mno-cygwin -mdll --mnop-fun-dllimport -mthread @gol --municode -mwin32 -mwindows -fno-set-stack-executable} - @emph{Xstormy16 Options} @gccoptlist{-msim} @@ -3045,7 +3045,7 @@ Warn whenever a comment-start sequence @samp{/*} appears in a @samp{/*} comment, or whenever a Backslash-Newline appears in a @samp{//} comment. This warning is enabled by @option{-Wall}. -@item -Wno-cpp \ +@item -Wno-cpp @r{(C, Objective-C, C++, Objective-C++ and Fortran only)} Suppress warning messages emitted by @code{#warning} directives. @@ -12815,6 +12815,78 @@ Generate code for the large model: This model makes no assumptions about addresses and sizes of sections. @end table +@node i386 and x86-64 Windows Options +@subsection i386 and x86-64 Windows Options +@cindex i386 and x86-64 Windows Options + +These additional options are available for Windows targets: + +@table @gcctabopt +@item -mconsole +@opindex mconsole +This option is available for Cygwin and MinGW targets. It +specifies that a console application is to be generated, by +instructing the linker to set the PE header subsystem type +required for console applications. +This is the default behavior for Cygwin and MinGW targets. + +@item -mdll +@opindex mdll +This option is available for Cygwin and MinGW targets. It +specifies that a DLL - a dynamic link library - is to be +generated, enabling the selection of the required runtime +startup object and entry point. + +@item -mnop-fun-dllimport +@opindex mnop-fun-dllimport +This option is available for Cygwin and MinGW targets. It +specifies that the dllimport attribute should be ignored. + +@item -mthread +@opindex mthread +This option is available for MinGW targets. It specifies +that MinGW-specific thread support is to be used. + +@item -municode +@opindex municode +This option is available for mingw-w64 targets. It specifies +that the UNICODE macro is getting pre-defined and that the +unicode capable runtime startup code is chosen. + +@item -mwin32 +@opindex mwin32 +This option is available for Cygwin and MinGW targets. It +specifies that the typical Windows pre-defined macros are to +be set in the pre-processor, but does not influence the choice +of runtime library/startup code. + +@item -mwindows +@opindex mwindows +This option is available for Cygwin and MinGW targets. It +specifies that a GUI application is to be generated by +instructing the linker to set the PE header subsystem type +appropriately. + +@item -fno-set-stack-executable +@opindex fno-set-stack-executable +This option is available for MinGW targets. It specifies that +the executable flag for stack used by nested functions isn't +set. This is necessary for binaries running in kernel mode of +Windows, as there the user32 API, which is used to set executable +privileges, isn't available. + +@item -mpe-aligned-commons +@opindex mpe-aligned-commons +This option is available for Cygwin and MinGW targets. It +specifies that the GNU extension to the PE file format that +permits the correct alignment of COMMON variables should be +used when generating code. It will be enabled by default if +GCC detects that the target assembler found during configuration +supports the feature. +@end table + +See also under @ref{i386 and x86-64 Options} for standard options. + @node IA-64 Options @subsection IA-64 Options @cindex IA-64 Options @@ -17541,78 +17613,6 @@ is defined for compatibility with Diab. These are listed under @xref{i386 and x86-64 Options}. -@node i386 and x86-64 Windows Options -@subsection i386 and x86-64 Windows Options -@cindex i386 and x86-64 Windows Options - -These additional options are available for Windows targets: - -@table @gcctabopt -@item -mconsole -@opindex mconsole -This option is available for Cygwin and MinGW targets. It -specifies that a console application is to be generated, by -instructing the linker to set the PE header subsystem type -required for console applications. -This is the default behavior for Cygwin and MinGW targets. - -@item -mdll -@opindex mdll -This option is available for Cygwin and MinGW targets. It -specifies that a DLL - a dynamic link library - is to be -generated, enabling the selection of the required runtime -startup object and entry point. - -@item -mnop-fun-dllimport -@opindex mnop-fun-dllimport -This option is available for Cygwin and MinGW targets. It -specifies that the dllimport attribute should be ignored. - -@item -mthread -@opindex mthread -This option is available for MinGW targets. It specifies -that MinGW-specific thread support is to be used. - -@item -municode -@opindex municode -This option is available for mingw-w64 targets. It specifies -that the UNICODE macro is getting pre-defined and that the -unicode capable runtime startup code is chosen. - -@item -mwin32 -@opindex mwin32 -This option is available for Cygwin and MinGW targets. It -specifies that the typical Windows pre-defined macros are to -be set in the pre-processor, but does not influence the choice -of runtime library/startup code. - -@item -mwindows -@opindex mwindows -This option is available for Cygwin and MinGW targets. It -specifies that a GUI application is to be generated by -instructing the linker to set the PE header subsystem type -appropriately. - -@item -fno-set-stack-executable -@opindex fno-set-stack-executable -This option is available for MinGW targets. It specifies that -the executable flag for stack used by nested functions isn't -set. This is necessary for binaries running in kernel mode of -Windows, as there the user32 API, which is used to set executable -privileges, isn't available. - -@item -mpe-aligned-commons -@opindex mpe-aligned-commons -This option is available for Cygwin and MinGW targets. It -specifies that the GNU extension to the PE file format that -permits the correct alignment of COMMON variables should be -used when generating code. It will be enabled by default if -GCC detects that the target assembler found during configuration -supports the feature. -@end table - -See also under @ref{i386 and x86-64 Options} for standard options. - @node Xstormy16 Options @subsection Xstormy16 Options @cindex Xstormy16 Options -- 1.7.0.4