re PR middle-end/59257 (usan/*san: Dpcumentation oddness of -fsanitize= / -fsanitize=shift)
2013-12-02 Tobias Burnus <burnus@net-b.de> Manuel López-Ibáñez <manu@gcc.gnu.org> PR middle-end/59257 * doc/invoke.texi: Add missing @opindex. (-fsanitize=): Use @gcctabopt instead of @itemize. Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org> From-SVN: r205598
This commit is contained in:
parent
2399cad090
commit
b6cfa9eb37
2 changed files with 46 additions and 9 deletions
|
@ -1,3 +1,10 @@
|
|||
2013-12-02 Tobias Burnus <burnus@net-b.de>
|
||||
Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||||
|
||||
PR middle-end/59257
|
||||
* doc/invoke.texi: Add missing @opindex.
|
||||
(-fsanitize=): Use @gcctabopt instead of @itemize.
|
||||
|
||||
2013-12-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
Fix C++0x memory model for unaligned fields in packed, aligned(4)
|
||||
|
|
|
@ -1501,6 +1501,7 @@ This invokes all subprograms of @command{gcc} under
|
|||
@samp{gdb --args cc1 @dots{}}.
|
||||
|
||||
@item -fplugin=@var{name}.so
|
||||
@opindex fplugin
|
||||
Load the plugin code in file @var{name}.so, assumed to be a
|
||||
shared object to be dlopen'd by the compiler. The base name of
|
||||
the shared object file is used to identify the plugin for the
|
||||
|
@ -1510,15 +1511,18 @@ Each plugin should define the callback functions specified in the
|
|||
Plugins API.
|
||||
|
||||
@item -fplugin-arg-@var{name}-@var{key}=@var{value}
|
||||
@opindex fplugin-arg
|
||||
Define an argument called @var{key} with a value of @var{value}
|
||||
for the plugin called @var{name}.
|
||||
|
||||
@item -fdump-ada-spec@r{[}-slim@r{]}
|
||||
@opindex fdump-ada-spec
|
||||
For C and C++ source and include files, generate corresponding Ada
|
||||
specs. @xref{Generating Ada Bindings for C and C++ headers,,, gnat_ugn,
|
||||
GNAT User's Guide}, which provides detailed documentation on this feature.
|
||||
|
||||
@item -fdump-go-spec=@var{file}
|
||||
@opindex fdump-go-spec
|
||||
For input files in any language, generate corresponding Go
|
||||
declarations in @var{file}. This generates Go @code{const},
|
||||
@code{type}, @code{var}, and @code{func} declarations which may be a
|
||||
|
@ -1759,6 +1763,7 @@ arguments followed by their declarations is also provided, inside
|
|||
comments, after the declaration.
|
||||
|
||||
@item -fallow-parameterless-variadic-functions
|
||||
@opindex fallow-parameterless-variadic-functions
|
||||
Accept variadic functions without named parameters.
|
||||
|
||||
Although it is possible to define such a function, this is not very
|
||||
|
@ -2400,7 +2405,7 @@ Note: This feature APPENDS data to the log file. If you want a fresh log
|
|||
file, be sure to delete any existing one.
|
||||
|
||||
@item -fvtv-counts
|
||||
@opindex (fvtv-counts)
|
||||
@opindex fvtv-counts
|
||||
This is a debugging flag. When used in conjunction with
|
||||
@option{-fvtable-verify=std} or @option{-fvtable-verify=preinit}, this
|
||||
causes the compiler to keep track of the total number of virtual calls
|
||||
|
@ -3499,6 +3504,8 @@ Options,,Options Controlling C Dialect}.
|
|||
@table @gcctabopt
|
||||
@item -Wformat=1
|
||||
@itemx -Wformat
|
||||
@opindex Wformat
|
||||
@opindex Wformat=1
|
||||
Option @option{-Wformat} is equivalent to @option{-Wformat=1}, and
|
||||
@option{-Wno-format} is equivalent to @option{-Wformat=0}. Since
|
||||
@option{-Wformat} also checks for null format arguments for several
|
||||
|
@ -3537,6 +3544,7 @@ The C standard specifies that zero-length formats are allowed.
|
|||
|
||||
|
||||
@item -Wformat=2
|
||||
@opindex Wformat=2
|
||||
Enable @option{-Wformat} plus additional format checks. Currently
|
||||
equivalent to @option{-Wformat -Wformat-nonliteral -Wformat-security
|
||||
-Wformat-y2k}.
|
||||
|
@ -5273,6 +5281,7 @@ many times it is given. This is mainly intended to be used with
|
|||
@option{-fcompare-debug}.
|
||||
|
||||
@item -fsanitize=address
|
||||
@opindex fsanitize=address
|
||||
Enable AddressSanitizer, a fast memory error detector.
|
||||
Memory access instructions will be instrumented to detect
|
||||
out-of-bounds and use-after-free bugs.
|
||||
|
@ -5283,6 +5292,7 @@ more details. The run-time behavior can be influenced using the
|
|||
a list of supported options.
|
||||
|
||||
@item -fsanitize=thread
|
||||
@opindex fsanitize=thread
|
||||
Enable ThreadSanitizer, a fast data race detector.
|
||||
Memory access instructions will be instrumented to detect
|
||||
data race bugs. See @uref{http://code.google.com/p/thread-sanitizer/} for more
|
||||
|
@ -5292,6 +5302,7 @@ environment variable; see
|
|||
supported options.
|
||||
|
||||
@item -fsanitize=leak
|
||||
@opindex fsanitize=leak
|
||||
Enable LeakSanitizer, a memory leak detector.
|
||||
This option only matters for linking of executables and if neither
|
||||
@option{-fsanitize=address} nor @option{-fsanitize=thread} is used. In that
|
||||
|
@ -5302,43 +5313,49 @@ details. The run-time behavior can be influenced using the
|
|||
@env{LSAN_OPTIONS} environment variable.
|
||||
|
||||
@item -fsanitize=undefined
|
||||
@opindex fsanitize=undefined
|
||||
Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector.
|
||||
Various computations will be instrumented to detect undefined behavior
|
||||
at runtime. Current suboptions are:
|
||||
|
||||
@itemize @bullet
|
||||
@table @gcctabopt
|
||||
|
||||
@item @option{-fsanitize=shift}
|
||||
@item -fsanitize=shift
|
||||
@opindex fsanitize=shift
|
||||
|
||||
This option enables checking that the result of a shift operation is
|
||||
not undefined. Note that what exactly is considered undefined differs
|
||||
slightly between C and C++, as well as between ISO C90 and C99, etc.
|
||||
|
||||
@item @option{-fsanitize=integer-divide-by-zero}
|
||||
@item -fsanitize=integer-divide-by-zero
|
||||
@opindex fsanitize=integer-divide-by-zero
|
||||
|
||||
Detect integer division by zero as well as @code{INT_MIN / -1} division.
|
||||
|
||||
@item @option{-fsanitize=unreachable}
|
||||
@item -fsanitize=unreachable
|
||||
@opindex fsanitize=unreachable
|
||||
|
||||
With this option, the compiler will turn the @code{__builtin_unreachable}
|
||||
call into a diagnostics message call instead. When reaching the
|
||||
@code{__builtin_unreachable} call, the behavior is undefined.
|
||||
|
||||
@item @option{-fsanitize=vla-bound}
|
||||
@item -fsanitize=vla-bound
|
||||
@opindex fsanitize=vla-bound
|
||||
|
||||
This option instructs the compiler to check that the size of a variable
|
||||
length array is positive. This option does not have any effect in
|
||||
@option{-std=c++1y} mode, as the standard requires the exception be thrown
|
||||
instead.
|
||||
|
||||
@item @option{-fsanitize=null}
|
||||
@item -fsanitize=null
|
||||
@opindex fsanitize=null
|
||||
|
||||
This option enables pointer checking. Particularly, the application
|
||||
built with this option turned on will issue an error message when it
|
||||
tries to dereference a NULL pointer, or if a reference (possibly an
|
||||
rvalue reference) is bound to a NULL pointer.
|
||||
|
||||
@end itemize
|
||||
@end table
|
||||
|
||||
While @option{-ftrapv} causes traps for signed overflows to be emitted,
|
||||
@option{-fsanitize=undefined} gives a diagnostic message.
|
||||
|
@ -5400,6 +5417,7 @@ information about each symbol. This option only makes sense when
|
|||
generating DWARF 2 debugging information with @option{-gdwarf-2}.
|
||||
|
||||
@item -femit-struct-debug-baseonly
|
||||
@opindex femit-struct-debug-baseonly
|
||||
Emit debug information for struct-like types
|
||||
only when the base name of the compilation source file
|
||||
matches the base name of file in which the struct is defined.
|
||||
|
@ -5412,6 +5430,7 @@ See @option{-femit-struct-debug-detailed} for more detailed control.
|
|||
This option works only with DWARF 2.
|
||||
|
||||
@item -femit-struct-debug-reduced
|
||||
@opindex femit-struct-debug-reduced
|
||||
Emit debug information for struct-like types
|
||||
only when the base name of the compilation source file
|
||||
matches the base name of file in which the type is defined,
|
||||
|
@ -5742,6 +5761,7 @@ Here are some examples showing uses of these options.
|
|||
@itemx -fdump-rtl-@var{pass}
|
||||
@itemx -fdump-rtl-@var{pass}=@var{filename}
|
||||
@opindex d
|
||||
@opindex fdump-rtl-@var{pass}
|
||||
Says to make debugging dumps during compilation at times specified by
|
||||
@var{letters}. This is used for debugging the RTL-based passes of the
|
||||
compiler. The file names for most of the dumps are made by appending
|
||||
|
@ -8030,6 +8050,7 @@ variable names which more closely resemble the original variables. This flag
|
|||
is enabled by default at @option{-O} and higher.
|
||||
|
||||
@item -ftree-coalesce-inlined-vars
|
||||
@opindex ftree-coalesce-inlined-vars
|
||||
Tell the copyrename pass (see @option{-ftree-copyrename}) to attempt to
|
||||
combine small user-defined variables too, but only if they were inlined
|
||||
from other functions. It is a more limited form of
|
||||
|
@ -8040,6 +8061,7 @@ contain the expected values in a debugging session. This was the
|
|||
default in GCC versions older than 4.7.
|
||||
|
||||
@item -ftree-coalesce-vars
|
||||
@opindex ftree-coalesce-vars
|
||||
Tell the copyrename pass (see @option{-ftree-copyrename}) to attempt to
|
||||
combine small user-defined variables too, instead of just compiler
|
||||
temporaries. This may severely limit the ability to debug an optimized
|
||||
|
@ -8691,9 +8713,11 @@ the comparison operation before register allocation is complete.
|
|||
Enabled at levels @option{-O}, @option{-O2}, @option{-O3}, @option{-Os}.
|
||||
|
||||
@item -fuse-ld=bfd
|
||||
@opindex fuse-ld=bfd
|
||||
Use the @command{bfd} linker instead of the default linker.
|
||||
|
||||
@item -fuse-ld=gold
|
||||
@opindex fuse-ld=gold
|
||||
Use the @command{gold} linker instead of the default linker.
|
||||
|
||||
@item -fcprop-registers
|
||||
|
@ -10250,6 +10274,7 @@ for the languages used in the program, or using the option
|
|||
@file{libgcc}.
|
||||
|
||||
@item -static-libasan
|
||||
@opindex static-libasan
|
||||
When the @option{-fsanitize=address} option is used to link a program,
|
||||
the GCC driver automatically links against @option{libasan}. If
|
||||
@file{libasan} is available as a shared library, and the @option{-static}
|
||||
|
@ -10259,6 +10284,7 @@ driver to link @file{libasan} statically, without necessarily linking
|
|||
other libraries statically.
|
||||
|
||||
@item -static-libtsan
|
||||
@opindex static-libtsan
|
||||
When the @option{-fsanitize=thread} option is used to link a program,
|
||||
the GCC driver automatically links against @option{libtsan}. If
|
||||
@file{libtsan} is available as a shared library, and the @option{-static}
|
||||
|
@ -10268,6 +10294,7 @@ driver to link @file{libtsan} statically, without necessarily linking
|
|||
other libraries statically.
|
||||
|
||||
@item -static-liblsan
|
||||
@opindex static-liblsan
|
||||
When the @option{-fsanitize=leak} option is used to link a program,
|
||||
the GCC driver automatically links against @option{liblsan}. If
|
||||
@file{liblsan} is available as a shared library, and the @option{-static}
|
||||
|
@ -10277,6 +10304,7 @@ driver to link @file{liblsan} statically, without necessarily linking
|
|||
other libraries statically.
|
||||
|
||||
@item -static-libubsan
|
||||
@opindex static-libubsan
|
||||
When the @option{-fsanitize=undefined} option is used to link a program,
|
||||
the GCC driver automatically links against @option{libubsan}. If
|
||||
@file{libubsan} is available as a shared library, and the @option{-static}
|
||||
|
@ -10286,6 +10314,7 @@ driver to link @file{libubsan} statically, without necessarily linking
|
|||
other libraries statically.
|
||||
|
||||
@item -static-libstdc++
|
||||
@opindex static-libstdc++
|
||||
When the @command{g++} program is used to link a C++ program, it
|
||||
normally automatically links against @option{libstdc++}. If
|
||||
@file{libstdc++} is available as a shared library, and the
|
||||
|
@ -10378,6 +10407,7 @@ If you really need to change the search order for system directories,
|
|||
use the @option{-nostdinc} and/or @option{-isystem} options.
|
||||
|
||||
@item -iplugindir=@var{dir}
|
||||
@opindex iplugindir=
|
||||
Set the directory to search for plugins that are passed
|
||||
by @option{-fplugin=@var{name}} instead of
|
||||
@option{-fplugin=@var{path}/@var{name}.so}. This option is not meant
|
||||
|
@ -11827,7 +11857,7 @@ Enable Rcw constraint handling - ccfsm condexec mostly depends on this.
|
|||
This is the default.
|
||||
|
||||
@item -msize-level=@var{level}
|
||||
@ opindex msize-level
|
||||
@opindex msize-level
|
||||
Fine-tune size optimization with regards to instruction lengths and alignment.
|
||||
The recognized values for @var{level} are:
|
||||
@table @samp
|
||||
|
|
Loading…
Add table
Reference in a new issue