comparison gcc/doc/options.texi @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 @c Copyright (C) 2003-2018 Free Software Foundation, Inc. 1 @c Copyright (C) 2003-2020 Free Software Foundation, Inc.
2 @c This is part of the GCC manual. 2 @c This is part of the GCC manual.
3 @c For copying conditions, see the file gcc.texi. 3 @c For copying conditions, see the file gcc.texi.
4 4
5 @node Options 5 @node Options
6 @chapter Option specification files 6 @chapter Option specification files
218 218
219 @item Negative(@var{othername}) 219 @item Negative(@var{othername})
220 The option will turn off another option @var{othername}, which is 220 The option will turn off another option @var{othername}, which is
221 the option name with the leading ``-'' removed. This chain action will 221 the option name with the leading ``-'' removed. This chain action will
222 propagate through the @code{Negative} property of the option to be 222 propagate through the @code{Negative} property of the option to be
223 turned off. 223 turned off. The driver will prune options, removing those that are
224 turned off by some later option. This pruning is not done for options
225 with @code{Joined} or @code{JoinedOrMissing} properties, unless the
226 options have either @code{RejectNegative} property or the @code{Negative}
227 property mentions an option other than itself.
224 228
225 As a consequence, if you have a group of mutually-exclusive 229 As a consequence, if you have a group of mutually-exclusive
226 options, their @code{Negative} properties should form a circular chain. 230 options, their @code{Negative} properties should form a circular chain.
227 For example, if options @option{-@var{a}}, @option{-@var{b}} and 231 For example, if options @option{-@var{a}}, @option{-@var{b}} and
228 @option{-@var{c}} are mutually exclusive, their respective @code{Negative} 232 @option{-@var{c}} are mutually exclusive, their respective @code{Negative}
308 @item Var(@var{var}) 312 @item Var(@var{var})
309 The state of this option should be stored in variable @var{var} 313 The state of this option should be stored in variable @var{var}
310 (actually a macro for @code{global_options.x_@var{var}}). 314 (actually a macro for @code{global_options.x_@var{var}}).
311 The way that the state is stored depends on the type of option: 315 The way that the state is stored depends on the type of option:
312 316
313 @item Deprecated 317 @item WarnRemoved
314 The option is deprecated and every usage of such option will 318 The option is removed and every usage of such option will
315 result in a warning. 319 result in a warning. We use it option backward compatibility.
320
321 @item Var(@var{var}, @var{set})
322 The option controls an integer variable @var{var} and is active when
323 @var{var} equals @var{set}. The option parser will set @var{var} to
324 @var{set} when the positive form of the option is used and @code{!@var{set}}
325 when the ``no-'' form is used.
326
327 @var{var} is declared in the same way as for the single-argument form
328 described above.
316 329
317 @itemize @bullet 330 @itemize @bullet
318 @item 331 @item
319 If the option uses the @code{Mask} or @code{InverseMask} properties, 332 If the option uses the @code{Mask} or @code{InverseMask} properties,
320 @var{var} is the integer variable that contains the mask. 333 @var{var} is the integer variable that contains the mask.
348 and wasn't given. 361 and wasn't given.
349 @end itemize 362 @end itemize
350 363
351 The option-processing script will usually zero-initialize @var{var}. 364 The option-processing script will usually zero-initialize @var{var}.
352 You can modify this behavior using @code{Init}. 365 You can modify this behavior using @code{Init}.
353
354 @item Var(@var{var}, @var{set})
355 The option controls an integer variable @var{var} and is active when
356 @var{var} equals @var{set}. The option parser will set @var{var} to
357 @var{set} when the positive form of the option is used and @code{!@var{set}}
358 when the ``no-'' form is used.
359
360 @var{var} is declared in the same way as for the single-argument form
361 described above.
362 366
363 @item Init(@var{value}) 367 @item Init(@var{value})
364 The variable specified by the @code{Var} property should be statically 368 The variable specified by the @code{Var} property should be statically
365 initialized to @var{value}. If more than one option using the same 369 initialized to @var{value}. If more than one option using the same
366 variable specifies @code{Init}, all must specify the same initializer. 370 variable specifies @code{Init}, all must specify the same initializer.
469 @code{Optimization} implies @code{PerFunction}, but options that do not 473 @code{Optimization} implies @code{PerFunction}, but options that do not
470 affect executable code generation may use this flag instead, so that the 474 affect executable code generation may use this flag instead, so that the
471 option is not taken into account in ways that might affect executable 475 option is not taken into account in ways that might affect executable
472 code generation. 476 code generation.
473 477
478 @item Param
479 This is an option that is a parameter.
480
474 @item Undocumented 481 @item Undocumented
475 The option is deliberately missing documentation and should not 482 The option is deliberately missing documentation and should not
476 be included in the @option{--help} output. 483 be included in the @option{--help} output.
477 484
478 @item Condition(@var{cond}) 485 @item Condition(@var{cond})