gnat_ugn.texi: Document that -fstack-check is needed for strict compliance with the Ada 95...

2005-11-14  Cyrille Comar  <comar@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Vincent Celier  <celier@adacore.com>
	    Ben Brosgol  <brosgol@adacore.com>
	    Jose Ruiz  <ruiz@adacore.com>
	    Pascal Obry  <obry@adacore.com>

	* gnat_ugn.texi: 
	Document that -fstack-check is needed for strict compliance with the
	Ada 95 Reference Manual.
	Correct reference to VAX systems to meet HP guidelines
	Add documentation for new gnatmake switches -vl, -vm and -vh
	Replace DEC Ada by HP Ada
	Replace DIGITAL by HP
	Remove empty section on tools in compatibility section
	Clarify the Windows convention semantics.
	Document the Win32 calling convention.
	The Stdcall, Win32 and DLL convention are synonyms.
	Add a note in -gnatR description about zero size record components
	Note on new >= and <= warnings for -gnatwc
	Document that equal sign after -gnatm is optional.
	Note that strip is working fine on DLL built with a Library
	Project. The restriction apply only to DLL built with gnatdll.
	Update section about the way to debug a DLL.
	Update information about the DLL convention.
	Document -C switch for gnatprep
	Document new attribute Library_ALI_Dir
	Update elaboration doc to include implicit Elaborate pragmas now
	generated for subprogram instantiations.
	Document limitation on executable names that include spaces for --GCC,
	--GNATBIND, and --GNATLINK switches.
	Document that -w causes -gnatws to be added at start of gcc switches

	* gnat_rm.texi: Document that -mieee is needed for generating infinite
	and NaN values in case of overflow on machines that are not fully
	compliant with the IEEE floating-point standard.
	Create a section describing the set of compiler options needed for
	strict compliance with the Ada 95 Reference Manual.
	Add documentation for pragma Obsolescent applied to a package
	Clarify potential issues of mixed language programs related to the
	I/O buffering enabling in the elaboration of the GNAT runtime.
	Add extra documentation for pragma Restrictions (No_Elaboration_Code)
	This documentation only patch adds extra documentsion for pragma
	Restrictions (No_Elaboration_Code), explaining why it is not possible
	to document this restriction in terms of allowed source constructs.
	Document string literal form of pragma Warnings
	Document new attribute Library_ALI_Dir
	Add documentation on stable attributes in project files that was missing

	* gnat-style.texi: Indicate that paragraphs within a single comment
	should be separated by empty comment lines

	* ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
	/05 respectively)

	* bindusg.adb: Minor cleanup, put -m before -M for consistency

From-SVN: r107015
This commit is contained in:
Cyrille Comar 2005-11-15 15:05:45 +01:00 committed by Arnaud Charlet
parent aa63543913
commit 32e209e4f9
5 changed files with 799 additions and 358 deletions

View File

@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 1992-2005 Free Software Foundation, Inc. --
-- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -132,17 +132,17 @@ begin
Write_Str ("renamed to xyzinit/final, implies -n");
Write_Eol;
-- Line for -M switch
Write_Str (" -Mxyz Rename generated main program from main to xyz");
Write_Eol;
-- Line for -m switch
Write_Str (" -mnnn Limit number of detected error");
Write_Str ("s to nnn (1-999999)");
Write_Eol;
-- Line for -M switch
Write_Str (" -Mxyz Rename generated main program from main to xyz");
Write_Eol;
-- Line for -n switch
Write_Str (" -n No Ada main program (foreign main routine)");

View File

