diff options
Diffstat (limited to 'gcc/doc/options.texi')
-rw-r--r-- | gcc/doc/options.texi | 36 |
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}) |