summaryrefslogtreecommitdiff
path: root/gcc/doc/options.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/doc/options.texi')
-rw-r--r--gcc/doc/options.texi36
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/doc/options.texi b/gcc/doc/options.texi
index 3b844bb9eb6..8c5c6399316 100644
--- a/gcc/doc/options.texi
+++ b/gcc/doc/options.texi
@@ -52,6 +52,32 @@ for variables set in option handlers rather than referenced by
@code{Var} properties.
@item
+A variable record to define a variable used to store option
+information. These records have two fields: the string
+@samp{TargetVariable}, and a declaration of the type and name of the
+variable, optionally with an initializer (but without any trailing
+@samp{;}). @samp{TargetVariable} is a combination of @samp{Variable}
+and @samp{TargetSave} records in that the variable is defined in the
+@code{gcc_options} structure, but these variables are also stored in
+the @code{cl_target_option} structure. The variables are saved in the
+target save code and restored in the target restore code.
+
+@item
+A variable record to record any additional files that the
+@file{options.h} file should include. This is useful to provide
+enumeration or structure definitions needed for target variables.
+These records have two fields: the string @samp{HeaderInclude} and the
+name of the include file.
+
+@item
+A variable record to record any additional files that the
+@file{options.c} file should include. This is useful to provide
+inline functions needed for target variables and/or @code{#ifdef}
+sequences to properly set up the initialization. These records have
+two fields: the string @samp{SourceInclude} and the name of the
+include file.
+
+@item
An option definition record. These records have the following fields:
@enumerate
@item
@@ -201,6 +227,12 @@ If the option takes an argument and has the @code{UInteger} property,
@var{var} is an integer variable that stores the value of the argument.
@item
+If the option has the @code{Defer} property, @var{var} is a pointer to
+a @code{VEC(cl_deferred_option,heap)} that stores the option for later
+processing. (@var{var} is declared with type @code{void *} and needs
+to be cast to @code{VEC(cl_deferred_option,heap)} before use.)
+
+@item
Otherwise, if the option takes an argument, @var{var} is a pointer to
the argument string. The pointer will be null if the argument is optional
and wasn't given.
@@ -255,6 +287,10 @@ The main purpose of this property is to support synonymous options.
The first option should use @samp{Mask(@var{name})} and the others
should use @samp{Mask(@var{name}) MaskExists}.
+@item Defer
+The option should be stored in a vector, specified with @code{Var},
+for later processing.
+
@item Alias(@var{opt})
@itemx Alias(@var{opt}, @var{arg})
@itemx Alias(@var{opt}, @var{posarg}, @var{negarg})