Tobias Burnus wrote:
While looking at the index for -fsanitize=, I found out that it – and many other options – lack the @opindex. Attached is an attempted to add the missing ones.
Updated patch: I also observed some odd "*<-fsanitize=null>" output in the man page; Manuel suggested a fix which indeed works (using @gcctabopt), which I now also include.
OK for the trunk? Tobias
2013-11-24 Tobias Burnus <bur...@net-b.de> Manuel López-Ibáñez <m...@gcc.gnu.org> PR middle-end/59257 * doc/invoke.texi: Add missing @opindex. (-fsanitize=): Use @gcctabopt instead of @itemize. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 0708836..f00bbf2 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -1500,6 +1500,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 @@ -1509,15 +1510,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 @@ -1751,6 +1755,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 @@ -2392,7 +2397,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 @@ -3490,6 +3495,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 @@ -3528,6 +3535,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}. @@ -5258,18 +5266,21 @@ 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. See @uref{http://code.google.com/p/address-sanitizer/} for more details. @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/data-race-test/wiki/ThreadSanitizer} for more details. @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 @@ -5277,43 +5288,49 @@ case it will link the executable against a library that overrides @code{malloc} and other allocator functions. @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. @@ -5375,6 +5392,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. @@ -5387,6 +5405,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, @@ -5717,6 +5736,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 @@ -8005,6 +8025,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 @@ -8015,6 +8036,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 @@ -8658,9 +8680,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 @@ -10217,6 +10241,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} @@ -10226,6 +10251,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} @@ -10235,6 +10261,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} @@ -10244,6 +10271,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} @@ -10253,6 +10281,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 @@ -10345,6 +10374,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 @@ -11794,7 +11824,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