@ -5,9 +5,9 @@
@c o
@c GNAT DOCUMENTATION o
@c o
@c G N A T C O D I N G S T Y L E o
@c G N A T C O D I N G S T Y L E o
@c o
@c Copyright (C) 1992-2005 Ada Core Technologies, Inc. o
@c Copyright (C) 1992-2005, AdaCore o
@c o
@c GNAT is free software; you can redistribute it and/or modify it under o
@c terms of the GNU General Public License as published by the Free Soft- o
@ -262,7 +262,8 @@ the first letter of the comment).
When declarations are commented with ``hanging'' comments, i.e.@:
comments after the declaration, there is no blank line before the
comment, and if it is absolutely necessary to have blank lines within
the comments these blank lines @emph{do} have a @code{--} (unlike the
the comments, e.g. to make paragraph separations within a single comment,
these blank lines @emph{do} have a @code{--} (unlike the
normal rule, which is to use entirely blank lines for separating
comment paragraphs). The comment starts at same level of indentation
as code it is commenting.

View File

@ -399,6 +399,7 @@ Implementation of Specific Ada Features
* GNAT Implementation of Shared Passive Packages::
* Code Generation for Array Aggregates::
* The Size of Discriminated Records with Default Discriminants::
* Strict Conformance to the Ada 95 Reference Manual::
Project File Reference
@ -2036,7 +2037,7 @@ description of the @code{GNAT LIBRARY} command in the OpenVMS version
of the GNAT Users Guide for details on the use of this command.
The two argument form specifies the representation to be used for
the specified floating-poin type. On all systems other than OpenVMS,
the specified floating-point type. On all systems other than OpenVMS,
the argument must
be @code{IEEE_Float} and the pragma has no effect. On OpenVMS, the
argument may be @code{VAX_Float} to specify the use of the VAX float
@ -2597,8 +2598,7 @@ therefore cannot be @code{with}'ed by a restricted unit.
This is used for a unit licensed under the GNAT modified GPL that includes
a special exception paragraph that specifically permits the inclusion of
the unit in programs without requiring the entire program to be released
under the GPL@. This is the license used for the GNAT run-time which ensures
that the run-time can be used freely in any program without GPL concerns.
under the GPL@.
@item Restricted
This is used for a unit that is restricted in that it is not permitted to
@ -2927,7 +2927,7 @@ statement sequence is a call to such a procedure.
Syntax:
@smallexample @c ada
ppragma No_Strict_Aliasing [([Entity =>] type_LOCAL_NAME)];
pragma No_Strict_Aliasing [([Entity =>] type_LOCAL_NAME)];
@end smallexample
@noindent
@ -2937,8 +2937,8 @@ strict aliasing optimization for the given type. The form with no
arguments is a configuration pragma which applies to all access types
declared in units to which the pragma applies. For a detailed
description of the strict aliasing optimization, and the situations
in which it must be suppressed, see section "Optimization and Strict Aliasing"
in the @value{EDITION} User's Guide.
in which it must be suppressed, see section
``Optimization and Strict Aliasing'' in the @value{EDITION} User's Guide.
@node Pragma Normalize_Scalars
@unnumberedsec Pragma Normalize_Scalars
@ -3028,28 +3028,34 @@ pragma Obsolescent [(static_string_EXPRESSION [,Ada_05])];
@end smallexample
@noindent
This pragma must occur immediately following a subprogram
declaration. It indicates that the associated function or procedure
This pragma can occur immediately following a subprogram
declaration in which indicates that the associated function or procedure
is considered obsolescent and should not be used. Typically this is
used when an API must be modified by eventually removing or modifying
existing subprograms. The pragma can be used at an intermediate stage
when the subprogram is still present, but will be removed later.
The effect of this pragma is to output a warning message that the
The effect of this pragma is to output a warning message on
a call to a program thus marked that the
subprogram is obsolescent if the appropriate warning option in the
compiler is activated. If a parameter is present, then a second
warning message is given containing this text.
In addition, a call to such a program is considered a violation of
pragma Restrictions (No_Obsolescent_Features).
This pragma can also be used as a program unit pragma for a package,
in which case it indicates that the entire package is considered
obsolescent. In this case a client @code{with}'ing such a package
violates the restriction, and the @code{with} statement is
flagged with warnings if the warning option is set.
If the optional second parameter is present (which must be exactly
the identifier Ada_05, no other argument is allowed), then the
indication of obsolescence applies only when compiling in Ada 2005
mode. This is primarily intended for dealing with the situations
in the predefined library where subprograms have become defined
as obsolescent in Ada 2005 (e.g. in Ada.Characters.Handling), but
may be used anywhere.
in the predefined library where subprograms or packages
have become definedas obsolescent in Ada 2005
(e.g. in Ada.Characters.Handling), but may be used anywhere.
@node Pragma Passive
@unnumberedsec Pragma Passive
@ -4273,6 +4279,7 @@ Syntax:
@smallexample @c ada
pragma Warnings (On | Off [, local_NAME]);
pragma Warnings (static_string_EXPRESSION);
@end smallexample
@noindent
@ -4290,6 +4297,66 @@ the specified entity. This suppression is effective from the point where
it occurs till the end of the extended scope of the variable (similar to
the scope of @code{Suppress}).
The form with a static_string_EXPRESSION argument provides more precise
control over which warnings are active. The string is a list of letters
specifying which warnings are to be activated and which deactivated. The
code for these letters is the same as the string used in the command
line switch controlling warnings. The following is a brief summary. For
full details see the GNAT Users Guide:
@smallexample
a turn on all optional warnings (except d,h,l)
A turn off all optional warnings
b turn on warnings for bad fixed value (not multiple of small)
B turn off warnings for bad fixed value (not multiple of small)
c turn on warnings for constant conditional
C turn off warnings for constant conditional
d turn on warnings for implicit dereference
D turn off warnings for implicit dereference
e treat all warnings as errors
f turn on warnings for unreferenced formal
F turn off warnings for unreferenced formal
g turn on warnings for unrecognized pragma
G turn off warnings for unrecognized pragma
h turn on warnings for hiding variable
H turn off warnings for hiding variable
i turn on warnings for implementation unit
I turn off warnings for implementation unit
j turn on warnings for obsolescent (annex J) feature
J turn off warnings for obsolescent (annex J) feature
k turn on warnings on constant variable
K turn off warnings on constant variable
l turn on warnings for missing elaboration pragma
L turn off warnings for missing elaboration pragma
m turn on warnings for variable assigned but not read
M turn off warnings for variable assigned but not read
n normal warning mode (cancels s/e)
o turn on warnings for address clause overlay
O turn off warnings for address clause overlay
p turn on warnings for ineffective pragma Inline
P turn off warnings for ineffective pragma Inline
r turn on warnings for redundant construct
R turn off warnings for redundant construct
s suppress all warnings
u turn on warnings for unused entity
U turn off warnings for unused entity
v turn on warnings for unassigned variable
V turn off warnings for unassigned variable
x turn on warnings for export/import
X turn off warnings for export/import
y turn on warnings for Ada 2005 incompatibility
Y turn off warnings for Ada 2005 incompatibility
z turn on size/align warnings for unchecked conversion
Z turn off size/align warnings for unchecked conversion
@end smallexample
@noindent
The specified warnings will be in effect until the end of the program
or another pragma Warnings is encountered. The effect of the pragma is
cumulative. Initially the set of warnings is the standard default set
as possibly modified by compiler switches. Then each pragma Warning
modifies this set of warnings as specified.
@node Pragma Weak_External
@unnumberedsec Pragma Weak_External
@findex Weak_External
@ -7475,10 +7542,28 @@ but for which no elaboration code is generated. Generally, it is
the case that preelaborable units will meet the restrictions, with
the exception of large aggregates initialized with an others_clause,
and exception declarations (which generate calls to a run-time
registry procedure). Note that this restriction is enforced on
registry procedure). This restriction is enforced on
a unit by unit basis, it need not be obeyed consistently
throughout a partition.
It is not possible to precisely document
the constructs which are compatible with this restriction, since,
unlike most other restrictions, this is not a restriction on the
source code, but a restriction on the generated object code. For
example, if the source contains a declaration:
@smallexample
Val : constant Integer := X;
@end smallexample
@noindent
where X is not a static constant, it may be possible, depending
on complex optimization circuitry, for the compiler to figure
out the value of X at compile time, in which case this initialization
can be done by the loader, and requires no initialization code. It
is not possible to document the precise conditions under which the
optimizer can figure this out.
@item No_Entry_Queue
@findex No_Entry_Queue
This restriction is a declaration that any protected entry compiled in
@ -8271,9 +8356,15 @@ overflow situations, when the @code{Machine_Overflows} attribute of the
result type is @code{False}. See G.2.1(13).
@end cartouche
@noindent
Infinite and Nan values are produced as dictated by the IEEE
Infinite and NaN values are produced as dictated by the IEEE
floating-point standard.
Note that on machines that are not fully compliant with the IEEE
floating-point standard, such as Alpha, the @option{-mieee} compiler flag
must be used for achieving IEEE confirming behavior (although at the cost
of a significant performance penalty), so infinite and NaN values are
properly generated.
@sp 1
@cartouche
@noindent
@ -10399,8 +10490,9 @@ purposes the description in the Ada 95
reference manual, or appropriate Ada
text book, will be sufficient for making use of these facilities.
In the case of the input-output facilities, @xref{The Implementation of
Standard I/O}, gives details on exactly how GNAT interfaces to the
In the case of the input-output facilities,
@xref{The Implementation of Standard I/O},
gives details on exactly how GNAT interfaces to the
file system. For the remaining packages, the Ada 95 reference manual
should be sufficient. The following is a list of the packages included,
together with a brief description of the functionality that is provided.
@ -10979,10 +11071,16 @@ All input/output operations use @code{fread}/@code{fwrite}.
@end itemize
@noindent
There is no internal buffering of any kind at the Ada library level. The
only buffering is that provided at the system level in the
implementation of the C library routines that support streams. This
facilitates shared use of these streams by mixed language programs.
There is no internal buffering of any kind at the Ada library level. The only
buffering is that provided at the system level in the implementation of the
library routines that support streams. This facilitates shared use of these
streams by mixed language programs. Note though that system level buffering is
explictly enabled at elaboration of the standard I/O packages and that can have
an impact on mixed language programs, in particular those using I/O before
calling the Ada elaboration routine (e.g. adainit). It is recommended to call
the Ada elaboration routine before performing any I/O or when impractical, flush
the common I/O streams and in particular Standard_Output before elaborating the
Ada code.
@node FORM Strings
@section FORM Strings
@ -13480,6 +13578,7 @@ facilities.
* GNAT Implementation of Shared Passive Packages::
* Code Generation for Array Aggregates::
* The Size of Discriminated Records with Default Discriminants::
* Strict Conformance to the Ada 95 Reference Manual::
@end menu
@node Machine Code Insertions
@ -14113,7 +14212,33 @@ aliasing all views of the object (which may be manipulated by different tasks,
say) must be consistent, so it is imperative that the object, once created,
remain invariant.
@node Strict Conformance to the Ada 95 Reference Manual
@section Strict Conformance to the Ada 95 Reference Manual
@noindent
The dynamic semantics defined by the Ada 95 Reference Manual impose a set of
run-time checks to be generated. By default, the GNAT compiler will insert many
run-time checks into the compiled code, including most of those required by the
Ada 95 Reference Manual. However, there are three checks that are not enabled
in the default mode for efficiency reasons: arithmetic overflow checking for
integer operations (including division by zero), checks for access before
elaboration on subprogram calls, and stack overflow checking (most operating
systems do not perform this check by default).
Strict conformance to the Ada 95 Reference Manual can be achieved by adding
three compiler options for overflow checking for integer operations
(@option{-gnato}), dynamic checks for access-before-elaboration on subprogram
calls and generic instantiations (@option{-gnatE}), and stack overflow
checking (@option{-fstack-check}).
Note that the result of a floating point arithmetic operation in overflow and
invalid situations, when the @code{Machine_Overflows} attribute of the result
type is @code{False}, is to generate IEEE NaN and infinite values. This is the
case for machines compliant with the IEEE floating-point standard, but on
machines that are not fully compliant with this standard, such as Alpha, the
@option{-mieee} compiler flag must be used for achieving IEEE confirming
behavior (although at the cost of a significant performance penalty), so
infinite and and NaN values are properly generated.
@node Project File Reference
@ -14431,7 +14556,55 @@ for building shared libraries.
Expression must be a path name. The attribute defines the
directory in which the sources of the interfaces of a Stand-alone Library will
be copied. The directory must exist, must be distinct from the project's
object directory and source directories, and must be writable.
object directory and source directories of all project in the project tree,
and must be writable.
@item Library_Src_Dir
Expression must be a path name. The attribute defines the
directory in which the ALI files of a Library will
be copied. The directory must exist, must be distinct from the project's
object directory and source directoriesof all project in the project tree,
and must be writable.
@item Library_Symbol_File
Expression must be a single string. Its value is the single file name of a
symbol file to be created when building a stand-alone library when the
symbol policy is either "compliant", "controlled" or "restricted",
on platforms that support symbol control, such as VMS.
@item Library_Reference_Symbol_File
Expression must be a single string. Its value is the single file name of a
reference symbol file that is read when the symbol policy is either
"compliant" or "controlled", on platforms that support symbol control,
such as VMS, when building a stand-alone library.
@item Library_Symbol_Policy
Expression must be a single string. Its case-insensitive value can only be
"autonomous", "default", "compliant", "controlled" or "restricted".
This attribute is not taken into account on all platforms. It controls the
policy for exported symbols and, on some platforms (like VMS) that have the
notions of major and minor IDs built in the library files, it controls
the setting of these IDs.
"autonomous" or "default": exported symbols are not controlled.
"compliant": if attribute Library_Reference_Symbol_File is not defined, then
it is equivalent to policy "autonomous". If there are exported symbols in
the reference symbol file that are not in the object files of the interfaces,
the major ID of the library is increased. If there are symbols in the
object files of the interfaces that are not in the reference symbol file,
these symbols are put at the end of the list in the newly created symbol file
and the minor ID is increased.
"controlled": the attribute Library_Reference_Symbol_File must be difined.
The library will fail to build if the exported symbols in the object files of
the interfaces do not match exactly the symbol in the symbol file.
"restricted": The attribute Library_Symbol_File must be defined. The library
will fail to build if there are symbols in the symbol file that are not in
the exported symbols of the object files of the interfaces. Additional symbols
in the object files are not added to the symbol file.
@item Main
Expression must be a list of strings that are legal file names.
@ -14443,6 +14616,12 @@ command, one or several executables are built and placed in the Exec_Dir.
If the gnatmake command does not include explicit file names, the executables
that are built correspond to the files specified by this attribute.
@item Externally_Built
Expression must be a single string. Its value must be either "true" of "false",
case-insensitive. The default is "false". When the value of this attribute is
"true", no attempt is made to compile the sources or to build the library,
when the project is a library project.
@item Main_Language
This is a simple attribute. Its value is a string that specifies the
language of the main program.
@ -14700,27 +14879,20 @@ This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies the compilation options to be used when compiling a component
written in that language, for which no file-specific switches have been
specified..
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies the
compilation options to be used when compiling the named file. If a file
is not specified in the Switches attribute, it is compiled with the
settings specified by Default_Switches.
options specified by Default_Switches of its language, if defined.
@item Local_Configuration_Pragmas.
This is a simple attribute, whose
value is a path name that designates a file containing configuration pragmas
to be used for all invocations of the compiler for immediate sources of the
project.
@item Executable
This is an associative array attribute. Its domain is
a set of main source file names. Its range is a simple string that specifies
the executable file name to be used when linking the specified main source.
If a main source is not specified in the Executable attribute, the executable
file name is deducted from the main source file name.
@end table
@subsection package Builder
@ -14732,10 +14904,18 @@ following attributes apply to package @code{Builder}:
@table @code
@item Default_Switches
As above.
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when building a main
written in that language, for which no file-specific switches have been
specified.
@item Switches
As above.
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when building the named main file. If a main file
is not specified in the Switches attribute, it is built with the
options specified by Default_Switches of its language, if defined.
@item Global_Configuration_Pragmas
This is a simple attribute, whose
@ -14743,14 +14923,17 @@ value is a path name that designates a file that contains configuration pragmas
to be used in every build of an executable. If both local and global
configuration pragmas are specified, a compilation makes use of both sets.
@item Executable
This is an associative array attribute, defined over
compilation unit names. The image is a string that is the name of the
executable file corresponding to the main source file index.
This is an associative array attribute. Its domain is
a set of main source file names. Its range is a simple string that specifies
the executable file name to be used when linking the specified main source.
If a main source is not specified in the Executable attribute, the executable
file name is deducted from the main source file name.
This attribute has no effect if its value is the empty string.
@item Executable_Suffix
This is a simple attribute whose value is a suffix to be added to
This is a simple attribute whose value is the suffix to be added to
the executables that don't have an attribute Executable specified.
@end table
@ -14763,7 +14946,8 @@ The following attributes apply to package @code{Gnatls}:
@table @code
@item Switches
As above.
This is a single attribute with a string list value. Each non empty string
in the list is an option when invoking @code{gnatls}.
@end table
@subsection package Binder
@ -14775,9 +14959,18 @@ The following attributes apply to package @code{Binder}:
@table @code
@item Default_Switches
As above.
@item Switches
As above.
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when binding a main
written in that language, for which no file-specific switches have been
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when binding the named main file. If a main file
is not specified in the Switches attribute, it is boundt with the
options specified by Default_Switches of its language, if defined.
@end table
@subsection package Linker
@ -14789,9 +14982,24 @@ The following attributes apply to package @code{Linker}:
@table @code
@item Default_Switches
As above
@item Switches
As above.
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when linking a main
written in that language, for which no file-specific switches have been
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when linking the named main file. If a main file
is not specified in the Switches attribute, it is linked with the
options specified by Default_Switches of its language, if defined.
@item Linker_Options
This is a string list attribute. Its value specifies additional options that
be givent to the linker when linking an executable. This attribute is not
used in the main project, only in projects imported directly or indirectly.
@end table
@subsection package Cross_Reference
@ -14804,9 +15012,19 @@ The following attributes apply to package @code{Cross_Reference}:
@table @code
@item Default_Switches
As above.
@item Switches
As above.
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when calling @command{gnatxref} on a source
written in that language, for which no file-specific switches have been
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when calling @command{gnatxref} on the named main source.
If a source is not specified in the Switches attribute, @command{gnatxref} will
be called with the options specified by Default_Switches of its language,
if defined.
@end table
@subsection package Finder
@ -14818,9 +15036,19 @@ The following attributes apply to package @code{Finder}:
@table @code
@item Default_Switches
As above.
@item Switches
As above.
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when calling @command{gnatfind} on a source
written in that language, for which no file-specific switches have been
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when calling @command{gnatfind} on the named main source.
If a source is not specified in the Switches attribute, @command{gnatfind} will
be called with the options specified by Default_Switches of its language,
if defined.
@end table
@subsection package Pretty_Printer
@ -14833,9 +15061,94 @@ The following attributes apply to package @code{Pretty_Printer}:
@table @code
@item Default_switches
As above.
@item Switches
As above.
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when calling @command{gnatpp} on a source
written in that language, for which no file-specific switches have been
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when calling @command{gnatpp} on the named main source.
If a source is not specified in the Switches attribute, @command{gnatpp} will
be called with the options specified by Default_Switches of its language,
if defined.
@end table
@subsection package gnatstub
@noindent
The attributes of package @code{gnatstub}
specify the tool options to be used
when invoking the tool @command{gnatstub}.
The following attributes apply to package @code{gnatstub}:
@table @code
@item Default_switches
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when calling @command{gnatstub} on a source
written in that language, for which no file-specific switches have been
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when calling @command{gnatstub} on the named main source.
If a source is not specified in the Switches attribute, @command{gnatpp} will
be called with the options specified by Default_Switches of its language,
if defined.
@end table
@subsection package Eliminate
@noindent
The attributes of package @code{Eliminate}
specify the tool options to be used
when invoking the tool @command{gnatelim}.
The following attributes apply to package @code{Eliminate}:
@table @code
@item Default_switches
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when calling @command{gnatelim} on a source
written in that language, for which no file-specific switches have been
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when calling @command{gnatelim} on the named main source.
If a source is not specified in the Switches attribute, @command{gnatelim} will
be called with the options specified by Default_Switches of its language,
if defined.
@end table
@subsection package Metrics
@noindent
The attributes of package @code{Metrics}
specify the tool options to be used
when invoking the tool @command{gnatmetric}.
The following attributes apply to package @code{Metrics}:
@table @code
@item Default_switches
This is an associative array attribute. Its
domain is a set of language names. Its range is a string list that
specifies options to be used when calling @command{gnatmetric} on a source
written in that language, for which no file-specific switches have been
specified.
@item Switches
This is an associative array attribute. Its domain is
a set of file names. Its range is a string list that specifies
options to be used when calling @command{gnatmetric} on the named main source.
If a source is not specified in the Switches attribute, @command{gnatmetric}
will be called with the options specified by Default_Switches of its language,
if defined.
@end table
@subsection package IDE

File diff suppressed because it is too large Load Diff

View File

@ -153,6 +153,8 @@ gcc -c ^ GNAT COMPILE
-gnatzc ^ /DISTRIBUTION_STUBS=CALLER
-gnatzr ^ /DISTRIBUTION_STUBS=RECEIVER
-gnat83 ^ /83
-gnat95 ^ /95
-gnat05 ^ /05
-gnatx ^ /XREF=SUPPRESS
-gnatX ^ /EXTENSIONS_ALLOWED
--RTS ^ /RUNTIME_SYSTEM