Previous: Option file format, Up: Options
The second field of an option record can specify any of the following properties. When an option takes an argument, it is enclosed in parentheses following the option property name. The parser that handles option files is quite simplistic, and will be tricked by any nested parentheses within the argument text itself; in this case, the entire option argument can be wrapped in curly braces within the parentheses to demarcate it, e.g.:
Condition({defined (USE_CYGWIN_LIBSTDCXX_WRAPPERS)})
Common
Target
It is possible to specify several different languages for the same
option. Each language must have been declared by an earlier
Language
record. See Option file format.
RejectNegative
Negative(
othername)
Negative
property of the option to be
turned off.
Joined
Separate
Joined
indicates
that the option and argument can be included in the same argv
entry (as with -mflush-func=
name, for example).
Separate
indicates that the option and argument can be
separate argv
entries (as with -o
). An option is
allowed to have both of these properties.
JoinedOrMissing
argv
entry as the option itself.
This property cannot be used alongside Joined
or Separate
.
UInteger
UInteger
should also be used on options like
-falign-loops
where both -falign-loops
and
-falign-loops
=n are supported to make sure the saved
options are given a full integer.
Var(
var)
Mask
or InverseMask
properties,
var is the integer variable that contains the mask.
UInteger
property,
var is an integer variable that stores the value of the argument.
The option-processing script will usually declare var in
options.c and leave it to be zero-initialized at start-up time.
You can modify this behavior using VarExists
and Init
.
Var(
var,
set)
!
set
when the “no-” form is used.
var is declared in the same way as for the single-argument form
described above.
VarExists
Var
property already exists.
No definition should be added to options.c in response to
this option record.
You should use this property only if the variable is declared outside
options.c.
Init(
value)
Var
property should be statically
initialized to value.
Mask(
name)
target_flags
variable (see Run-time Target) and is active when that bit is set.
You may also specify Var
to select a variable other than
target_flags
.
The options-processing script will automatically allocate a unique bit
for the option. If the option is attached to `target_flags',
the script will set the macro MASK_
name to the appropriate
bitmask. It will also declare a TARGET_
name macro that has
the value 1 when the option is active and 0 otherwise. If you use Var
to attach the option to a different variable, the associated macros are
called OPTION_MASK_
name and OPTION_
name respectively.
You can disable automatic bit allocation using MaskExists
.
InverseMask(
othername)
InverseMask(
othername,
thisname)
Mask(
othername)
property. If thisname is given,
the options-processing script will declare a TARGET_
thisname
macro that is 1 when the option is active and 0 otherwise.
MaskExists
Mask
property already exists.
No MASK
or TARGET
definitions should be added to
options.h in response to this option record.
The main purpose of this property is to support synonymous options.
The first option should use `Mask(name)' and the others
should use `Mask(name) MaskExists'.
Report
Undocumented
Condition(
cond)
Save
cl_target_option
structure to hold a copy of the
option, add the functions cl_target_option_save
and
cl_target_option_restore
to save and restore the options.