From 1acce1417b42aee9152fc42bb0247ced2acc3a4f Mon Sep 17 00:00:00 2001 From: Yannick Moy Date: Tue, 21 Nov 2023 12:06:52 +0100 Subject: ada: Do not issue SPARK legality error if SPARK_Mode ignored When pragma Ignore_Pragma(SPARK_Mode) is used, do not issue error messages related to SPARK legality checking. This facilitates the instrumentation of code by GNATcoverage. gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst: Fix doc for pragma Ignore_Pragma, in the case where it follows another configuration pragma that it names, which causes the preceding pragma to be ignored after parsing. * errout.adb (Should_Ignore_Pragma_SPARK_Mode): New query. (SPARK_Msg_N): Do nothing if SPARK_Mode is ignored. (SPARK_Msg_NE): Same. * gnat-style.texi: Regenerate. * gnat_rm.texi: Regenerate. * gnat_ugn.texi: Regenerate. --- gcc/ada/gnat_ugn.texi | 1408 +++++++++++++++++++++++++------------------------ 1 file changed, 705 insertions(+), 703 deletions(-) (limited to 'gcc/ada/gnat_ugn.texi') diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index 3859709..694a834 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -3,7 +3,7 @@ @setfilename gnat_ugn.info @documentencoding UTF-8 @ifinfo -@*Generated by Sphinx 5.3.0.@* +@*Generated by Sphinx 4.3.2.@* @end ifinfo @settitle GNAT User's Guide for Native Platforms @defindex ge @@ -15,11 +15,13 @@ * gnat_ugn: (gnat_ugn.info). gnat_ugn @end direntry +@definfoenclose strong,`,' +@definfoenclose emph,`,' @c %**end of header @copying @quotation -GNAT User's Guide for Native Platforms , Nov 10, 2023 +GNAT User's Guide for Native Platforms , Dec 14, 2023 AdaCore @@ -46,7 +48,7 @@ Copyright @copyright{} 2008-2023, Free Software Foundation @c %**start of body @anchor{gnat_ugn doc}@anchor{0} -`GNAT, The GNU Ada Development Environment' +@emph{GNAT, The GNU Ada Development Environment} @include gcc-common.texi @@ -705,7 +707,7 @@ and @code{classes}. @code{Variables} @item -`Emphasis' +@emph{Emphasis} @item [optional information or parameters] @@ -939,15 +941,15 @@ following three separate files: @table @asis -@item `greetings.ads' +@item @emph{greetings.ads} spec of package @code{Greetings} -@item `greetings.adb' +@item @emph{greetings.adb} body of package @code{Greetings} -@item `gmain.adb' +@item @emph{gmain.adb} body of main program @end table @@ -1175,8 +1177,8 @@ code is used to represent the end of file. Each file contains a single Ada compilation unit, including any pragmas associated with the unit. For example, this means you must place a -package declaration (a package `spec') and the corresponding body in -separate files. An Ada `compilation' (which is a sequence of +package declaration (a package @emph{spec}) and the corresponding body in +separate files. An Ada @emph{compilation} (which is a sequence of compilation units) is represented using a sequence of files. Similarly, you will place each subunit or child unit in a separate file. @@ -1234,7 +1236,7 @@ GNAT also supports several other 8-bit coding schemes: @table @asis -@item `ISO 8859-2 (Latin-2)' +@item @emph{ISO 8859-2 (Latin-2)} Latin-2 letters allowed in identifiers, with uppercase and lowercase equivalence. @@ -1247,7 +1249,7 @@ equivalence. @table @asis -@item `ISO 8859-3 (Latin-3)' +@item @emph{ISO 8859-3 (Latin-3)} Latin-3 letters allowed in identifiers, with uppercase and lowercase equivalence. @@ -1260,7 +1262,7 @@ equivalence. @table @asis -@item `ISO 8859-4 (Latin-4)' +@item @emph{ISO 8859-4 (Latin-4)} Latin-4 letters allowed in identifiers, with uppercase and lowercase equivalence. @@ -1273,7 +1275,7 @@ equivalence. @table @asis -@item `ISO 8859-5 (Cyrillic)' +@item @emph{ISO 8859-5 (Cyrillic)} ISO 8859-5 letters (Cyrillic) allowed in identifiers, with uppercase and lowercase equivalence. @@ -1286,7 +1288,7 @@ lowercase equivalence. @table @asis -@item `ISO 8859-15 (Latin-9)' +@item @emph{ISO 8859-15 (Latin-9)} ISO 8859-15 (Latin-9) letters allowed in identifiers, with uppercase and lowercase equivalence. @@ -1297,7 +1299,7 @@ lowercase equivalence. @table @asis -@item `IBM PC (code page 437)' +@item @emph{IBM PC (code page 437)} This code page is the normal default for PCs in the U.S. It corresponds to the original IBM PC character set. This set has some, but not all, of @@ -1311,14 +1313,14 @@ identifiers with uppercase and lowercase equivalence. @table @asis -@item `IBM PC (code page 850)' +@item @emph{IBM PC (code page 850)} This code page is a modification of 437 extended to include all the Latin-1 letters, but still not with the usual Latin-1 encoding. In this mode, all these letters are allowed in identifiers with uppercase and lowercase equivalence. -@item `Full Upper 8-bit' +@item @emph{Full Upper 8-bit} Any character in the range 80-FF allowed in identifiers, and all are considered distinct. In other words, there are no uppercase and lowercase @@ -1326,7 +1328,7 @@ equivalences in this range. This is useful in conjunction with certain encoding schemes used for some foreign character sets (e.g., the typical method of representing Chinese characters on the PC). -@item `No Upper-Half' +@item @emph{No Upper-Half} No upper-half characters in the range 80-FF are allowed in identifiers. This gives Ada 83 compatibility for identifier names. @@ -1349,7 +1351,7 @@ possible encoding schemes: @table @asis -@item `Hex Coding' +@item @emph{Hex Coding} In this encoding, a wide character is represented by the following five character sequence: @@ -1370,7 +1372,7 @@ This scheme is compatible with use of the full Wide_Character set. @table @asis -@item `Upper-Half Coding' +@item @emph{Upper-Half Coding} The wide character with encoding @code{16#abcd#} where the upper bit is on (in other words, ‘a’ is in the range 8-F) is represented as two bytes, @@ -1385,7 +1387,7 @@ external coding. @table @asis -@item `Shift JIS Coding' +@item @emph{Shift JIS Coding} A wide character is represented by a two-character sequence, @code{16#ab#} and @@ -1401,7 +1403,7 @@ used with this encoding method. @table @asis -@item `EUC Coding' +@item @emph{EUC Coding} A wide character is represented by a two-character sequence @code{16#ab#} and @@ -1410,7 +1412,7 @@ character code is the corresponding JIS character according to the EUC encoding algorithm. Only characters defined in the JIS code set table can be used with this encoding method. -@item `UTF-8 Coding' +@item @emph{UTF-8 Coding} A wide character is represented using UCS Transformation Format 8 (UTF-8) as defined in Annex R of ISO @@ -1431,7 +1433,7 @@ other wide characters are represented as sequences of upper-half 6-byte sequences, and in the following section on wide wide characters, the use of these sequences is documented). -@item `Brackets Coding' +@item @emph{Brackets Coding} In this encoding, a wide character is represented by the following eight character sequence: @@ -1472,7 +1474,7 @@ possible encoding schemes: @table @asis -@item `UTF-8 Coding' +@item @emph{UTF-8 Coding} A wide character is represented using UCS Transformation Format 8 (UTF-8) as defined in Annex R of ISO @@ -1492,7 +1494,7 @@ is a four, five, or six byte sequence: where the @code{xxx} bits correspond to the left-padded bits of the 32-bit character value. -@item `Brackets Coding' +@item @emph{Brackets Coding} In this encoding, a wide wide character is represented by the following ten or twelve byte character sequence: @@ -1983,7 +1985,7 @@ Display Copyright and version, then exit disregarding all other options. If @code{--version} was not used, display usage, then exit disregarding all other options. -@item @code{--subdirs=`dir'} +@item @code{--subdirs=@emph{dir}} Real object, library or exec directories are subdirectories of the specified ones. @@ -2002,7 +2004,7 @@ Start another section of directories/patterns. @table @asis -@item @code{-c`filename'} +@item @code{-c@emph{filename}} Create a configuration pragmas file @code{filename} (instead of the default @code{gnat.adc}). @@ -2019,7 +2021,7 @@ specified, no switch @code{-P} may be specified (see below). @table @asis -@item @code{-d`dir'} +@item @code{-d@emph{dir}} Look for source files in directory @code{dir}. There may be zero, one or more spaces between @code{-d} and @code{dir}. @@ -2047,7 +2049,7 @@ specified with switch @code{-d} must exist and be readable. @table @asis -@item @code{-D`filename'} +@item @code{-D@emph{filename}} Look for source files in all directories listed in text file @code{filename}. There may be zero, one or more spaces between @code{-D} @@ -2064,7 +2066,7 @@ Follow symbolic links when processing project files. @geindex -f (gnatname) -@item @code{-f`pattern'} +@item @code{-f@emph{pattern}} Foreign patterns. Using this switch, it is possible to add sources of languages other than Ada to the list of sources of a project file. @@ -2087,7 +2089,7 @@ Output usage (help) information. The output is written to @code{stdout}. @geindex -P (gnatname) -@item @code{-P`proj'} +@item @code{-P@emph{proj}} Create or update project file @code{proj}. There may be zero, one or more space between @code{-P} and @code{proj}. @code{proj} may include directory @@ -2124,7 +2126,7 @@ the Naming Patterns, an indication is given that there is no match. @geindex -x (gnatname) -@item @code{-x`pattern'} +@item @code{-x@emph{pattern}} Excluded patterns. Using this switch, it is possible to exclude some files that would match the name patterns. For example, @@ -2214,7 +2216,7 @@ and GNAT, which use the prefixes respectively. @end itemize -The @code{-gnatk`nn'} +The @code{-gnatk@emph{nn}} switch of the compiler activates a ‘krunching’ circuit that limits file names to nn characters (where nn is a decimal integer). @@ -2623,10 +2625,10 @@ Causes @code{gnatchop} to operate in compilation mode, in which configuration pragmas are handled according to strict RM rules. See previous section for a full description of this mode. -@item @code{-gnat`xxx'} +@item @code{-gnat@emph{xxx}} -This passes the given @code{-gnat`xxx'} switch to @code{gnat} which is -used to parse the given file. Not all `xxx' options make sense, +This passes the given @code{-gnat@emph{xxx}} switch to @code{gnat} which is +used to parse the given file. Not all @emph{xxx} options make sense, but for example, the use of @code{-gnati2} allows @code{gnatchop} to process a source file that uses Latin-2 coding for identifiers. @@ -2641,7 +2643,7 @@ output file showing usage information. @table @asis -@item @code{-k`mm'} +@item @code{-k@emph{mm}} Limit generated file names to the specified number @code{mm} of characters. @@ -2744,7 +2746,7 @@ units to be skipped. @table @asis -@item @code{--GCC=`xxxx'} +@item @code{--GCC=@emph{xxxx}} Specify the path of the GNAT parser to be used. When this switch is used, no attempt is made to add the prefix to the GNAT parser executable. @@ -2917,7 +2919,7 @@ the type of restriction. Restrictions that require partition-wide consistency (like @code{No_Tasking}) are recognized wherever they appear -and can be freely inherited, e.g. from a `with'ed unit to the `with'ing +and can be freely inherited, e.g. from a @emph{with}ed unit to the @emph{with}ing unit. This makes sense since the binder will in any case insist on seeing consistent use, so any unit not conforming to any restrictions that are anywhere in the partition will be rejected, and you might as well find @@ -2958,7 +2960,7 @@ configuration pragmas, or more conveniently by direct editing of the Besides @code{gnat.adc}, additional files containing configuration pragmas may be applied to the current compilation using the switch -@code{-gnatec=`path'} where @code{path} must designate an existing file that +@code{-gnatec=@emph{path}} where @code{path} must designate an existing file that contains only configuration pragmas. These configuration pragmas are in addition to those found in @code{gnat.adc} (provided @code{gnat.adc} is present and switch @code{-gnatA} is not used). @@ -3073,10 +3075,10 @@ additional source files as follows: @itemize * @item -If a file being compiled `with's a unit @code{X}, the object file +If a file being compiled @emph{with}s a unit @code{X}, the object file depends on the file containing the spec of unit @code{X}. This includes -files that are `with'ed implicitly either because they are parents -of `with'ed child units or they are run-time units required by the +files that are @emph{with}ed implicitly either because they are parents +of @emph{with}ed child units or they are run-time units required by the language constructs used in a particular unit. @item @@ -3130,7 +3132,7 @@ The object file for a parent unit depends on all its subunit body files. The previous two rules meant that for purposes of computing dependencies and recompilation, a body and all its subunits are treated as an indivisible whole. -These rules are applied transitively: if unit @code{A} `with's +These rules are applied transitively: if unit @code{A} @emph{with}s unit @code{B}, whose elaboration calls an inlined procedure in package @code{C}, the object file for unit @code{A} will depend on the body of @code{C}, in file @code{c.adb}. @@ -3192,7 +3194,7 @@ checking. Categorization information (e.g., use of pragma @code{Pure}). @item -Information on all `with'ed units, including presence of +Information on all @emph{with}ed units, including presence of @code{Elaborate} or @code{Elaborate_All} pragmas. @item @@ -3262,8 +3264,8 @@ object files for the Ada units of the program. This section describes how to build and use libraries with GNAT, and also shows how to recompile the GNAT run-time library. You should be familiar with the -Project Manager facility (see the `GNAT_Project_Manager' chapter of the -`GPRbuild User’s Guide') before reading this chapter. +Project Manager facility (see the @emph{GNAT_Project_Manager} chapter of the +@emph{GPRbuild User’s Guide}) before reading this chapter. @menu * Introduction to Libraries in GNAT:: @@ -3312,14 +3314,14 @@ documentation purposes. Alternatively, it may expose only the units needed by an external user to make use of the library. That is to say, the specs reflecting the library services along with all the units needed to compile those specs, which can include generic bodies or any body implementing an -inlined routine. In the case of `stand-alone libraries' those exposed -units are called `interface units' (@ref{6b,,Stand-alone Ada Libraries}). +inlined routine. In the case of @emph{stand-alone libraries} those exposed +units are called @emph{interface units} (@ref{6b,,Stand-alone Ada Libraries}). All compilation units comprising an application, including those in a library, need to be elaborated in an order partially defined by Ada’s semantics. GNAT computes the elaboration order from the @code{ALI} files and this is why they constitute a mandatory part of GNAT libraries. -`Stand-alone libraries' are the exception to this rule because a specific +@emph{Stand-alone libraries} are the exception to this rule because a specific library elaboration routine is produced independently of the application(s) using the library. @@ -3341,9 +3343,9 @@ using the library. The easiest way to build a library is to use the Project Manager, -which supports a special type of project called a `Library Project' -(see the `Library Projects' section in the `GNAT Project Manager' -chapter of the `GPRbuild User’s Guide'). +which supports a special type of project called a @emph{Library Project} +(see the @emph{Library Projects} section in the @emph{GNAT Project Manager} +chapter of the @emph{GPRbuild User’s Guide}). A project is considered a library project, when two project-level attributes are defined in it: @code{Library_Name} and @code{Library_Dir}. In order to @@ -3464,9 +3466,9 @@ $ rm *.o $ chmod -w *.ali @end example -Please note that the library must have a name of the form @code{lib`xxx'.a} -or @code{lib`xxx'.so} (or @code{lib`xxx'.dll} on Windows) in order to -be accessed by the directive @code{-l`xxx'} at link time. +Please note that the library must have a name of the form @code{lib@emph{xxx}.a} +or @code{lib@emph{xxx}.so} (or @code{lib@emph{xxx}.dll} on Windows) in order to +be accessed by the directive @code{-l@emph{xxx}} at link time. @node Installing a library,Using a library,Building a library,General Ada Libraries @anchor{gnat_ugn/the_gnat_compilation_model id39}@anchor{71}@anchor{gnat_ugn/the_gnat_compilation_model installing-a-library}@anchor{72} @@ -3478,8 +3480,8 @@ be accessed by the directive @code{-l`xxx'} at link time. @geindex GPR_PROJECT_PATH If you use project files, library installation is part of the library build -process (see the `Installing a Library with Project Files' section of the -`GNAT Project Manager' chapter of the `GPRbuild User’s Guide'). +process (see the @emph{Installing a Library with Project Files} section of the +@emph{GNAT Project Manager} chapter of the @emph{GPRbuild User’s Guide}). When project files are not an option, it is also possible, but not recommended, to install the library so that the sources needed to use the library are on the @@ -3532,7 +3534,7 @@ any part of it. Once again, the project facility greatly simplifies the use of libraries. In this context, using a library is just a matter of adding a -`with' clause in the user project. For instance, to make use of the +@emph{with} clause in the user project. For instance, to make use of the library @code{My_Lib} shown in examples in earlier sections, you can write: @@ -3545,7 +3547,7 @@ end My_Proj; Even if you have a third-party, non-Ada library, you can still use GNAT’s Project Manager facility to provide a wrapper for it. For example, the -following project, when `with'ed by your main project, will link with the +following project, when @emph{with}ed by your main project, will link with the third-party library @code{liba.a}: @example @@ -3675,12 +3677,12 @@ main routine is not written in Ada. GNAT’s Project facility provides a simple way of building and installing -stand-alone libraries; see the `Stand-alone Library Projects' section -in the `GNAT Project Manager' chapter of the `GPRbuild User’s Guide'. +stand-alone libraries; see the @emph{Stand-alone Library Projects} section +in the @emph{GNAT Project Manager} chapter of the @emph{GPRbuild User’s Guide}. To be a Stand-alone Library Project, in addition to the two attributes that make a project a Library Project (@code{Library_Name} and -@code{Library_Dir}; see the `Library Projects' section in the -`GNAT Project Manager' chapter of the `GPRbuild User’s Guide'), +@code{Library_Dir}; see the @emph{Library Projects} section in the +@emph{GNAT Project Manager} chapter of the @emph{GPRbuild User’s Guide}), the attribute @code{Library_Interface} must be defined. For example: @example @@ -4070,7 +4072,7 @@ end Config; The @code{Config} package exists in multiple forms for the various targets, with an appropriate script selecting the version of @code{Config} needed. -Then any other unit requiring conditional compilation can do a `with' +Then any other unit requiring conditional compilation can do a @emph{with} of @code{Config} to make the constants visible. @node Debugging - A Special Case,Conditionalizing Declarations,Use of Boolean Constants,Modeling Conditional Compilation in Ada @@ -4461,7 +4463,7 @@ For further discussion of conditional compilation in general, see @subsubsection Preprocessing Symbols -Preprocessing symbols are defined in `definition files' and referenced in the +Preprocessing symbols are defined in @emph{definition files} and referenced in the sources to be preprocessed. A preprocessing symbol is an identifier, following normal Ada (case-insensitive) rules for its syntax, with the restriction that all characters need to be in the ASCII set (no accented letters). @@ -4486,7 +4488,7 @@ where @table @asis -@item `switches' +@item @emph{switches} is an optional sequence of switches as described in the next section. @end table @@ -4495,7 +4497,7 @@ is an optional sequence of switches as described in the next section. @table @asis -@item `infile' +@item @emph{infile} is the full name of the input file, which is an Ada source file containing preprocessor directives. @@ -4505,7 +4507,7 @@ file containing preprocessor directives. @table @asis -@item `outfile' +@item @emph{outfile} is the full name of the output file, which is an Ada source in standard Ada form. When used with GNAT, this file name will @@ -4596,7 +4598,7 @@ this context since comments are ignored by the compiler in any case). @table @asis -@item @code{-D`symbol'[=`value']} +@item @code{-D@emph{symbol}[=@emph{value}]} Defines a new preprocessing symbol with the specified value. If no value is given on the command line, then symbol is considered to be @code{True}. This switch @@ -4846,7 +4848,7 @@ As noted above, a file to be preprocessed consists of Ada source code in which preprocessing lines have been inserted. However, instead of using @code{gnatprep} to explicitly preprocess a file as a separate step before compilation, you can carry out the preprocessing implicitly -as part of compilation. Such `integrated preprocessing', which is the common +as part of compilation. Such @emph{integrated preprocessing}, which is the common style with C, is performed when either or both of the following switches are passed to the compiler: @@ -4856,7 +4858,7 @@ are passed to the compiler: @itemize * @item -@code{-gnatep}, which specifies the `preprocessor data file'. +@code{-gnatep}, which specifies the @emph{preprocessor data file}. This file dictates how the source files will be preprocessed (e.g., which symbol definition files apply to which sources). @@ -4885,7 +4887,7 @@ When using project files: @item the builder switch @code{-x} should be used if any Ada source is compiled with @code{gnatep=}, so that the compiler finds the -`preprocessor data file'. +@emph{preprocessor data file}. @item the preprocessing data file and the symbol definition files should be @@ -4907,7 +4909,7 @@ that relate to integrated preprocessing. @table @asis -@item @code{-gnatep=`preprocessor_data_file'} +@item @code{-gnatep=@emph{preprocessor_data_file}} This switch specifies the file name (without directory information) of the preprocessor data file. Either place this file @@ -4927,12 +4929,12 @@ end Prj; @end example @end quotation -A preprocessor data file is a text file that contains `preprocessor -control lines'. A preprocessor control line directs the preprocessing of +A preprocessor data file is a text file that contains @emph{preprocessor +control lines}. A preprocessor control line directs the preprocessing of either a particular source file, or, analogous to @code{others} in Ada, all sources not specified elsewhere in the preprocessor data file. A preprocessor control line -can optionally identify a `definition file' that assigns values to +can optionally identify a @emph{definition file} that assigns values to preprocessor symbols, as well as a list of switches that relate to preprocessing. Empty lines and comments (using Ada syntax) are also permitted, with no @@ -5023,7 +5025,7 @@ Causes both preprocessor lines and the lines deleted by preprocessing to be retained as comments marked with the special string ‘@cite{–!}’. -@item @code{-D`symbol'=`new_value'} +@item @code{-D@emph{symbol}=@emph{new_value}} Define or redefine @code{symbol} to have @code{new_value} as its value. The permitted form for @code{symbol} is either an Ada identifier, or any Ada reserved word @@ -5052,7 +5054,7 @@ a @code{#if} or @code{#elsif} test will be treated as an error. @table @asis -@item @code{-gnateD`symbol'[=`new_value']} +@item @code{-gnateD@emph{symbol}[=@emph{new_value}]} Define or redefine @code{symbol} to have @code{new_value} as its value. If no value is supplied, then the value of @code{symbol} is @code{True}. @@ -6537,7 +6539,7 @@ If you want to generate a single Ada file and not the transitive closure, you can use instead the @code{-fdump-ada-spec-slim} switch. You can optionally specify a parent unit, of which all generated units will -be children, using @code{-fada-spec-parent=`unit'}. +be children, using @code{-fada-spec-parent=@emph{unit}}. The simple @code{gcc}-based command works only for C headers. For C++ headers you need to use either the @code{g++} command or the combination @code{gcc -x c++}. @@ -6578,7 +6580,7 @@ $ gcc -c -fdump-ada-spec readline1.h Generating bindings for C++ headers is done using the same options, always -with the `g++' compiler. Note that generating Ada spec from C++ headers is a +with the @emph{g++} compiler. Note that generating Ada spec from C++ headers is a much more complex job and support for C++ headers is much more limited that support for C headers. As a result, you will need to modify the resulting bindings by hand more extensively when using C++ headers. @@ -6586,7 +6588,7 @@ bindings by hand more extensively when using C++ headers. In this mode, C++ classes will be mapped to Ada tagged types, constructors will be mapped using the @code{CPP_Constructor} pragma, and when possible, multiple inheritance of abstract classes will be mapped to Ada interfaces -(see the `Interfacing to C++' section in the @cite{GNAT Reference Manual} +(see the @emph{Interfacing to C++} section in the @cite{GNAT Reference Manual} for additional information on interfacing to C++). For example, given the following C++ header file: @@ -6705,7 +6707,7 @@ only. @table @asis -@item @code{-fada-spec-parent=`unit'} +@item @code{-fada-spec-parent=@emph{unit}} Specifies that all files generated by @code{-fdump-ada-spec} are to be child units of the specified parent unit. @@ -6856,7 +6858,7 @@ used for Ada 83. The GNAT model of compilation is close to the C and C++ models. You can think of Ada specs as corresponding to header files in C. As in C, you don’t need to compile specs; they are compiled when they are used. The -Ada `with' is similar in effect to the @code{#include} of a C +Ada @emph{with} is similar in effect to the @code{#include} of a C header. One notable difference is that, in Ada, you may compile specs separately @@ -6906,7 +6908,7 @@ previously compiled. In particular: @itemize * @item -When a unit is `with'ed, the unit seen by the compiler corresponds +When a unit is @emph{with}ed, the unit seen by the compiler corresponds to the version of the unit most recently compiled into the library. @item @@ -6925,7 +6927,7 @@ files can affect the results of a compilation. In particular: @itemize * @item -When a unit is `with'ed, the unit seen by the compiler corresponds +When a unit is @emph{with}ed, the unit seen by the compiler corresponds to the source version of the unit that is currently accessible to the compiler. @@ -7118,8 +7120,8 @@ dependencies, they will always be tracked exactly correctly by @code{gnatmake}. Note that for advanced forms of project structure, we recommend creating -a project file as explained in the `GNAT_Project_Manager' chapter in the -`GPRbuild User’s Guide', and using the +a project file as explained in the @emph{GNAT_Project_Manager} chapter in the +@emph{GPRbuild User’s Guide}, and using the @code{gprbuild} tool which supports building with project files and works similarly to @code{gnatmake}. @@ -7201,7 +7203,7 @@ all other options. @table @asis -@item @code{-P`project'} +@item @code{-P@emph{project}} Build GNAT project file @code{project} using GPRbuild. When this switch is present, all other command-line switches are treated as GPRbuild switches @@ -7216,7 +7218,7 @@ and not @code{gnatmake} switches. @table @asis -@item @code{--GCC=`compiler_name'} +@item @code{--GCC=@emph{compiler_name}} Program used for compiling. The default is @code{gcc}. You need to use quotes around @code{compiler_name} if @code{compiler_name} contains @@ -7239,7 +7241,7 @@ all the additional switches are also taken into account. Thus, @table @asis -@item @code{--GNATBIND=`binder_name'} +@item @code{--GNATBIND=@emph{binder_name}} Program used for binding. The default is @code{gnatbind}. You need to use quotes around @code{binder_name} if @code{binder_name} contains spaces @@ -7257,7 +7259,7 @@ itself must not include any embedded spaces. @table @asis -@item @code{--GNATLINK=`linker_name'} +@item @code{--GNATLINK=@emph{linker_name}} Program used for linking. The default is @code{gnatlink}. You need to use quotes around @code{linker_name} if @code{linker_name} contains spaces @@ -7274,7 +7276,7 @@ itself must not include any embedded spaces. When linking an executable, create a map file. The name of the map file has the same name as the executable with extension “.map”. -@item @code{--create-map-file=`mapfile'} +@item @code{--create-map-file=@emph{mapfile}} When linking an executable, create a map file with the specified name. @end table @@ -7286,7 +7288,7 @@ When linking an executable, create a map file with the specified name. @item @code{--create-missing-dirs} -When using project files (@code{-P`project'}), automatically create +When using project files (@code{-P@emph{project}}), automatically create missing object directories, library directories and exec directories. @@ -7295,7 +7297,7 @@ directories. Disallow simultaneous compilations in the same object directory when project files are used. -@item @code{--subdirs=`subdir'} +@item @code{--subdirs=@emph{subdir}} Actual object directory of each project file is the subdirectory subdir of the object directory specified or defaulted in the project file. @@ -7306,7 +7308,7 @@ By default, shared library projects are not allowed to import static library projects. When this switch is used on the command line, this restriction is relaxed. -@item @code{--source-info=`source info file'} +@item @code{--source-info=@emph{source info file}} Specify a source info file. This switch is active only when project files are used. If the source info file is specified as a relative path, then it is @@ -7417,7 +7419,7 @@ will add any newly accessed sources to the mapping file. @table @asis -@item @code{-C=`file'} +@item @code{-C=@emph{file}} Use a specific mapping file. The file, specified as a path name (absolute or relative) by this switch, should already exist, otherwise the switch is @@ -7449,7 +7451,7 @@ the compiler. These lines are displayed even in quiet output mode. @table @asis -@item @code{-D `dir'} +@item @code{-D @emph{dir}} Put all object files and ALI file in directory @code{dir}. If the @code{-D} switch is not used, all object files @@ -7463,7 +7465,7 @@ This switch cannot be used when using a project file. @table @asis -@item @code{-eI`nnn'} +@item @code{-eI@emph{nnn}} Indicates that the main source is a multi-unit source and the rank of the unit in the source file is nnn. nnn needs to be a positive number and a valid @@ -7575,7 +7577,7 @@ object and ALI files in the directory where it found the dummy file. @table @asis -@item @code{-j`n'} +@item @code{-j@emph{n}} Use @code{n} processes to carry out the (re)compilations. On a multiprocessor machine compilations will occur in parallel. If @code{n} is 0, then the @@ -7667,7 +7669,7 @@ is typically what you want. If you also specify the @code{-a} switch, dependencies of the GNAT internal files are also listed. Note that dependencies of the objects in external Ada libraries (see -switch @code{-aL`dir'} in the following list) +switch @code{-aL@emph{dir}} in the following list) are never reported. @end table @@ -7690,7 +7692,7 @@ file, will eventually result in recompiling all required units. @table @asis -@item @code{-o `exec_name'} +@item @code{-o @emph{exec_name}} Output executable name. The name of the final executable program will be @code{exec_name}. If the @code{-o} switch is omitted the default @@ -7808,7 +7810,7 @@ Verbosity level Medium. Potentially display fewer lines than in verbosity High. Verbosity level High. Equivalent to -v. -@item @code{-vP`x'} +@item @code{-vP@emph{x}} Indicate the verbosity of the parsing of GNAT project files. See @ref{d1,,Switches Related to Project Files}. @@ -7830,7 +7832,7 @@ be those specified on the command line. Even when @code{-x} is used, mains specified on the command line need to be sources of a project file. -@item @code{-X`name'=`value'} +@item @code{-X@emph{name}=@emph{value}} Indicate that external variable @code{name} has the value @code{value}. The Project Manager will use this value for occurrences of @@ -7865,7 +7867,7 @@ is passed to @code{gcc} (e.g., @code{-O}, @code{-gnato,} etc.) @table @asis -@item @code{-aI`dir'} +@item @code{-aI@emph{dir}} When looking for source files also look in directory @code{dir}. The order in which source files search is undertaken is @@ -7877,7 +7879,7 @@ described in @ref{73,,Search Paths and the Run-Time Library (RTL)}. @table @asis -@item @code{-aL`dir'} +@item @code{-aL@emph{dir}} Consider @code{dir} as being an externally provided Ada library. Instructs @code{gnatmake} to skip compilation units whose @code{.ALI} @@ -7885,7 +7887,7 @@ files have been located in directory @code{dir}. This allows you to have missing bodies for the units in @code{dir} and to ignore out of date bodies for the same units. You still need to specify the location of the specs for these units by using the switches -@code{-aI`dir'} or @code{-I`dir'}. +@code{-aI@emph{dir}} or @code{-I@emph{dir}}. Note: this switch is provided for compatibility with previous versions of @code{gnatmake}. The easier method of causing standard libraries to be excluded from consideration is to write-protect the corresponding @@ -7897,7 +7899,7 @@ ALI files. @table @asis -@item @code{-aO`dir'} +@item @code{-aO@emph{dir}} When searching for library and object files, look in directory @code{dir}. The order in which library files are searched is described in @@ -7912,15 +7914,15 @@ When searching for library and object files, look in directory @table @asis -@item @code{-A`dir'} +@item @code{-A@emph{dir}} -Equivalent to @code{-aL`dir'} @code{-aI`dir'}. +Equivalent to @code{-aL@emph{dir}} @code{-aI@emph{dir}}. @geindex -I (gnatmake) -@item @code{-I`dir'} +@item @code{-I@emph{dir}} -Equivalent to @code{-aO`dir' -aI`dir'}. +Equivalent to @code{-aO@emph{dir} -aI@emph{dir}}. @end table @geindex -I- (gnatmake) @@ -7946,11 +7948,11 @@ where @code{gnatmake} was invoked. @table @asis -@item @code{-L`dir'} +@item @code{-L@emph{dir}} Add directory @code{dir} to the list of directories in which the linker will search for libraries. This is equivalent to -@code{-largs} @code{-L`dir'}. +@code{-largs} @code{-L@emph{dir}}. Furthermore, under Windows, the sources pointed to by the libraries path set in the registry are not searched for. @end table @@ -7980,7 +7982,7 @@ Do not look for library files in the system default directory. @table @asis -@item @code{--RTS=`rts-path'} +@item @code{--RTS=@emph{rts-path}} Specifies the default location of the run-time library. GNAT looks for the run-time @@ -7992,13 +7994,13 @@ in the following directories, and stops as soon as a valid run-time is found @itemize * @item -`/$rts_path' +@emph{/$rts_path} @item -`/$rts_path' +@emph{/$rts_path} @item -`/rts-$rts_path' +@emph{/rts-$rts_path} @item The selected path is handled like a normal RTS path. @@ -8022,7 +8024,7 @@ designated component of GNAT. @table @asis -@item @code{-cargs `switches'} +@item @code{-cargs @emph{switches}} Compiler switches. Here @code{switches} is a list of switches that are valid switches for @code{gcc}. They will be passed on to @@ -8034,7 +8036,7 @@ all compile steps performed by @code{gnatmake}. @table @asis -@item @code{-bargs `switches'} +@item @code{-bargs @emph{switches}} Binder switches. Here @code{switches} is a list of switches that are valid switches for @code{gnatbind}. They will be passed on to @@ -8046,7 +8048,7 @@ all bind steps performed by @code{gnatmake}. @table @asis -@item @code{-largs `switches'} +@item @code{-largs @emph{switches}} Linker switches. Here @code{switches} is a list of switches that are valid switches for @code{gnatlink}. They will be passed on to @@ -8058,7 +8060,7 @@ all link steps performed by @code{gnatmake}. @table @asis -@item @code{-margs `switches'} +@item @code{-margs @emph{switches}} Make switches. The switches are directly interpreted by @code{gnatmake}, regardless of any previous occurrence of @code{-cargs}, @code{-bargs} @@ -8110,9 +8112,9 @@ unless @code{-a} is also specified. @item @code{gnatmake} has been designed to make the use of Ada libraries particularly convenient. Assume you have an Ada library organized -as follows: `obj-dir' contains the objects and ALI files for +as follows: @emph{obj-dir} contains the objects and ALI files for of your Ada compilation units, -whereas `include-dir' contains the +whereas @emph{include-dir} contains the specs of these units, but no bodies. Then to compile a unit stored in @code{main.adb}, which uses this Ada library you would just type: @@ -8146,7 +8148,7 @@ it may be useful to have some basic understanding of the @code{gnatmake} approach and in particular to understand how it uses the results of previous compilations without incorrectly depending on them. -First a definition: an object file is considered `up to date' if the +First a definition: an object file is considered @emph{up to date} if the corresponding ALI file exists and if all the source files listed in the dependency section of this ALI file have time stamps matching those in the ALI file. This means that neither the source file itself nor any @@ -8256,7 +8258,7 @@ the body file (@code{.adb}) for a library level package or generic package that has a body @end itemize -You need `not' compile the following files +You need @emph{not} compile the following files @itemize * @@ -8481,7 +8483,7 @@ file directly. @item When you compile a unit, the source files for the specs of all units -that it `with's, all its subunits, and the bodies of any generics it +that it @emph{with}s, all its subunits, and the bodies of any generics it instantiates must be available (reachable by the search-paths mechanism described above), or you will receive a fatal error message. @end itemize @@ -8563,7 +8565,7 @@ compilation units. @table @asis -@item @code{-b `target'} +@item @code{-b @emph{target}} Compile your program to run on @code{target}, which is the name of a system configuration. You must have a GNAT cross-compiler built if @@ -8575,7 +8577,7 @@ system configuration. You must have a GNAT cross-compiler built if @table @asis -@item @code{-B`dir'} +@item @code{-B@emph{dir}} Load compiler executables (for example, @code{gnat1}, the Ada compiler) from @code{dir} instead of the default location. Only use this switch @@ -8661,7 +8663,7 @@ emitted in the debug information. @table @asis -@item @code{-flto[=`n']} +@item @code{-flto[=@emph{n}]} Enables Link Time Optimization. This switch must be used in conjunction with the @code{-Ox} switches (but not with the @code{-gnatn} switch @@ -9052,7 +9054,7 @@ ALI files. @table @asis -@item @code{-gnatec=`path'} +@item @code{-gnatec=@emph{path}} Specify a configuration pragma file (the equal sign is optional) @@ -9086,7 +9088,7 @@ Disable atomic synchronization @table @asis -@item @code{-gnateDsymbol[=`value']} +@item @code{-gnateDsymbol[=@emph{value}]} Defines a symbol, associated with @code{value}, for preprocessing. (@ref{91,,Integrated Preprocessing}). @@ -9170,7 +9172,7 @@ used to be 64 in earlier versions of the compiler. @table @asis -@item @code{-gnatei`nnn'} +@item @code{-gnatei@emph{nnn}} Set maximum number of instantiations during compilation of a single unit to @code{nnn}. This may be useful in increasing the default maximum of 8000 for @@ -9182,7 +9184,7 @@ the rare case when a single unit legitimately exceeds this limit. @table @asis -@item @code{-gnateI`nnn'} +@item @code{-gnateI@emph{nnn}} Indicates that the source is a multi-unit source and that the index of the unit to compile is @code{nnn}. @code{nnn} needs to be a positive number and need @@ -9221,7 +9223,7 @@ This switch turns off the info messages about implicit elaboration pragmas. @table @asis -@item @code{-gnatem=`path'} +@item @code{-gnatem=@emph{path}} Specify a mapping file (the equal sign is optional) @@ -9233,7 +9235,7 @@ Specify a mapping file @table @asis -@item @code{-gnatep=`file'} +@item @code{-gnatep=@emph{file}} Specify a preprocessing data file (the equal sign is optional) @@ -9270,7 +9272,7 @@ Synonym of @code{-fdump-scos}, kept for backwards compatibility. @table @asis -@item @code{-gnatet=`path'} +@item @code{-gnatet=@emph{path}} Generate target dependent information. The format of the output file is described in the section about switch @code{-gnateT}. @@ -9281,7 +9283,7 @@ described in the section about switch @code{-gnateT}. @table @asis -@item @code{-gnateT=`path'} +@item @code{-gnateT=@emph{path}} Read target dependent information, such as endianness or sizes and alignments of base type. If this switch is passed, the default target dependent @@ -9537,7 +9539,7 @@ For further details see @ref{f,,Elaboration Order Handling in GNAT}. @table @asis -@item @code{-gnati`c'} +@item @code{-gnati@emph{c}} Identifier character set (@code{c} = 1/2/3/4/5/9/p/8/f/n/w). For details of the possible selections for @code{c}, @@ -9570,7 +9572,7 @@ code is likely to malfunction at run time. @table @asis -@item @code{-gnatj`nn'} +@item @code{-gnatj@emph{nn}} Reformat error messages to fit on @code{nn} character lines @end table @@ -9631,7 +9633,7 @@ details see @ref{f,,Elaboration Order Handling in GNAT}. @table @asis -@item @code{-gnatk=`n'} +@item @code{-gnatk=@emph{n}} Limit file names to @code{n} (1-999) characters (@code{k} = krunch). @end table @@ -9663,7 +9665,7 @@ source output. @table @asis -@item @code{-gnatm=`n'} +@item @code{-gnatm=@emph{n}} Limit number of detected error or warning messages to @code{n} where @code{n} is in the range 1..999999. The default setting if @@ -9744,7 +9746,7 @@ Interpretation @item -`1' +@emph{1} @tab @@ -9752,7 +9754,7 @@ All intermediate overflows checked against base type (@code{STRICT}) @item -`2' +@emph{2} @tab @@ -9760,7 +9762,7 @@ Minimize intermediate overflows (@code{MINIMIZED}) @item -`3' +@emph{3} @tab @@ -9883,7 +9885,7 @@ Print package Standard. @table @asis -@item @code{-gnatT`nnn'} +@item @code{-gnatT@emph{nnn}} All compiler tables start at @code{nnn} times usual starting size. @end table @@ -9933,7 +9935,7 @@ Control level of validity checking (@ref{e9,,Validity Checking}). @table @asis -@item @code{-gnatw`xxx'} +@item @code{-gnatw@emph{xxx}} Warning mode where @code{xxx} is a string of option letters that denotes @@ -9946,7 +9948,7 @@ are enabled or disabled (@ref{ed,,Warning Message Control}). @table @asis -@item @code{-gnatW`e'} +@item @code{-gnatW@emph{e}} Wide character encoding method (@code{e}=n/h/u/s/e/8). @@ -9997,7 +9999,7 @@ Enable built-in style checks (@ref{ee,,Style Checking}). @table @asis -@item @code{-gnatz`m'} +@item @code{-gnatz@emph{m}} Distribution stub generation and compilation (@code{m}=r/c for receiver/caller stubs). @@ -10008,7 +10010,7 @@ Distribution stub generation and compilation @table @asis -@item @code{-I`dir'} +@item @code{-I@emph{dir}} @geindex RTL @@ -10036,7 +10038,7 @@ files in the directory containing the source file named in the command line @table @asis -@item @code{-o `file'} +@item @code{-o @emph{file}} This switch is used in @code{gcc} to redirect the generated object file and its associated ALI file. Beware of this switch with GNAT, because it may @@ -10071,7 +10073,7 @@ Library (RTL) ALI files. @table @asis -@item @code{-O[`n']} +@item @code{-O[@emph{n}]} @code{n} controls the optimization level: @@ -10079,7 +10081,7 @@ Library (RTL) ALI files. @multitable {xxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} @item -`n' +@emph{n} @tab @@ -10087,7 +10089,7 @@ Effect @item -`0' +@emph{0} @tab @@ -10095,7 +10097,7 @@ No optimization, the default setting if no @code{-O} appears @item -`1' +@emph{1} @tab @@ -10105,7 +10107,7 @@ time. @item -`2' +@emph{2} @tab @@ -10114,7 +10116,7 @@ the cost of substantially increased compilation time. @item -`3' +@emph{3} @tab @@ -10123,7 +10125,7 @@ subprograms in the same unit. @item -`s' +@emph{s} @tab @@ -10151,7 +10153,7 @@ exit status. @table @asis -@item @code{--RTS=`rts-path'} +@item @code{--RTS=@emph{rts-path}} Specifies the default location of the run-time library. Same meaning as the equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}). @@ -10200,7 +10202,7 @@ compiler you are executing. @table @asis -@item @code{-V `ver'} +@item @code{-V @emph{ver}} Execute @code{ver} version of the compiler. This is the @code{gcc} version, not the GNAT version. @@ -10399,7 +10401,7 @@ warning messages generated. @table @asis -@item @code{-gnatl=`fname'} +@item @code{-gnatl=@emph{fname}} This has the same effect as @code{-gnatl} except that the output is written to a file instead of to standard output. If the given name @@ -10443,7 +10445,7 @@ format message or full listing (which as usual is written to @table @asis -@item @code{-gnatm=`n'} +@item @code{-gnatm=@emph{n}} The @code{m} stands for maximum. @code{n} is a decimal integer in the @@ -10705,7 +10707,7 @@ Wrong length on string assignment Violations of style rules if style checking is enabled @item -Unused `with' clauses +Unused @emph{with} clauses @item @code{Bit_Order} usage that does not have any effect @@ -10720,7 +10722,7 @@ Dereference of possibly null value Declaration that is likely to cause storage error @item -Internal GNAT unit `with'ed by application unit +Internal GNAT unit @emph{with}ed by application unit @item Values known to be out of range at compile time @@ -10774,7 +10776,7 @@ of the pragma in the @cite{GNAT_Reference_manual}). @item @code{-gnatwa} -`Activate most optional warnings.' +@emph{Activate most optional warnings.} This switch activates most optional warning messages. See the remaining list in this section for details on optional warning messages that can be @@ -10855,7 +10857,7 @@ All other optional warnings are turned on. @item @code{-gnatwA} -`Suppress all optional errors.' +@emph{Suppress all optional errors.} This switch suppresses all optional warning messages, see remaining list in this section for details on optional warning messages that can be @@ -10877,7 +10879,7 @@ the warnings for implicit dereferencing. @item @code{-gnatw.a} -`Activate warnings on failing assertions.' +@emph{Activate warnings on failing assertions.} @geindex Assert failures @@ -10894,7 +10896,7 @@ generated. @item @code{-gnatw.A} -`Suppress warnings on failing assertions.' +@emph{Suppress warnings on failing assertions.} @geindex Assert failures @@ -10909,7 +10911,7 @@ compile time that the assertion will fail. @item @code{-gnatw_a} -`Activate warnings on anonymous allocators.' +@emph{Activate warnings on anonymous allocators.} @geindex Anonymous allocators @@ -10926,7 +10928,7 @@ RM 3.10.2 (14). @item @code{-gnatw_A} -`Suppress warnings on anonymous allocators.' +@emph{Suppress warnings on anonymous allocators.} @geindex Anonymous allocators @@ -10940,7 +10942,7 @@ This switch suppresses warnings for anonymous access type allocators. @item @code{-gnatwb} -`Activate warnings on bad fixed values.' +@emph{Activate warnings on bad fixed values.} @geindex Bad fixed values @@ -10964,7 +10966,7 @@ are not generated. @item @code{-gnatwB} -`Suppress warnings on bad fixed values.' +@emph{Suppress warnings on bad fixed values.} This switch suppresses warnings for static fixed-point expressions whose value is not an exact multiple of Small. @@ -10977,7 +10979,7 @@ value is not an exact multiple of Small. @item @code{-gnatw.b} -`Activate warnings on biased representation.' +@emph{Activate warnings on biased representation.} @geindex Biased representation @@ -10994,7 +10996,7 @@ to represent 10/11). The default is that such warnings are generated. @item @code{-gnatw.B} -`Suppress warnings on biased representation.' +@emph{Suppress warnings on biased representation.} This switch suppresses warnings for representation clauses that force the use of biased representation. @@ -11007,7 +11009,7 @@ of biased representation. @item @code{-gnatwc} -`Activate warnings on conditionals.' +@emph{Activate warnings on conditionals.} @geindex Conditionals @geindex constant @@ -11044,7 +11046,7 @@ This warning can also be turned on using @code{-gnatwa}. @item @code{-gnatwC} -`Suppress warnings on conditionals.' +@emph{Suppress warnings on conditionals.} This switch suppresses warnings for conditional expressions used in tests that are known to be True or False at compile time. @@ -11057,7 +11059,7 @@ tests that are known to be True or False at compile time. @item @code{-gnatw.c} -`Activate warnings on missing component clauses.' +@emph{Activate warnings on missing component clauses.} @geindex Component clause @geindex missing @@ -11075,7 +11077,7 @@ component for which no component clause is present. @item @code{-gnatw.C} -`Suppress warnings on missing component clauses.' +@emph{Suppress warnings on missing component clauses.} This switch suppresses warnings for record components that are missing a component clause in the situation described above. @@ -11088,7 +11090,7 @@ missing a component clause in the situation described above. @item @code{-gnatw_c} -`Activate warnings on unknown condition in Compile_Time_Warning.' +@emph{Activate warnings on unknown condition in Compile_Time_Warning.} @geindex Compile_Time_Warning @@ -11107,7 +11109,7 @@ The default is that such warnings are generated. @item @code{-gnatw_C} -`Suppress warnings on unknown condition in Compile_Time_Warning.' +@emph{Suppress warnings on unknown condition in Compile_Time_Warning.} This switch suppresses warnings on a pragma Compile_Time_Warning or Compile_Time_Error whose condition has a value that is not @@ -11121,7 +11123,7 @@ known at compile time. @item @code{-gnatwd} -`Activate warnings on implicit dereferencing.' +@emph{Activate warnings on implicit dereferencing.} If this switch is set, then the use of a prefix of an access type in an indexed component, slice, or selected component without an @@ -11139,7 +11141,7 @@ warnings are not generated. @item @code{-gnatwD} -`Suppress warnings on implicit dereferencing.' +@emph{Suppress warnings on implicit dereferencing.} @geindex Implicit dereferencing @@ -11157,7 +11159,7 @@ indexed components, slices, and selected components. @item @code{-gnatw.d} -`Activate tagging of warning and info messages.' +@emph{Activate tagging of warning and info messages.} If this switch is set, then warning messages are tagged, with one of the following strings: @@ -11168,35 +11170,35 @@ following strings: @itemize - @item -`[-gnatw?]' +@emph{[-gnatw?]} Used to tag warnings controlled by the switch @code{-gnatwx} where x is a letter a-z. @item -`[-gnatw.?]' +@emph{[-gnatw.?]} Used to tag warnings controlled by the switch @code{-gnatw.x} where x is a letter a-z. @item -`[-gnatel]' +@emph{[-gnatel]} Used to tag elaboration information (info) messages generated when the static model of elaboration is used and the @code{-gnatel} switch is set. @item -`[restriction warning]' +@emph{[restriction warning]} Used to tag warning messages for restriction violations, activated by use of the pragma @code{Restriction_Warnings}. @item -`[warning-as-error]' +@emph{[warning-as-error]} Used to tag warning messages that have been converted to error messages by use of the pragma Warning_As_Error. Note that such warnings are prefixed by -the string “error: ” rather than “warning: “. +the string “error: “ rather than “warning: “. @item -`[enabled by default]' +@emph{[enabled by default]} Used to tag all other warnings that are always given by default, unless -warnings are completely suppressed using pragma `Warnings(Off)' or +warnings are completely suppressed using pragma @emph{Warnings(Off)} or the switch @code{-gnatws}. @end itemize @end quotation @@ -11209,7 +11211,7 @@ the switch @code{-gnatws}. @item @code{-gnatw.D} -`Deactivate tagging of warning and info messages messages.' +@emph{Deactivate tagging of warning and info messages messages.} If this switch is set, then warning messages return to the default mode in which warnings and info messages are not tagged as described above for @@ -11226,7 +11228,7 @@ mode in which warnings and info messages are not tagged as described above for @item @code{-gnatwe} -`Treat warnings and style checks as errors.' +@emph{Treat warnings and style checks as errors.} This switch causes warning messages and style check messages to be treated as errors. @@ -11244,7 +11246,7 @@ are not treated as errors if this switch is present. @item @code{-gnatw.e} -`Activate every optional warning.' +@emph{Activate every optional warning.} @geindex Warnings @geindex activate every optional warning @@ -11268,7 +11270,7 @@ been specifically designed according to specialized coding rules. @item @code{-gnatwE} -`Treat all run-time exception warnings as errors.' +@emph{Treat all run-time exception warnings as errors.} This switch causes warning messages regarding errors that will be raised during run-time execution to be treated as errors. @@ -11281,7 +11283,7 @@ during run-time execution to be treated as errors. @item @code{-gnatwf} -`Activate warnings on unreferenced formals.' +@emph{Activate warnings on unreferenced formals.} @geindex Formals @geindex unreferenced @@ -11299,7 +11301,7 @@ default is that these warnings are not generated. @item @code{-gnatwF} -`Suppress warnings on unreferenced formals.' +@emph{Suppress warnings on unreferenced formals.} This switch suppresses warnings for unreferenced formal parameters. Note that the @@ -11315,7 +11317,7 @@ formals. @item @code{-gnatwg} -`Activate warnings on unrecognized pragmas.' +@emph{Activate warnings on unrecognized pragmas.} @geindex Pragmas @geindex unrecognized @@ -11334,7 +11336,7 @@ Manual requirement that such warnings appear). @item @code{-gnatwG} -`Suppress warnings on unrecognized pragmas.' +@emph{Suppress warnings on unrecognized pragmas.} This switch suppresses warnings for unrecognized pragmas. @end table @@ -11346,7 +11348,7 @@ This switch suppresses warnings for unrecognized pragmas. @item @code{-gnatw.g} -`Warnings used for GNAT sources.' +@emph{Warnings used for GNAT sources.} This switch sets the warning categories that are used by the standard GNAT style. Currently this is equivalent to @@ -11361,7 +11363,7 @@ but more warnings may be added in the future without advanced notice. @item @code{-gnatwh} -`Activate warnings on hiding.' +@emph{Activate warnings on hiding.} @geindex Hiding of Declarations @@ -11378,7 +11380,7 @@ code. The default is that warnings on hiding are not generated. @item @code{-gnatwH} -`Suppress warnings on hiding.' +@emph{Suppress warnings on hiding.} This switch suppresses warnings on hiding declarations. @end table @@ -11390,7 +11392,7 @@ This switch suppresses warnings on hiding declarations. @item @code{-gnatw.h} -`Activate warnings on holes/gaps in records.' +@emph{Activate warnings on holes/gaps in records.} @geindex Record Representation (gaps) @@ -11412,7 +11414,7 @@ fill fields. @item @code{-gnatw.H} -`Suppress warnings on holes/gaps in records.' +@emph{Suppress warnings on holes/gaps in records.} This switch suppresses warnings on component clauses in record representation clauses that leave holes (haps) in the record layout. @@ -11425,16 +11427,16 @@ representation clauses that leave holes (haps) in the record layout. @item @code{-gnatwi} -`Activate warnings on implementation units.' +@emph{Activate warnings on implementation units.} -This switch activates warnings for a `with' of an internal GNAT +This switch activates warnings for a @emph{with} of an internal GNAT implementation unit, defined as any unit from the @code{Ada}, @code{Interfaces}, @code{GNAT}, or @code{System} hierarchies that is not documented in either the Ada Reference Manual or the GNAT Programmer’s Reference Manual. Such units are intended only -for internal implementation purposes and should not be `with'ed +for internal implementation purposes and should not be @emph{with}ed by user programs. The default is that such warnings are generated @end table @@ -11445,9 +11447,9 @@ by user programs. The default is that such warnings are generated @item @code{-gnatwI} -`Disable warnings on implementation units.' +@emph{Disable warnings on implementation units.} -This switch disables warnings for a `with' of an internal GNAT +This switch disables warnings for a @emph{with} of an internal GNAT implementation unit. @end table @@ -11458,7 +11460,7 @@ implementation unit. @item @code{-gnatw.i} -`Activate warnings on overlapping actuals.' +@emph{Activate warnings on overlapping actuals.} This switch enables a warning on statically detectable overlapping actuals in a subprogram call, when one of the actuals is an in-out parameter, and the @@ -11472,7 +11474,7 @@ types of the actuals are not by-copy types. This warning is off by default. @item @code{-gnatw.I} -`Disable warnings on overlapping actuals.' +@emph{Disable warnings on overlapping actuals.} This switch disables warnings on overlapping actuals in a call. @end table @@ -11484,7 +11486,7 @@ This switch disables warnings on overlapping actuals in a call. @item @code{-gnatwj} -`Activate warnings on obsolescent features (Annex J).' +@emph{Activate warnings on obsolescent features (Annex J).} @geindex Features @geindex obsolescent @@ -11520,7 +11522,7 @@ Second, the restriction does flag uses of package @code{ASCII}. @item @code{-gnatwJ} -`Suppress warnings on obsolescent features (Annex J).' +@emph{Suppress warnings on obsolescent features (Annex J).} This switch disables warnings on use of obsolescent features. @end table @@ -11532,7 +11534,7 @@ This switch disables warnings on use of obsolescent features. @item @code{-gnatw.j} -`Activate warnings on late declarations of tagged type primitives.' +@emph{Activate warnings on late declarations of tagged type primitives.} This switch activates warnings on visible primitives added to a tagged type after deriving a private extension from it. @@ -11545,7 +11547,7 @@ tagged type after deriving a private extension from it. @item @code{-gnatw.J} -`Suppress warnings on late declarations of tagged type primitives.' +@emph{Suppress warnings on late declarations of tagged type primitives.} This switch suppresses warnings on visible primitives added to a tagged type after deriving a private extension from it. @@ -11558,7 +11560,7 @@ tagged type after deriving a private extension from it. @item @code{-gnatwk} -`Activate warnings on variables that could be constants.' +@emph{Activate warnings on variables that could be constants.} This switch activates warnings for variables that are initialized but never modified, and then could be declared constants. The default is that @@ -11572,7 +11574,7 @@ such warnings are not given. @item @code{-gnatwK} -`Suppress warnings on variables that could be constants.' +@emph{Suppress warnings on variables that could be constants.} This switch disables warnings on variables that could be declared constants. @end table @@ -11584,7 +11586,7 @@ This switch disables warnings on variables that could be declared constants. @item @code{-gnatw.k} -`Activate warnings on redefinition of names in standard.' +@emph{Activate warnings on redefinition of names in standard.} This switch activates warnings for declarations that declare a name that is defined in package Standard. Such declarations can be confusing, @@ -11601,7 +11603,7 @@ not included in this check. @item @code{-gnatw.K} -`Suppress warnings on redefinition of names in standard.' +@emph{Suppress warnings on redefinition of names in standard.} This switch disables warnings for declarations that declare a name that is defined in package Standard. @@ -11614,7 +11616,7 @@ is defined in package Standard. @item @code{-gnatwl} -`Activate warnings for elaboration pragmas.' +@emph{Activate warnings for elaboration pragmas.} @geindex Elaboration @geindex warnings @@ -11636,7 +11638,7 @@ are not generated. @item @code{-gnatwL} -`Suppress warnings for elaboration pragmas.' +@emph{Suppress warnings for elaboration pragmas.} This switch suppresses warnings for possible elaboration problems. @end table @@ -11648,7 +11650,7 @@ This switch suppresses warnings for possible elaboration problems. @item @code{-gnatw.l} -`List inherited aspects.' +@emph{List inherited aspects.} This switch causes the compiler to list inherited invariants, preconditions, and postconditions from Type_Invariant’Class, Invariant’Class, @@ -11662,7 +11664,7 @@ Pre’Class, and Post’Class aspects. Also list inherited subtype predicates. @item @code{-gnatw.L} -`Suppress listing of inherited aspects.' +@emph{Suppress listing of inherited aspects.} This switch suppresses listing of inherited aspects. @end table @@ -11674,7 +11676,7 @@ This switch suppresses listing of inherited aspects. @item @code{-gnatwm} -`Activate warnings on modified but unreferenced variables.' +@emph{Activate warnings on modified but unreferenced variables.} This switch activates warnings for variables that are assigned (using an initialization value or with one or more assignment statements) but @@ -11691,7 +11693,7 @@ The default is that these warnings are not given. @item @code{-gnatwM} -`Disable warnings on modified but unreferenced variables.' +@emph{Disable warnings on modified but unreferenced variables.} This switch disables warnings for variables that are assigned or initialized, but never read. @@ -11704,7 +11706,7 @@ initialized, but never read. @item @code{-gnatw.m} -`Activate warnings on suspicious modulus values.' +@emph{Activate warnings on suspicious modulus values.} This switch activates warnings for modulus values that seem suspicious. The cases caught are where the size is the same as the modulus (e.g. @@ -11724,7 +11726,7 @@ integers after wrap-around. The default is that these warnings are given. @item @code{-gnatw.M} -`Disable warnings on suspicious modulus values.' +@emph{Disable warnings on suspicious modulus values.} This switch disables warnings for suspicious modulus values. @end table @@ -11736,7 +11738,7 @@ This switch disables warnings for suspicious modulus values. @item @code{-gnatwn} -`Set normal warnings mode.' +@emph{Set normal warnings mode.} This switch sets normal warning mode, in which enabled warnings are issued and treated as warnings rather than errors. This is the default @@ -11757,7 +11759,7 @@ use of @code{-gnatg}. @item @code{-gnatw.n} -`Activate warnings on atomic synchronization.' +@emph{Activate warnings on atomic synchronization.} This switch actives warnings when an access to an atomic variable requires the generation of atomic synchronization code. These @@ -11771,7 +11773,7 @@ warnings are off by default. @item @code{-gnatw.N} -`Suppress warnings on atomic synchronization.' +@emph{Suppress warnings on atomic synchronization.} @geindex Atomic Synchronization @geindex warnings @@ -11790,7 +11792,7 @@ requires the generation of atomic synchronization code. @item @code{-gnatwo} -`Activate warnings on address clause overlays.' +@emph{Activate warnings on address clause overlays.} This switch activates warnings for possibly unintended initialization effects of defining address clauses that cause one variable to overlap @@ -11804,7 +11806,7 @@ another. The default is that such warnings are generated. @item @code{-gnatwO} -`Suppress warnings on address clause overlays.' +@emph{Suppress warnings on address clause overlays.} This switch suppresses warnings on possibly unintended initialization effects of defining address clauses that cause one variable to overlap @@ -11818,7 +11820,7 @@ another. @item @code{-gnatw.o} -`Activate warnings on modified but unreferenced out parameters.' +@emph{Activate warnings on modified but unreferenced out parameters.} This switch activates warnings for variables that are modified by using them as actuals for a call to a procedure with an out mode formal, where @@ -11838,7 +11840,7 @@ The default is that these warnings are not given. @item @code{-gnatw.O} -`Disable warnings on modified but unreferenced out parameters.' +@emph{Disable warnings on modified but unreferenced out parameters.} This switch suppresses warnings for variables that are modified by using them as actuals for a call to a procedure with an out mode formal, where @@ -11855,7 +11857,7 @@ the resulting assigned value is never read. @item @code{-gnatwp} -`Activate warnings on ineffective pragma Inlines.' +@emph{Activate warnings on ineffective pragma Inlines.} This switch activates warnings for failure of front end inlining (activated by @code{-gnatN}) to inline a particular call. There are @@ -11873,7 +11875,7 @@ separately, using the gcc switch -Winline. @item @code{-gnatwP} -`Suppress warnings on ineffective pragma Inlines.' +@emph{Suppress warnings on ineffective pragma Inlines.} This switch suppresses warnings on ineffective pragma Inlines. If the inlining mechanism cannot inline a call, it will simply ignore the @@ -11890,7 +11892,7 @@ request silently. @item @code{-gnatw.p} -`Activate warnings on parameter ordering.' +@emph{Activate warnings on parameter ordering.} This switch activates warnings for cases of suspicious parameter ordering when the list of arguments are all simple identifiers that @@ -11908,7 +11910,7 @@ default is that such warnings are not given. @item @code{-gnatw.P} -`Suppress warnings on parameter ordering.' +@emph{Suppress warnings on parameter ordering.} This switch suppresses warnings on cases of suspicious parameter ordering. @@ -11921,7 +11923,7 @@ ordering. @item @code{-gnatw_p} -`Activate warnings for pedantic checks.' +@emph{Activate warnings for pedantic checks.} This switch activates warnings for the failure of certain pedantic checks. The only case currently supported is a check that the subtype_marks given @@ -11937,7 +11939,7 @@ is that such warnings are not given. @item @code{-gnatw_P} -`Suppress warnings for pedantic checks.' +@emph{Suppress warnings for pedantic checks.} This switch suppresses warnings on violations of pedantic checks. @end table @@ -11952,7 +11954,7 @@ This switch suppresses warnings on violations of pedantic checks. @item @code{-gnatwq} -`Activate warnings on questionable missing parentheses.' +@emph{Activate warnings on questionable missing parentheses.} This switch activates warnings for cases where parentheses are not used and the result is potential ambiguity from a readers point of view. For example @@ -11971,7 +11973,7 @@ is that these warnings are given. @item @code{-gnatwQ} -`Suppress warnings on questionable missing parentheses.' +@emph{Suppress warnings on questionable missing parentheses.} This switch suppresses warnings for cases where the association is not clear and the use of parentheses is preferred. @@ -11987,7 +11989,7 @@ clear and the use of parentheses is preferred. @item @code{-gnatw.q} -`Activate warnings on questionable layout of record types.' +@emph{Activate warnings on questionable layout of record types.} This switch activates warnings for cases where the default layout of a record type, that is to say the layout of its components in textual @@ -12041,7 +12043,7 @@ The default is that these warnings are not given. @item @code{-gnatw.Q} -`Suppress warnings on questionable layout of record types.' +@emph{Suppress warnings on questionable layout of record types.} This switch suppresses warnings for cases where the default layout of a record type would very likely cause inefficiencies. @@ -12054,7 +12056,7 @@ a record type would very likely cause inefficiencies. @item @code{-gnatw_q} -`Activate warnings for ignored equality operators.' +@emph{Activate warnings for ignored equality operators.} This switch activates warnings for a user-defined “=” function that does not compose (i.e. is ignored for a predefined “=” for a composite type @@ -12074,7 +12076,7 @@ The default is that these warnings are not given. @item @code{-gnatw_Q} -`Suppress warnings for ignored equality operators.' +@emph{Suppress warnings for ignored equality operators.} @end table @geindex -gnatwr (gcc) @@ -12084,7 +12086,7 @@ The default is that these warnings are not given. @item @code{-gnatwr} -`Activate warnings on redundant constructs.' +@emph{Activate warnings on redundant constructs.} This switch activates warnings for redundant constructs. The following is the current list of constructs regarded as redundant: @@ -12132,7 +12134,7 @@ The default is that warnings for redundant constructs are not given. @item @code{-gnatwR} -`Suppress warnings on redundant constructs.' +@emph{Suppress warnings on redundant constructs.} This switch suppresses warnings for redundant constructs. @end table @@ -12144,7 +12146,7 @@ This switch suppresses warnings for redundant constructs. @item @code{-gnatw.r} -`Activate warnings for object renaming function.' +@emph{Activate warnings for object renaming function.} This switch activates warnings for an object renaming that renames a function call, which is equivalent to a constant declaration (as @@ -12159,7 +12161,7 @@ warnings are given. @item @code{-gnatw.R} -`Suppress warnings for object renaming function.' +@emph{Suppress warnings for object renaming function.} This switch suppresses warnings for object renaming function. @end table @@ -12171,7 +12173,7 @@ This switch suppresses warnings for object renaming function. @item @code{-gnatw_r} -`Activate warnings for out-of-order record representation clauses.' +@emph{Activate warnings for out-of-order record representation clauses.} This switch activates warnings for record representation clauses, if the order of component declarations, component clauses, @@ -12186,7 +12188,7 @@ The default is that these warnings are not given. @item @code{-gnatw_R} -`Suppress warnings for out-of-order record representation clauses.' +@emph{Suppress warnings for out-of-order record representation clauses.} @end table @geindex -gnatws (gcc) @@ -12196,7 +12198,7 @@ The default is that these warnings are not given. @item @code{-gnatws} -`Suppress all warnings.' +@emph{Suppress all warnings.} This switch completely suppresses the output of all warning messages from the GNAT front end, including @@ -12221,7 +12223,7 @@ handling of style check messages. @item @code{-gnatw.s} -`Activate warnings on overridden size clauses.' +@emph{Activate warnings on overridden size clauses.} This switch activates warnings on component clauses in record representation clauses where the length given overrides that @@ -12238,7 +12240,7 @@ component type. @item @code{-gnatw.S} -`Suppress warnings on overridden size clauses.' +@emph{Suppress warnings on overridden size clauses.} This switch suppresses warnings on component clauses in record representation clauses that override size clauses, and similar @@ -12254,7 +12256,7 @@ warnings when an array component size overrides a size clause. @item @code{-gnatw_s} -`Activate warnings on ineffective predicate tests.' +@emph{Activate warnings on ineffective predicate tests.} This switch activates warnings on Static_Predicate aspect specifications that test for values that do not belong to @@ -12268,7 +12270,7 @@ the parent subtype. Not all such ineffective tests are detected. @item @code{-gnatw_S} -`Suppress warnings on ineffective predicate tests.' +@emph{Suppress warnings on ineffective predicate tests.} This switch suppresses warnings on Static_Predicate aspect specifications that test for values that do not belong to @@ -12288,7 +12290,7 @@ the parent subtype. @item @code{-gnatwt} -`Activate warnings for tracking of deleted conditional code.' +@emph{Activate warnings for tracking of deleted conditional code.} This switch activates warnings for tracking of code in conditionals (IF and CASE statements) that is detected to be dead code which cannot be executed, and @@ -12303,7 +12305,7 @@ useful for detecting deactivated code in certified applications. @item @code{-gnatwT} -`Suppress warnings for tracking of deleted conditional code.' +@emph{Suppress warnings for tracking of deleted conditional code.} This switch suppresses warnings for tracking of deleted conditional code. @end table @@ -12315,7 +12317,7 @@ This switch suppresses warnings for tracking of deleted conditional code. @item @code{-gnatw.t} -`Activate warnings on suspicious contracts.' +@emph{Activate warnings on suspicious contracts.} This switch activates warnings on suspicious contracts. This includes warnings on suspicious postconditions (whether a pragma @code{Postcondition} or a @@ -12337,7 +12339,7 @@ warnings are generated. @item @code{-gnatw.T} -`Suppress warnings on suspicious contracts.' +@emph{Suppress warnings on suspicious contracts.} This switch suppresses warnings on suspicious contracts. @end table @@ -12349,22 +12351,22 @@ This switch suppresses warnings on suspicious contracts. @item @code{-gnatwu} -`Activate warnings on unused entities.' +@emph{Activate warnings on unused entities.} This switch activates warnings to be generated for entities that -are declared but not referenced, and for units that are `with'ed +are declared but not referenced, and for units that are @emph{with}ed and not referenced. In the case of packages, a warning is also generated if no entities in the package are referenced. This means that if a with’ed package is referenced but the only references are in @code{use} clauses or @code{renames} declarations, a warning is still generated. A warning is also generated -for a generic package that is `with'ed but never instantiated. +for a generic package that is @emph{with}ed but never instantiated. In the case where a package or subprogram body is compiled, and there -is a `with' on the corresponding spec +is a @emph{with} on the corresponding spec that is only referenced in the body, a warning is also generated, noting that the -`with' can be moved to the body. The default is that +@emph{with} can be moved to the body. The default is that such warnings are not generated. This switch also activates warnings on unreferenced formals (it includes the effect of @code{-gnatwf}). @@ -12377,7 +12379,7 @@ This switch also activates warnings on unreferenced formals @item @code{-gnatwU} -`Suppress warnings on unused entities.' +@emph{Suppress warnings on unused entities.} This switch suppresses warnings for unused entities and packages. It also turns off warnings on unreferenced formals (and thus includes @@ -12391,13 +12393,13 @@ the effect of @code{-gnatwF}). @item @code{-gnatw.u} -`Activate warnings on unordered enumeration types.' +@emph{Activate warnings on unordered enumeration types.} This switch causes enumeration types to be considered as conceptually unordered, unless an explicit pragma @code{Ordered} is given for the type. The effect is to generate warnings in clients that use explicit comparisons or subranges, since these constructs both treat objects of the type as -ordered. (A `client' is defined as a unit that is other than the unit in +ordered. (A @emph{client} is defined as a unit that is other than the unit in which the type is declared, or its body or subunits.) Please refer to the description of pragma @code{Ordered} in the @cite{GNAT Reference Manual} for further details. @@ -12411,7 +12413,7 @@ The default is that such warnings are not generated. @item @code{-gnatw.U} -`Deactivate warnings on unordered enumeration types.' +@emph{Deactivate warnings on unordered enumeration types.} This switch causes all enumeration types to be considered as ordered, so that no warnings are given for comparisons or subranges for any type. @@ -12426,7 +12428,7 @@ that no warnings are given for comparisons or subranges for any type. @item @code{-gnatwv} -`Activate warnings on unassigned variables.' +@emph{Activate warnings on unassigned variables.} This switch activates warnings for access to variables which may not be properly initialized. The default is that @@ -12447,7 +12449,7 @@ unless the relevant type fully initializes all components. @item @code{-gnatwV} -`Suppress warnings on unassigned variables.' +@emph{Suppress warnings on unassigned variables.} This switch suppresses warnings for access to variables which may not be properly initialized. @@ -12462,7 +12464,7 @@ may not be properly initialized. @item @code{-gnatw.v} -`Activate info messages for non-default bit order.' +@emph{Activate info messages for non-default bit order.} This switch activates messages (labeled “info”, they are not warnings, just informational messages) about the effects of non-default bit-order @@ -12479,7 +12481,7 @@ exact consequences of using this feature. @item @code{-gnatw.V} -`Suppress info messages for non-default bit order.' +@emph{Suppress info messages for non-default bit order.} This switch suppresses information messages for the effects of specifying non-default bit order on record components with component clauses. @@ -12494,7 +12496,7 @@ non-default bit order on record components with component clauses. @item @code{-gnatww} -`Activate warnings on wrong low bound assumption.' +@emph{Activate warnings on wrong low bound assumption.} This switch activates warnings for indexing an unconstrained string parameter with a literal or S’Length. This is a case where the code is assuming that the @@ -12509,7 +12511,7 @@ passed). The default is that such warnings are generated. @item @code{-gnatwW} -`Suppress warnings on wrong low bound assumption.' +@emph{Suppress warnings on wrong low bound assumption.} This switch suppresses warnings for indexing an unconstrained string parameter with a literal or S’Length. Note that this warning can also be suppressed @@ -12532,7 +12534,7 @@ procedure K (S : String) is @item @code{-gnatw.w} -`Activate warnings on Warnings Off pragmas.' +@emph{Activate warnings on Warnings Off pragmas.} This switch activates warnings for use of @code{pragma Warnings (Off, entity)} where either the pragma is entirely useless (because it suppresses no @@ -12551,7 +12553,7 @@ The default is that these warnings are not given. @item @code{-gnatw.W} -`Suppress warnings on unnecessary Warnings Off pragmas.' +@emph{Suppress warnings on unnecessary Warnings Off pragmas.} This switch suppresses warnings for use of @code{pragma Warnings (Off, ...)}. @end table @@ -12565,7 +12567,7 @@ This switch suppresses warnings for use of @code{pragma Warnings (Off, ...)}. @item @code{-gnatwx} -`Activate warnings on Export/Import pragmas.' +@emph{Activate warnings on Export/Import pragmas.} This switch activates warnings on Export/Import pragmas when the compiler detects a possible conflict between the Ada and @@ -12583,7 +12585,7 @@ generated. @item @code{-gnatwX} -`Suppress warnings on Export/Import pragmas.' +@emph{Suppress warnings on Export/Import pragmas.} This switch suppresses warnings on Export/Import pragmas. The sense of this is that you are telling the compiler that @@ -12598,7 +12600,7 @@ should not complain at you. @item @code{-gnatw.x} -`Activate warnings for No_Exception_Propagation mode.' +@emph{Activate warnings for No_Exception_Propagation mode.} This switch activates warnings for exception usage when pragma Restrictions (No_Exception_Propagation) is in effect. Warnings are given for implicit or @@ -12608,7 +12610,7 @@ these warnings are given for units that contain exception handlers. @item @code{-gnatw.X} -`Disable warnings for No_Exception_Propagation mode.' +@emph{Disable warnings for No_Exception_Propagation mode.} This switch disables warnings for exception usage when pragma Restrictions (No_Exception_Propagation) is in effect. @@ -12623,7 +12625,7 @@ This switch disables warnings for exception usage when pragma Restrictions @item @code{-gnatwy} -`Activate warnings for Ada compatibility issues.' +@emph{Activate warnings for Ada compatibility issues.} For the most part, newer versions of Ada are upwards compatible with older versions. For example, Ada 2005 programs will almost @@ -12645,7 +12647,7 @@ was called Ada 0Y, hence the choice of character. @item @code{-gnatwY} -`Disable warnings for Ada compatibility issues.' +@emph{Disable warnings for Ada compatibility issues.} This switch suppresses the warnings intended to help in identifying incompatibilities between Ada language versions. @@ -12660,7 +12662,7 @@ incompatibilities between Ada language versions. @item @code{-gnatw.y} -`Activate information messages for why package spec needs body.' +@emph{Activate information messages for why package spec needs body.} There are a number of cases in which a package spec needs a body. For example, the use of pragma Elaborate_Body, or the declaration @@ -12680,7 +12682,7 @@ body. The default is that such information messages are not output. @item @code{-gnatw.Y} -`Disable information messages for why package spec needs body.' +@emph{Disable information messages for why package spec needs body.} This switch suppresses the output of information messages showing why a package specification needs a body. @@ -12695,7 +12697,7 @@ a package specification needs a body. @item @code{-gnatwz} -`Activate warnings on unchecked conversions.' +@emph{Activate warnings on unchecked conversions.} This switch activates warnings for unchecked conversions where the types are known at compile time to have different @@ -12710,7 +12712,7 @@ generated for subprogram pointers with different conventions. @item @code{-gnatwZ} -`Suppress warnings on unchecked conversions.' +@emph{Suppress warnings on unchecked conversions.} This switch suppresses warnings for unchecked conversions where the types are known at compile time to have different @@ -12726,7 +12728,7 @@ sizes or conventions. @item @code{-gnatw.z} -`Activate warnings for size not a multiple of alignment.' +@emph{Activate warnings for size not a multiple of alignment.} This switch activates warnings for cases of array and record types with specified @code{Size} and @code{Alignment} attributes where the @@ -12744,7 +12746,7 @@ is that such warnings are generated. @item @code{-gnatw.Z} -`Suppress warnings for size not a multiple of alignment.' +@emph{Suppress warnings for size not a multiple of alignment.} This switch suppresses warnings for cases of array and record types with specified @code{Size} and @code{Alignment} attributes where the @@ -12784,7 +12786,7 @@ used in conjunction with an optimization level greater than zero. @table @asis -@item @code{-Wstack-usage=`len'} +@item @code{-Wstack-usage=@emph{len}} Warn if the stack usage of a subprogram might be larger than @code{len} bytes. See @ref{e8,,Static Stack Usage Analysis} for details. @@ -13125,7 +13127,7 @@ combination with optimization, since this can confuse the optimizer. If performance is a consideration, leading to the need to optimize, then the validity checking options should not be used. -The other @code{-gnatV`x'} switches below allow finer-grained +The other @code{-gnatV@emph{x}} switches below allow finer-grained control; you can enable whichever validity checks you desire. However, for most debugging purposes, @code{-gnatVa} is sufficient, and the default @code{-gnatVd} (i.e. standard Ada behavior) is usually @@ -13138,7 +13140,7 @@ the compiler can generate more efficient code, since the range of values is better known at compile time. However, an uninitialized variable can cause wild jumps and memory corruption in this mode. -The @code{-gnatV`x'} switch allows control over the validity +The @code{-gnatV@emph{x}} switch allows control over the validity checking mode as described below. The @code{x} argument is a string of letters that indicate validity checks that are performed or not performed in addition @@ -13151,7 +13153,7 @@ to the default checks required by Ada as described above. @item @code{-gnatVa} -`All validity checks.' +@emph{All validity checks.} All validity checks are turned on. That is, @code{-gnatVa} is @@ -13165,7 +13167,7 @@ equivalent to @code{gnatVcdefimoprst}. @item @code{-gnatVc} -`Validity checks for copies.' +@emph{Validity checks for copies.} The right-hand side of assignments, and the (explicit) initializing values of object declarations are validity checked. @@ -13178,7 +13180,7 @@ of object declarations are validity checked. @item @code{-gnatVd} -`Default (RM) validity checks.' +@emph{Default (RM) validity checks.} Some validity checks are required by Ada (see RM 13.9.1 (9-11)); these (and only these) validity checks are enabled by default. @@ -13204,7 +13206,7 @@ overwriting may occur. @item @code{-gnatVe} -`Validity checks for scalar components.' +@emph{Validity checks for scalar components.} In the absence of this switch, assignments to scalar components of enclosing record or array objects are not validity checked, even if @@ -13220,7 +13222,7 @@ This switch has no effect if the @code{-gnatVc} switch is not specified. @item @code{-gnatVf} -`Validity checks for floating-point values.' +@emph{Validity checks for floating-point values.} Specifying this switch enables validity checking for floating-point values in the same contexts where validity checking is enabled for @@ -13247,7 +13249,7 @@ options. For example, @code{-gnatVif} or @code{-gnatVfi} @item @code{-gnatVi} -`Validity checks for `@w{`}in`@w{`} mode parameters.' +@emph{Validity checks for `@w{`}in`@w{`} mode parameters.} Arguments for parameters of mode @code{in} are validity checked in function and procedure calls at the point of call. @@ -13260,7 +13262,7 @@ and procedure calls at the point of call. @item @code{-gnatVm} -`Validity checks for `@w{`}in out`@w{`} mode parameters.' +@emph{Validity checks for `@w{`}in out`@w{`} mode parameters.} Arguments for parameters of mode @code{in out} are validity checked in procedure calls at the point of call. The @code{'m'} here stands for @@ -13278,7 +13280,7 @@ will be subject to validity checking. @item @code{-gnatVn} -`No validity checks.' +@emph{No validity checks.} This switch turns off all validity checking, including the default checking for case statements and left hand side subscripts. Note that the use of @@ -13294,7 +13296,7 @@ is used, it cancels any other @code{-gnatV} previously issued. @item @code{-gnatVo} -`Validity checks for operator and attribute operands.' +@emph{Validity checks for operator and attribute operands.} Scalar arguments for predefined operators and for attributes are validity checked. @@ -13313,7 +13315,7 @@ also made on explicit ranges using @code{..} (e.g., slices, loops etc). @item @code{-gnatVp} -`Validity checks for parameters.' +@emph{Validity checks for parameters.} This controls the treatment of formal parameters within a subprogram (as opposed to @code{-gnatVi} and @code{-gnatVm}, which control validity @@ -13333,7 +13335,7 @@ the two call-related options is specified, then this switch has no effect. @item @code{-gnatVr} -`Validity checks for function returns.' +@emph{Validity checks for function returns.} The expression in simple @code{return} statements in functions is validity checked. @@ -13346,7 +13348,7 @@ checked. @item @code{-gnatVs} -`Validity checks for subscripts.' +@emph{Validity checks for subscripts.} All subscript expressions are checked for validity, whatever context they occur in (in default mode some subscripts are not validity checked; @@ -13361,7 +13363,7 @@ a read of a component of an array). @item @code{-gnatVt} -`Validity checks for tests.' +@emph{Validity checks for tests.} Expressions used as conditions in @code{if}, @code{while} or @code{exit} statements are checked, as well as guard expressions in entry calls. @@ -13426,7 +13428,7 @@ checks to be performed. The following checks are defined: @item @code{-gnaty0} -`Specify indentation level.' +@emph{Specify indentation level.} If a digit from 1-9 appears in the string after @code{-gnaty} @@ -13465,7 +13467,7 @@ non-blank line. @item @code{-gnatya} -`Check attribute casing.' +@emph{Check attribute casing.} Attribute names, including the case of keywords such as @code{digits} used as attributes names, must be written in mixed case, that is, the @@ -13480,7 +13482,7 @@ All other letters must be lowercase. @item @code{-gnatyA} -`Use of array index numbers in array attributes.' +@emph{Use of array index numbers in array attributes.} When using the array attributes First, Last, Range, or Length, the index number must be omitted for one-dimensional arrays @@ -13494,7 +13496,7 @@ and is required for multi-dimensional arrays. @item @code{-gnatyb} -`Blanks not allowed at statement end.' +@emph{Blanks not allowed at statement end.} Trailing blanks are not allowed at the end of statements. The purpose of this rule, together with h (no horizontal tabs), is to enforce a canonical format @@ -13508,7 +13510,7 @@ for the use of blanks to separate source tokens. @item @code{-gnatyB} -`Check Boolean operators.' +@emph{Check Boolean operators.} The use of AND/OR operators is not permitted except in the cases of modular operands, array operands, and simple stand-alone boolean variables or @@ -13523,7 +13525,7 @@ required. @item @code{-gnatyc} -`Check comments, double space.' +@emph{Check comments, double space.} Comments must meet the following set of rules: @@ -13585,7 +13587,7 @@ example: @item @code{-gnatyC} -`Check comments, single space.' +@emph{Check comments, single space.} This is identical to @code{c} except that only one space is required following the @code{--} of a comment instead of two. @@ -13598,7 +13600,7 @@ is required following the @code{--} of a comment instead of two. @item @code{-gnatyd} -`Check no DOS line terminators present.' +@emph{Check no DOS line terminators present.} All lines must be terminated by a single ASCII.LF character (in particular the DOS line terminator sequence CR/LF is not @@ -13612,7 +13614,7 @@ allowed). @item @code{-gnatyD} -`Check declared identifiers in mixed case.' +@emph{Check declared identifiers in mixed case.} Declared identifiers must be in mixed case, as in This_Is_An_Identifier. Use -gnatyr in addition to ensure @@ -13626,7 +13628,7 @@ that references match declarations. @item @code{-gnatye} -`Check end/exit labels.' +@emph{Check end/exit labels.} Optional labels on @code{end} statements ending subprograms and on @code{exit} statements exiting named loops, are required to be present. @@ -13639,7 +13641,7 @@ Optional labels on @code{end} statements ending subprograms and on @item @code{-gnatyf} -`No form feeds or vertical tabs.' +@emph{No form feeds or vertical tabs.} Neither form feeds nor vertical tab characters are permitted in the source text. @@ -13652,7 +13654,7 @@ in the source text. @item @code{-gnatyg} -`GNAT style mode.' +@emph{GNAT style mode.} The set of style check switches is set to match that used by the GNAT sources. This may be useful when developing code that is eventually intended to be @@ -13668,7 +13670,7 @@ set in the future without advance notice. @item @code{-gnatyh} -`No horizontal tabs.' +@emph{No horizontal tabs.} Horizontal tab characters are not permitted in the source text. Together with the b (no blanks at end of line) check, this @@ -13683,7 +13685,7 @@ source tokens. @item @code{-gnatyi} -`Check if-then layout.' +@emph{Check if-then layout.} The keyword @code{then} must appear either on the same line as corresponding @code{if}, or on a line on its own, lined @@ -13697,7 +13699,7 @@ up under the @code{if}. @item @code{-gnatyI} -`check mode IN keywords.' +@emph{check mode IN keywords.} Mode @code{in} (the default mode) is not allowed to be given explicitly. @code{in out} is fine, @@ -13711,7 +13713,7 @@ but not @code{in} on its own. @item @code{-gnatyk} -`Check keyword casing.' +@emph{Check keyword casing.} All keywords must be in lower case (with the exception of keywords such as @code{digits} used as attribute names to which this check @@ -13726,7 +13728,7 @@ this rule even if multiple casing issues exist on a same line. @item @code{-gnatyl} -`Check layout.' +@emph{Check layout.} Layout of statement and declaration constructs must follow the recommendations in the Ada Reference Manual, as indicated by the @@ -13802,11 +13804,11 @@ Clear : @item @code{-gnatyL} -`Set maximum nesting level.' +@emph{Set maximum nesting level.} The maximum level of nesting of constructs (including subprograms, loops, blocks, packages, and conditionals) may not exceed the given value -`nnn'. A value of zero disconnects this style check. +@emph{nnn}. A value of zero disconnects this style check. @end table @geindex -gnatym (gcc) @@ -13816,7 +13818,7 @@ blocks, packages, and conditionals) may not exceed the given value @item @code{-gnatym} -`Check maximum line length.' +@emph{Check maximum line length.} The length of source lines must not exceed 79 characters, including any trailing blanks. The value of 79 allows convenient display on an @@ -13834,10 +13836,10 @@ a single character (however many bytes are needed in the encoding). @item @code{-gnatyM} -`Set maximum line length.' +@emph{Set maximum line length.} The length of lines must not exceed the -given value `nnn'. The maximum value that can be specified is 32767. +given value @emph{nnn}. The maximum value that can be specified is 32767. If neither style option for setting the line length is used, then the default is 255. This also controls the maximum length of lexical elements, where the only restriction is that they must fit on a single line. @@ -13850,7 +13852,7 @@ where the only restriction is that they must fit on a single line. @item @code{-gnatyn} -`Check casing of entities in Standard.' +@emph{Check casing of entities in Standard.} Any identifier from Standard must be cased to match the presentation in the Ada Reference Manual (for example, @@ -13864,7 +13866,7 @@ to match the presentation in the Ada Reference Manual (for example, @item @code{-gnatyN} -`Turn off all style checks.' +@emph{Turn off all style checks.} All style check options are turned off. @end table @@ -13876,7 +13878,7 @@ All style check options are turned off. @item @code{-gnatyo} -`Check order of subprogram bodies.' +@emph{Check order of subprogram bodies.} All subprogram bodies in a given scope (e.g., a package body) must be in alphabetical order. The ordering @@ -13893,7 +13895,7 @@ before Junk10). @item @code{-gnatyO} -`Check that overriding subprograms are explicitly marked as such.' +@emph{Check that overriding subprograms are explicitly marked as such.} This applies to all subprograms of a derived type that override a primitive operation of the type, for both tagged and untagged types. In particular, @@ -13910,7 +13912,7 @@ as an equality operator). @item @code{-gnatyp} -`Check pragma casing.' +@emph{Check pragma casing.} Pragma names must be written in mixed case, that is, the initial letter and any letter following an underscore must be uppercase. @@ -13925,7 +13927,7 @@ allowed as an alternative for Spark_Mode. @item @code{-gnatyr} -`Check references.' +@emph{Check references.} All identifier references must be cased in the same way as the corresponding declaration. No specific casing style is imposed on @@ -13940,7 +13942,7 @@ with declarations. @item @code{-gnatys} -`Check separate specs.' +@emph{Check separate specs.} Separate declarations (‘specs’) are required for subprograms (a body is not allowed to serve as its own declaration). The only @@ -13956,7 +13958,7 @@ the most frequent form of main program procedures. @item @code{-gnatyS} -`Check no statements after then/else.' +@emph{Check no statements after then/else.} No statements are allowed on the same line as a @code{then} or @code{else} keyword following the @@ -13971,7 +13973,7 @@ affected, and a special exception allows a pragma to appear after @code{else}. @item @code{-gnatyt} -`Check token spacing.' +@emph{Check token spacing.} The following token spacing rules are enforced: @@ -14036,7 +14038,7 @@ a @code{not} token and a following @code{in} token. @item @code{-gnatyu} -`Check unnecessary blank lines.' +@emph{Check unnecessary blank lines.} Unnecessary blank lines are not allowed. A blank line is considered unnecessary if it appears at the end of the file, or if more than @@ -14050,7 +14052,7 @@ one blank line occurs in sequence. @item @code{-gnatyx} -`Check extra parentheses.' +@emph{Check extra parentheses.} Unnecessary extra levels of parentheses (C-style) are not allowed around conditions (or selection expressions) in @code{if}, @code{while}, @@ -14064,7 +14066,7 @@ around conditions (or selection expressions) in @code{if}, @code{while}, @item @code{-gnatyy} -`Set all standard style check options.' +@emph{Set all standard style check options.} This is equivalent to @code{gnaty3aAbcefhiklmnprst}, that is all checking options enabled with the exception of @code{-gnatyB}, @code{-gnatyd}, @@ -14079,7 +14081,7 @@ options enabled with the exception of @code{-gnatyB}, @code{-gnatyd}, @item @code{-gnatyz} -`Check extra parentheses (operator precedence).' +@emph{Check extra parentheses (operator precedence).} Extra levels of parentheses that are not required by operator precedence rules are flagged. See also @code{-gnatyx}. @@ -14092,15 +14094,15 @@ rules are flagged. See also @code{-gnatyx}. @item @code{-gnaty-} -`Remove style check options.' +@emph{Remove style check options.} This causes any subsequent options in the string to act as canceling the corresponding style check option. To cancel maximum nesting level control, use the @code{L} parameter without any integer value after that, because any -digit following `-' in the parameter string of the @code{-gnaty} +digit following @emph{-} in the parameter string of the @code{-gnaty} option will be treated as canceling the indentation check. The same is true for the @code{M} parameter. @code{y} and @code{N} parameters are not -allowed after `-'. +allowed after @emph{-}. @end table @geindex -gnaty+ (gcc) @@ -14110,7 +14112,7 @@ allowed after `-'. @item @code{-gnaty+} -`Enable style check options.' +@emph{Enable style check options.} This causes any subsequent options in the string to enable the corresponding style check option. That is, it cancels the effect of a previous -, @@ -14267,20 +14269,20 @@ controls the mode, using the codes @table @asis -@item `1 = STRICT' +@item @emph{1 = STRICT} In STRICT mode, intermediate operations are always done using the base type, and overflow checking ensures that the result is within the base type range. -@item `2 = MINIMIZED' +@item @emph{2 = MINIMIZED} In MINIMIZED mode, overflows in intermediate operations are avoided where possible by using a larger integer type for the computation (typically @code{Long_Long_Integer}). Overflow checking ensures that the result fits in this larger integer type. -@item `3 = ELIMINATED' +@item @emph{3 = ELIMINATED} In ELIMINATED mode, overflows in intermediate operations are avoided by using multi-precision arithmetic. In this case, overflow checking @@ -14407,7 +14409,7 @@ $ Otherwise, the output is simply the error messages, if any. No object file or ALI file is generated by a syntax-only compilation. Also, no units other than the one specified are accessed. For example, if a unit @code{X} -`with's a unit @code{Y}, compiling unit @code{X} in syntax +@emph{with}s a unit @code{Y}, compiling unit @code{X} in syntax check only mode does not access the source file containing unit @code{Y}. @@ -14516,7 +14518,7 @@ with optional bodies), it is not necessary to specify the exceptions, Ada 95 and Ada 2005 are upwardly compatible with Ada 83. Thus a correct Ada 83 program is usually also a correct program in these later versions of the language standard. For further information -please refer to the `Compatibility and Porting Guide' chapter in the +please refer to the @emph{Compatibility and Porting Guide} chapter in the @cite{GNAT Reference Manual}. @end table @@ -14643,7 +14645,7 @@ extensions enabled by this switch, see the GNAT reference manual @table @asis -@item @code{-gnati`c'} +@item @code{-gnati@emph{c}} Normally GNAT recognizes the Latin-1 character set in source program identifiers, as described in the Ada Reference Manual. @@ -14655,7 +14657,7 @@ single character indicating the character set, as follows: @multitable {xxxxxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} @item -`1' +@emph{1} @tab @@ -14663,7 +14665,7 @@ ISO 8859-1 (Latin-1) identifiers @item -`2' +@emph{2} @tab @@ -14671,7 +14673,7 @@ ISO 8859-2 (Latin-2) letters allowed in identifiers @item -`3' +@emph{3} @tab @@ -14679,7 +14681,7 @@ ISO 8859-3 (Latin-3) letters allowed in identifiers @item -`4' +@emph{4} @tab @@ -14687,7 +14689,7 @@ ISO 8859-4 (Latin-4) letters allowed in identifiers @item -`5' +@emph{5} @tab @@ -14695,7 +14697,7 @@ ISO 8859-5 (Cyrillic) letters allowed in identifiers @item -`9' +@emph{9} @tab @@ -14703,7 +14705,7 @@ ISO 8859-15 (Latin-9) letters allowed in identifiers @item -`p' +@emph{p} @tab @@ -14711,7 +14713,7 @@ IBM PC letters (code page 437) allowed in identifiers @item -`8' +@emph{8} @tab @@ -14719,7 +14721,7 @@ IBM PC letters (code page 850) allowed in identifiers @item -`f' +@emph{f} @tab @@ -14727,7 +14729,7 @@ Full upper-half codes allowed in identifiers @item -`n' +@emph{n} @tab @@ -14735,7 +14737,7 @@ No upper-half codes allowed in identifiers @item -`w' +@emph{w} @tab @@ -14754,7 +14756,7 @@ implementation of these character sets. @table @asis -@item @code{-gnatW`e'} +@item @code{-gnatW@emph{e}} Specify the method of encoding for wide characters. @code{e} is one of the following: @@ -14763,7 +14765,7 @@ Specify the method of encoding for wide characters. @multitable {xxxxxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} @item -`h' +@emph{h} @tab @@ -14771,7 +14773,7 @@ Hex encoding (brackets coding also recognized) @item -`u' +@emph{u} @tab @@ -14779,7 +14781,7 @@ Upper half encoding (brackets encoding also recognized) @item -`s' +@emph{s} @tab @@ -14787,7 +14789,7 @@ Shift/JIS encoding (brackets encoding also recognized) @item -`e' +@emph{e} @tab @@ -14795,7 +14797,7 @@ EUC encoding (brackets encoding also recognized) @item -`8' +@emph{8} @tab @@ -14803,7 +14805,7 @@ UTF-8 encoding (brackets encoding also recognized) @item -`b' +@emph{b} @tab @@ -14870,7 +14872,7 @@ This is a common mode for many programs with foreign language comments. @table @asis -@item @code{-gnatk`n'} +@item @code{-gnatk@emph{n}} Activates file name ‘krunching’. @code{n}, a decimal integer in the range 1-999, indicates the maximum allowable length of a file name (not @@ -14969,7 +14971,7 @@ react to a compilation failure. Those exit status are: @multitable {xxxxxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} @item -`5' +@emph{5} @tab @@ -14977,7 +14979,7 @@ There was an error in at least one source file. @item -`3' +@emph{3} @tab @@ -14985,7 +14987,7 @@ At least one source file did not generate an object file. @item -`2' +@emph{2} @tab @@ -14993,7 +14995,7 @@ The compiler died unexpectedly (internal error for example). @item -`0' +@emph{0} @tab @@ -15018,7 +15020,7 @@ An object file has been generated for every source file. @table @asis -@item @code{-gnatd`x'} +@item @code{-gnatd@emph{x}} Activate internal debugging switches. @code{x} is a letter or digit, or string of letters or digits, which specifies the type of debugging @@ -15033,7 +15035,7 @@ file @code{debug.adb}. @table @asis -@item @code{-gnatG[=`nn']} +@item @code{-gnatG[=@emph{nn}]} This switch causes the compiler to generate auxiliary output containing a pseudo-source listing of the generated expanded code. Like most Ada @@ -15069,47 +15071,47 @@ in the expanded source (as comment lines with the original line number). @table @asis -@item @code{new @var{xxx} [storage_pool = @var{yyy}]} +@item @code{new @emph{xxx} [storage_pool = @emph{yyy}]} Shows the storage pool being used for an allocator. -@item @code{at end @var{procedure-name};} +@item @code{at end @emph{procedure-name};} Shows the finalization (cleanup) procedure for a scope. -@item @code{(if @var{expr} then @var{expr} else @var{expr})} +@item @code{(if @emph{expr} then @emph{expr} else @emph{expr})} Conditional expression equivalent to the @code{x?y:z} construction in C. -@item @code{@var{target}^(@var{source})} +@item @code{@emph{target}^(@emph{source})} A conversion with floating-point truncation instead of rounding. -@item @code{@var{target}?(@var{source})} +@item @code{@emph{target}?(@emph{source})} A conversion that bypasses normal Ada semantic checking. In particular enumeration types and fixed-point types are treated simply as integers. -@item @code{@var{target}?^(@var{source})} +@item @code{@emph{target}?^(@emph{source})} Combines the above two cases. @end table -@code{@var{x} #/ @var{y}} +@code{@emph{x} #/ @emph{y}} -@code{@var{x} #mod @var{y}} +@code{@emph{x} #mod @emph{y}} -@code{@var{x} # @var{y}} +@code{@emph{x} # @emph{y}} @table @asis -@item @code{@var{x} #rem @var{y}} +@item @code{@emph{x} #rem @emph{y}} A division or multiplication of fixed-point values which are treated as integers without any kind of scaling. -@item @code{free @var{expr} [storage_pool = @var{xxx}]} +@item @code{free @emph{expr} [storage_pool = @emph{xxx}]} Shows the storage pool associated with a @code{free} statement. @@ -15118,30 +15120,30 @@ Shows the storage pool associated with a @code{free} statement. Used to list an equivalent declaration for an internally generated type that is referenced elsewhere in the listing. -@item @code{freeze @var{type-name} [@var{actions}]} +@item @code{freeze @emph{type-name} [@emph{actions}]} Shows the point at which @code{type-name} is frozen, with possible associated actions to be performed at the freeze point. -@item @code{reference @var{itype}} +@item @code{reference @emph{itype}} Reference (and hence definition) to internal type @code{itype}. -@item @code{@var{function-name}! (@var{arg}, @var{arg}, @var{arg})} +@item @code{@emph{function-name}! (@emph{arg}, @emph{arg}, @emph{arg})} Intrinsic function call. -@item @code{@var{label-name} : label} +@item @code{@emph{label-name} : label} Declaration of label @code{labelname}. -@item @code{#$ @var{subprogram-name}} +@item @code{#$ @emph{subprogram-name}} An implicit call to a run-time support routine (to meet the requirement of H.3.1(9) in a convenient manner). -@item @code{@var{expr} && @var{expr} && @var{expr} ... && @var{expr}} +@item @code{@emph{expr} && @emph{expr} && @emph{expr} ... && @emph{expr}} A multiple concatenation (same effect as @code{expr} & @code{expr} & @code{expr}, but handled more efficiently). @@ -15150,15 +15152,15 @@ A multiple concatenation (same effect as @code{expr} & @code{expr} & Raise the @code{Constraint_Error} exception. -@item @code{@var{expression}'reference} +@item @code{@emph{expression}'reference} A pointer to the result of evaluating @{expression@}. -@item @code{@var{target-type}!(@var{source-expression})} +@item @code{@emph{target-type}!(@emph{source-expression})} An unchecked conversion of @code{source-expression} to @code{target-type}. -@item @code{[@var{numerator}/@var{denominator}]} +@item @code{[@emph{numerator}/@emph{denominator}]} Used to represent internal real literals (that) have no exact representation in base 2-16 (for example, the result of compile time @@ -15434,7 +15436,7 @@ through the compilation and binding steps. @table @asis -@item @code{-gnatem=`path'} +@item @code{-gnatem=@emph{path}} A mapping file is a way to communicate to the compiler two mappings: from unit names to file names (without any directory information) and from @@ -15517,7 +15519,7 @@ Linker switches can be specified after @code{-largs} builder switch. @table @asis -@item @code{-fuse-ld=`name'} +@item @code{-fuse-ld=@emph{name}} Linker to be used. The default is @code{bfd} for @code{ld.bfd}; @code{gold} (for @code{ld.gold}) and @code{mold} (for @code{ld.mold}) are more @@ -15728,7 +15730,7 @@ Specify directory to be searched for source file. @table @asis -@item @code{-A[=`filename']} +@item @code{-A[=@emph{filename}]} Output ALI list (to standard output or to the named file). @end table @@ -15758,7 +15760,7 @@ Check only, no generation of binder output file. @table @asis -@item @code{-d`nn'[k|m]} +@item @code{-d@emph{nn}[k|m]} This switch can be used to change the default task stack size value to a specified size @code{nn}, which is expressed in bytes by default, or @@ -15779,7 +15781,7 @@ When they do not already have such a pragma. @table @asis -@item @code{-D`nn'[k|m]} +@item @code{-D@emph{nn}[k|m]} Set the default secondary stack size to @code{nn}. The suffix indicates whether the size is in bytes (no suffix), kilobytes (@code{k} suffix) or megabytes @@ -15855,7 +15857,7 @@ Currently the same as @code{-Ea}. @table @asis -@item @code{-f`elab-order'} +@item @code{-f@emph{elab-order}} Force elaboration order. For further details see @ref{113,,Elaboration Control} and @ref{f,,Elaboration Order Handling in GNAT}. @@ -15959,25 +15961,25 @@ Output chosen elaboration order. @geindex -L (gnatbind) -@item @code{-L`xxx'} +@item @code{-L@emph{xxx}} Bind the units for library building. In this case the @code{adainit} and @code{adafinal} procedures (@ref{7e,,Binding with Non-Ada Main Programs}) -are renamed to @code{@var{xxx}init} and -@code{@var{xxx}final}. +are renamed to @code{@emph{xxx}init} and +@code{@emph{xxx}final}. Implies -n. (@ref{2a,,GNAT and Libraries}, for more details.) @geindex -M (gnatbind) -@item @code{-M`xyz'} +@item @code{-M@emph{xyz}} Rename generated main program from main to xyz. This option is supported on cross environments only. @geindex -m (gnatbind) -@item @code{-m`n'} +@item @code{-m@emph{n}} Limit number of detected errors or warnings to @code{n}, where @code{n} is in the range 1..999999. The default value if no switch is @@ -15994,7 +15996,7 @@ sign is optional. Generate a binder file suitable for space-constrained applications. When active, binder-generated objects not required for program operation are no -longer generated. `Warning:' this option comes with the following +longer generated. @strong{Warning:} this option comes with the following limitations: @@ -16030,14 +16032,14 @@ Do not look for library files in the system default directory. @geindex --RTS (gnatbind) -@item @code{--RTS=`rts-path'} +@item @code{--RTS=@emph{rts-path}} Specifies the default location of the run-time library. Same meaning as the equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}). @geindex -o (gnatbind) -@item @code{-o `file'} +@item @code{-o @emph{file}} Name the output file @code{file} (default is @code{b~`xxx}.adb`). Note that if this option is used, then linking must be done manually, @@ -16045,7 +16047,7 @@ gnatlink cannot be used. @geindex -O (gnatbind) -@item @code{-O[=`filename']} +@item @code{-O[=@emph{filename}]} Output object list (to standard output or to the named file). @@ -16067,7 +16069,7 @@ Generate binder file suitable for CodePeer. @table @asis -@item @code{-Q`nnn'} +@item @code{-Q@emph{nnn}} Generate @code{nnn} additional default-sized secondary stacks. @@ -16079,8 +16081,8 @@ by rebinding the application. While the binder sizes this pool to match the number of such tasks defined in the application, the pool size may need to be increased with the @code{-Q} switch to accommodate foreign threads registered with the Light run-time. For -more information, please see the `The Primary and Secondary Stack' chapter in -the `GNAT User’s Guide Supplement for Cross Platforms'. +more information, please see the @emph{The Primary and Secondary Stack} chapter in +the @emph{GNAT User’s Guide Supplement for Cross Platforms}. @geindex -R (gnatbind) @@ -16103,7 +16105,7 @@ Require all source files to be present. @geindex -S (gnatbind) -@item @code{-S`xxx'} +@item @code{-S@emph{xxx}} Specifies the value to be used when detecting uninitialized scalar objects with pragma Initialize_Scalars. @@ -16157,8 +16159,8 @@ then a 32-bit scalar value will be set to the bit pattern @code{16#BFBFBFBF#}. In addition, you can specify @code{-Sev} to indicate that the value is to be set at run time. In this case, the program will look for an environment -variable of the form @code{GNAT_INIT_SCALARS=@var{yy}}, where @code{yy} is one -of @code{in/lo/hi/@var{xx}} with the same meanings as above. +variable of the form @code{GNAT_INIT_SCALARS=@emph{yy}}, where @code{yy} is one +of @code{in/lo/hi/@emph{xx}} with the same meanings as above. If no environment variable is found, or if it does not have a valid value, then the default is @code{in} (invalid values). @end table @@ -16186,7 +16188,7 @@ Tolerate time stamp and other consistency errors. @geindex -T (gnatbind) -@item @code{-T`n'} +@item @code{-T@emph{n}} Set the time slice value to @code{n} milliseconds. If the system supports the specification of a specific time slice value, then the indicated value @@ -16202,7 +16204,7 @@ scheduling policy to @code{FIFO_Within_Priorities}. @geindex -u (gnatbind) -@item @code{-u`n'} +@item @code{-u@emph{n}} Enable dynamic stack usage, with @code{n} results stored and displayed at program termination. A result is generated when a task @@ -16219,7 +16221,7 @@ Verbose mode. Write error messages, header, summary output to @geindex -V (gnatbind) -@item @code{-V`key'=`value'} +@item @code{-V@emph{key}=@emph{value}} Store the given association of @code{key} to @code{value} in the bind environment. Values stored this way can be retrieved at run time using @@ -16227,13 +16229,13 @@ Values stored this way can be retrieved at run time using @geindex -w (gnatbind) -@item @code{-w`x'} +@item @code{-w@emph{x}} Warning mode; @code{x} = s/e for suppress/treat as error. @geindex -Wx (gnatbind) -@item @code{-Wx`e'} +@item @code{-Wx@emph{e}} Override default wide character encoding for standard Text_IO files. @@ -16256,7 +16258,7 @@ at streaming 128-bit integer types with it. @geindex -Xnnn (gnatbind) -@item @code{-X`nnn'} +@item @code{-X@emph{nnn}} Set default exit status value, normally 0 for POSIX compliance. @@ -16315,7 +16317,7 @@ file is an error. @geindex -Wx (gnatbind) -@item @code{-Wx`e'} +@item @code{-Wx@emph{e}} Override default wide character encoding for standard Text_IO files. Normally the default wide character encoding method used for standard @@ -16374,14 +16376,14 @@ specified. This is relevant only when used with the @geindex -m (gnatbind) -@item @code{-m`n'} +@item @code{-m@emph{n}} Limits the number of error messages to @code{n}, a decimal integer in the range 1-999. The binder terminates immediately if this limit is reached. @geindex -M (gnatbind) -@item @code{-M`xxx'} +@item @code{-M@emph{xxx}} Renames the generated main program from @code{main} to @code{xxx}. This is useful in the case of some cross-building environments, where @@ -16464,7 +16466,7 @@ order. For further details see @ref{f,,Elaboration Order Handling in GNAT}. @table @asis -@item @code{-f`elab-order'} +@item @code{-f@emph{elab-order}} Force elaboration order. @@ -16599,7 +16601,7 @@ directory names for the run-time units depend on the system configuration. @geindex -o (gnatbind) -@item @code{-o `file'} +@item @code{-o @emph{file}} Set name of output file to @code{file} instead of the normal @code{b~`mainprog}.adb` default. Note that @code{file} denote the Ada @@ -16719,7 +16721,7 @@ is given, more than one ALI file may appear on the command line for @code{gnatbind}. The normal @code{closure} calculation is performed for each of the specified units. Calculating the closure means finding out the set of units involved by tracing -`with' references. The reason it is necessary to be able to +@emph{with} references. The reason it is necessary to be able to specify more than one ALI file is that a given program may invoke two or more quite separate groups of Ada units. @@ -16790,9 +16792,9 @@ char **gnat_argv; are declared in one of the GNAT library routines. These variables must be set from the actual @code{argc} and @code{argv} values passed to the -main program. With no `n' present, @code{gnatbind} +main program. With no @emph{n} present, @code{gnatbind} generates the C main program to automatically set these variables. -If the `n' switch is used, there is no automatic way to +If the @emph{n} switch is used, there is no automatic way to set these variables. If they are not set, the procedures in @code{Ada.Command_Line} will not be available, and any attempt to use them will raise @code{Constraint_Error}. If command line access is @@ -16874,9 +16876,9 @@ instead if you want to specify source paths only, and @code{-aO} if you want to specify library paths only. This means that for the binder -@code{-I`dir'} is equivalent to -@code{-aI`dir'} -@code{-aO``dir'}. +@code{-I@emph{dir}} is equivalent to +@code{-aI@emph{dir}} +@code{-aO`@emph{dir}}. The binder generates the bind file (a C language source file) in the current working directory. @@ -17127,7 +17129,7 @@ it compiles the binder file, and that the system linker run in verbose mode. @table @asis -@item @code{-o `exec-name'} +@item @code{-o @emph{exec-name}} @code{exec-name} specifies an alternate name for the generated executable program. If this switch is omitted, the executable has the same @@ -17140,7 +17142,7 @@ an executable called @code{try}. @table @asis -@item @code{-B`dir'} +@item @code{-B@emph{dir}} Load compiler executables (for example, @code{gnat1}, the Ada compiler) from @code{dir} instead of the default location. Only use this switch @@ -17166,7 +17168,7 @@ has the same name as the executable with extension “.map”. @table @asis -@item @code{-M=`mapfile'} +@item @code{-M=@emph{mapfile}} When linking an executable, create a map file. The name of the map file is @code{mapfile}. @@ -17177,7 +17179,7 @@ When linking an executable, create a map file. The name of the map file is @table @asis -@item @code{--GCC=`compiler_name'} +@item @code{--GCC=@emph{compiler_name}} Program used for compiling the binder file. The default is @code{gcc}. You need to use quotes around @code{compiler_name} if @@ -17204,7 +17206,7 @@ into account. Thus, @table @asis -@item @code{--LINK=`name'} +@item @code{--LINK=@emph{name}} @code{name} is the name of the linker to be invoked. This is especially useful in mixed language programs since languages such as C++ require @@ -17612,7 +17614,7 @@ Display copyright and version, then exit disregarding all other options. If @code{--version} was not used, display usage, then exit disregarding all other options. -@item @code{--subdirs=`subdir'} +@item @code{--subdirs=@emph{subdir}} Actual object directory of each project file is the subdirectory subdir of the object directory specified or defaulted in the project file. @@ -17641,7 +17643,7 @@ files, interface copy files, binder generated files and executable files. @table @asis -@item @code{-D `dir'} +@item @code{-D @emph{dir}} Indicate that ALI and object files should normally be found in directory @code{dir}. @end table @@ -17685,7 +17687,7 @@ that would have been deleted if this switch was not specified. @table @asis -@item @code{-P`project'} +@item @code{-P@emph{project}} Use project file @code{project}. Only one such switch can be used. When cleaning a project file, the files produced by the compilation of the @@ -17734,7 +17736,7 @@ Verbose mode. @table @asis -@item @code{-vP`x'} +@item @code{-vP@emph{x}} Indicates the verbosity of the parsing of GNAT project files. @ref{d1,,Switches Related to Project Files}. @@ -17745,7 +17747,7 @@ Indicates the verbosity of the parsing of GNAT project files. @table @asis -@item @code{-X`name'=`value'} +@item @code{-X@emph{name}=@emph{value}} Indicates that external variable @code{name} has the value @code{value}. The Project Manager will use this value for occurrences of @@ -17758,7 +17760,7 @@ See @ref{d1,,Switches Related to Project Files}. @table @asis -@item @code{-aO`dir'} +@item @code{-aO@emph{dir}} When searching for ALI and object files, look in directory @code{dir}. @end table @@ -17768,9 +17770,9 @@ When searching for ALI and object files, look in directory @code{dir}. @table @asis -@item @code{-I`dir'} +@item @code{-I@emph{dir}} -Equivalent to @code{-aO`dir'}. +Equivalent to @code{-aO@emph{dir}}. @end table @geindex -I- (gnatclean) @@ -17859,12 +17861,12 @@ qualifier which can be: @table @asis -@item `OK (unchanged)' +@item @emph{OK (unchanged)} The version of the source file used for the compilation of the specified unit corresponds exactly to the actual source file. -@item `MOK (slightly modified)' +@item @emph{MOK (slightly modified)} The version of the source file used for the compilation of the specified unit differs from the actual source file but not enough to @@ -17872,16 +17874,16 @@ require recompilation. If you use gnatmake with the option @code{-m} (minimal recompilation), a file marked MOK will not be recompiled. -@item `DIF (modified)' +@item @emph{DIF (modified)} No version of the source found on the path corresponds to the source used to build this object. -@item `??? (file not found)' +@item @emph{??? (file not found)} No source file was found for this unit. -@item `HID (hidden, unchanged version not first on PATH)' +@item @emph{HID (hidden, unchanged version not first on PATH)} The version of the source that corresponds exactly to the source used for compilation has been found on the path but it is hidden by another @@ -17982,7 +17984,7 @@ Only output information about compilation units. @table @asis -@item @code{-files=`file'} +@item @code{-files=@emph{file}} Take as arguments the files listed in text file @code{file}. Text file @code{file} may contain empty lines that are ignored. @@ -18001,7 +18003,7 @@ Several such switches may be specified simultaneously. @table @asis -@item @code{-aO`dir'}, @code{-aI`dir'}, @code{-I`dir'}, @code{-I-}, @code{-nostdinc} +@item @code{-aO@emph{dir}}, @code{-aI@emph{dir}}, @code{-I@emph{dir}}, @code{-I-}, @code{-nostdinc} Source path manipulation. Same meaning as the equivalent @code{gnatmake} flags (@ref{d0,,Switches for gnatmake}). @@ -18012,7 +18014,7 @@ flags (@ref{d0,,Switches for gnatmake}). @table @asis -@item @code{-aP`dir'} +@item @code{-aP@emph{dir}} Add @code{dir} at the beginning of the project search dir. @end table @@ -18022,7 +18024,7 @@ Add @code{dir} at the beginning of the project search dir. @table @asis -@item @code{--RTS=`rts-path'} +@item @code{--RTS=@emph{rts-path}} Specifies the default location of the runtime library. Same meaning as the equivalent @code{gnatmake} flag (@ref{d0,,Switches for gnatmake}). @@ -18044,29 +18046,29 @@ characteristics such as: @itemize * @item -`Preelaborable': The unit is preelaborable in the Ada sense. +@emph{Preelaborable}: The unit is preelaborable in the Ada sense. @item -`No_Elab_Code': No elaboration code has been produced by the compiler for this unit. +@emph{No_Elab_Code}: No elaboration code has been produced by the compiler for this unit. @item -`Pure': The unit is pure in the Ada sense. +@emph{Pure}: The unit is pure in the Ada sense. @item -`Elaborate_Body': The unit contains a pragma Elaborate_Body. +@emph{Elaborate_Body}: The unit contains a pragma Elaborate_Body. @item -`Remote_Types': The unit contains a pragma Remote_Types. +@emph{Remote_Types}: The unit contains a pragma Remote_Types. @item -`Shared_Passive': The unit contains a pragma Shared_Passive. +@emph{Shared_Passive}: The unit contains a pragma Shared_Passive. @item -`Predefined': This unit is part of the predefined environment and cannot be modified +@emph{Predefined}: This unit is part of the predefined environment and cannot be modified by the user. @item -`Remote_Call_Interface': The unit contains a pragma Remote_Call_Interface. +@emph{Remote_Call_Interface}: The unit contains a pragma Remote_Call_Interface. @end itemize @end table @@ -18345,7 +18347,7 @@ describes some of the additional commands that can be given to @code{GDB}. @code{GDB} contains a large repertoire of commands. See @cite{Debugging with GDB} for extensive documentation on the use of these commands, together with examples of their use. Furthermore, -the command `help' invoked from within GDB activates a simple help +the command @emph{help} invoked from within GDB activates a simple help facility which summarizes the available commands and their options. In this section we summarize a few of the most commonly used commands to give an idea of what @code{GDB} is about. You should create @@ -18360,9 +18362,9 @@ following section. @table @asis -@item @code{set args @var{arguments}} +@item @code{set args @emph{arguments}} -The `arguments' list above is a list of arguments to be passed to +The @emph{arguments} list above is a list of arguments to be passed to the program on a subsequent run command, just as though the arguments had been entered on a normal invocation of the program. The @code{set args} command is not needed if the program does not require arguments. @@ -18385,11 +18387,11 @@ restart. @table @asis -@item @code{breakpoint @var{location}} +@item @code{breakpoint @emph{location}} The breakpoint command sets a breakpoint, that is to say a point at which execution will halt and @code{GDB} will await further -commands. `location' is +commands. @emph{location} is either a line number within a file, given in the format @code{file:linenumber}, or it is the name of a subprogram. If you request that a breakpoint be set on a subprogram that is overloaded, a prompt will ask you to specify on which of @@ -18404,7 +18406,7 @@ printing the line of code before which the program is halted. @table @asis -@item @code{catch exception @var{name}} +@item @code{catch exception @emph{name}} This command causes the program execution to stop whenever exception @code{name} is raised. If @code{name} is omitted, then the execution is @@ -18415,7 +18417,7 @@ suspended when any exception is raised. @table @asis -@item @code{print @var{expression}} +@item @code{print @emph{expression}} This will print the value of the given expression. Most simple Ada expression formats are properly handled by @code{GDB}, so the expression @@ -18504,7 +18506,7 @@ examined to the frame of its callee (the reverse of the previous command), @table @asis -@item @code{frame @var{n}} +@item @code{frame @emph{n}} Inspect the frame with the given number. The value 0 denotes the frame of the current breakpoint, that is to say the top of the call stack. @@ -18644,7 +18646,7 @@ the elements in the desired format. @node Using the next Command in a Function,Stopping When Ada Exceptions Are Raised,Calling User-Defined Subprograms,Running and Debugging Ada Programs @anchor{gnat_ugn/gnat_and_program_execution id8}@anchor{15a}@anchor{gnat_ugn/gnat_and_program_execution using-the-next-command-in-a-function}@anchor{15b} -@subsection Using the `next' Command in a Function +@subsection Using the @emph{next} Command in a Function When you use the @code{next} command in a function, the current source @@ -18692,10 +18694,10 @@ raises any exception. @table @asis -@item @code{catch exception @var{name}} +@item @code{catch exception @emph{name}} Set a catchpoint that stops execution whenever (any task in the) program -raises the exception `name'. +raises the exception @emph{name}. @end table @item @@ -18712,11 +18714,11 @@ raises an exception for which there is no handler. @table @asis -@item @code{info exceptions}, @code{info exceptions @var{regexp}} +@item @code{info exceptions}, @code{info exceptions @emph{regexp}} The @code{info exceptions} command permits the user to examine all defined -exceptions within Ada programs. With a regular expression, `regexp', as -argument, prints out only those exceptions whose name matches `regexp'. +exceptions within Ada programs. With a regular expression, @emph{regexp}, as +argument, prints out only those exceptions whose name matches @emph{regexp}. @end table @end itemize @@ -18761,25 +18763,25 @@ to refer to tasks in the following commands. @itemize * @item -@code{break} `linespec' @code{task} `taskid', @code{break} `linespec' @code{task} `taskid' @code{if} … +@code{break} @emph{linespec} @code{task} @emph{taskid}, @code{break} @emph{linespec} @code{task} @emph{taskid} @code{if} … @quotation These commands are like the @code{break ... thread ...}. -`linespec' specifies source lines. +@emph{linespec} specifies source lines. -Use the qualifier @code{task @var{taskid}} with a breakpoint command +Use the qualifier @code{task @emph{taskid}} with a breakpoint command to specify that you only want @code{GDB} to stop the program when a -particular Ada task reaches this breakpoint. `taskid' is one of the +particular Ada task reaches this breakpoint. @emph{taskid} is one of the numeric task identifiers assigned by @code{GDB}, shown in the first column of the @code{info tasks} display. -If you do not specify @code{task @var{taskid}} when you set a -breakpoint, the breakpoint applies to `all' tasks of your +If you do not specify @code{task @emph{taskid}} when you set a +breakpoint, the breakpoint applies to @emph{all} tasks of your program. You can use the @code{task} qualifier on conditional breakpoints as -well; in this case, place @code{task @var{taskid}} before the +well; in this case, place @code{task @emph{taskid}} before the breakpoint condition (before the @code{if}). @end quotation @end itemize @@ -18790,11 +18792,11 @@ breakpoint condition (before the @code{if}). @itemize * @item -@code{task @var{taskno}} +@code{task @emph{taskno}} @quotation -This command allows switching to the task referred by `taskno'. In +This command allows switching to the task referred by @emph{taskno}. In particular, this allows browsing of the backtrace of the specified task. It is advisable to switch back to the original task before continuing execution otherwise the scheduling of the program may be @@ -18920,7 +18922,7 @@ It is also possible to use gdbserver to attach to an already running program, in which case the execution of that program is simply suspended until the connection between the debugger and gdbserver is established. -For more information on how to use gdbserver, see the `Using the gdbserver Program' +For more information on how to use gdbserver, see the @emph{Using the gdbserver Program} section in @cite{Debugging with GDB}. GNAT provides support for gdbserver on x86-linux, x86-windows and x86_64-linux. @@ -19107,7 +19109,7 @@ are replaced with run-time calls. Traceback is a mechanism to display the sequence of subprogram calls that leads to a specified execution point in a program. Often (but not always) the execution point is an instruction at which an exception has been raised. -This mechanism is also known as `stack unwinding' because it obtains +This mechanism is also known as @emph{stack unwinding} because it obtains its information by scanning the run-time stack and recovering the activation records of all active subprograms. Stack unwinding is one of the most important tools for program debugging. @@ -19834,7 +19836,7 @@ The following is the subset of those switches that is most relevant: @table @asis -@item @code{--demangle[=@var{style}]}, @code{--no-demangle} +@item @code{--demangle[=@emph{style}]}, @code{--no-demangle} These options control whether symbol names should be demangled when printing output. The default is to demangle C++ symbols. The @@ -19850,9 +19852,9 @@ compiler, in particular Ada symbols generated by GNAT can be demangled using @table @asis -@item @code{-e @var{function_name}} +@item @code{-e @emph{function_name}} -The @code{-e @var{function}} option tells @code{gprof} not to print +The @code{-e @emph{function}} option tells @code{gprof} not to print information about the function @code{function_name} (and its children…) in the call graph. The function will still be listed as a child of any functions that call it, but its index number will be @@ -19866,9 +19868,9 @@ option. @table @asis -@item @code{-E @var{function_name}} +@item @code{-E @emph{function_name}} -The @code{-E @var{function}} option works like the @code{-e} option, but +The @code{-E @emph{function}} option works like the @code{-e} option, but execution time spent in the function (and children who were not called from anywhere else), will not be used to compute the percentages-of-time for the call graph. More than one @code{-E} option may be given; only one @@ -19880,9 +19882,9 @@ the call graph. More than one @code{-E} option may be given; only one @table @asis -@item @code{-f @var{function_name}} +@item @code{-f @emph{function_name}} -The @code{-f @var{function}} option causes @code{gprof} to limit the +The @code{-f @emph{function}} option causes @code{gprof} to limit the call graph to the function @code{function_name} and its children (and their children…). More than one @code{-f} option may be given; only one @code{function_name} may be indicated with each @code{-f} @@ -19894,9 +19896,9 @@ option. @table @asis -@item @code{-F @var{function_name}} +@item @code{-F @emph{function_name}} -The @code{-F @var{function}} option works like the @code{-f} option, but +The @code{-F @emph{function}} option works like the @code{-f} option, but only time spent in the function and its children (and their children…) will be used to determine total-time and percentages-of-time for the call graph. More than one @code{-F} option @@ -20195,7 +20197,7 @@ You should experiment to find the best level for your application. Since the precise set of optimizations done at each level will vary from release to release (and sometime from target to target), it is best to think of the optimization settings in general terms. -See the `Options That Control Optimization' section in +See the @emph{Options That Control Optimization} section in @cite{Using the GNU Compiler Collection (GCC)} for details about the @code{-O} settings and a number of @code{-f} options that @@ -20204,7 +20206,7 @@ individually enable or disable specific optimizations. Unlike some other compilation systems, @code{gcc} has been tested extensively at all optimization levels. There are some bugs which appear only with optimization turned on, but there have also been -bugs which show up only in `unoptimized' code. Selecting a lower +bugs which show up only in @emph{unoptimized} code. Selecting a lower level of optimization does not improve the reliability of the code generator, which in practice is highly reliable at all optimization levels. @@ -20253,7 +20255,7 @@ These are the most common cases: @itemize * @item -`The ‘hopping Program Counter’:' Repeated @code{step} or @code{next} +@emph{The ‘hopping Program Counter’:} Repeated @code{step} or @code{next} commands show the PC bouncing back and forth in the code. This may result from any of the following optimizations: @@ -20262,16 +20264,16 @@ the following optimizations: @itemize - @item -`Common subexpression elimination:' using a single instance of code for a +@emph{Common subexpression elimination:} using a single instance of code for a quantity that the source computes several times. As a result you may not be able to stop on what looks like a statement. @item -`Invariant code motion:' moving an expression that does not change within a +@emph{Invariant code motion:} moving an expression that does not change within a loop, to the beginning of the loop. @item -`Instruction scheduling:' moving instructions so as to +@emph{Instruction scheduling:} moving instructions so as to overlap loads and stores (typically) with other code, or in general to move computations of values closer to their uses. Often this causes you to pass an assignment statement without the assignment @@ -20282,16 +20284,16 @@ expected side-effects. @end itemize @item -`The ‘big leap’:' More commonly known as `cross-jumping', in which +@emph{The ‘big leap’:} More commonly known as @emph{cross-jumping}, in which two identical pieces of code are merged and the program counter suddenly jumps to a statement that is not supposed to be executed, simply because it (and the code following) translates to the same thing as the code -that `was' supposed to be executed. This effect is typically seen in +that @emph{was} supposed to be executed. This effect is typically seen in sequences that end in a jump, such as a @code{goto}, a @code{return}, or a @code{break} in a C @code{switch} statement. @item -`The ‘roving variable’:' The symptom is an unexpected value in a variable. +@emph{The ‘roving variable’:} The symptom is an unexpected value in a variable. There are various reasons for this effect: @@ -20327,7 +20329,7 @@ calling subprogram to verify that the value observed is explainable from other values (one must apply the procedure recursively to those other values); or re-running the code and stopping a little earlier (perhaps before the call) and stepping to better see how the variable obtained -the value in question; or continuing to step `from' the point of the +the value in question; or continuing to step @emph{from} the point of the strange value to see if code motion had simply moved the variable’s assignments later. @end itemize @@ -20372,7 +20374,7 @@ within it; the subprogram is small and optimization level @code{-O2} is specified; optimization level @code{-O3} is specified. @end itemize -Calls to subprograms in `with'ed units are normally not inlined. +Calls to subprograms in @emph{with}ed units are normally not inlined. To achieve actual inlining (that is, replacement of the call by the code in the body of the subprogram), the following conditions must all be true: @@ -20694,7 +20696,7 @@ to work. Examples of switches in this category are @code{-funroll-loops} and the various target-specific @code{-m} options (in particular, it has been observed that @code{-march=xxx} can significantly improve performance on appropriate machines). For full details of these switches, see -the `Submodel Options' section in the `Hardware Models and Configurations' +the @emph{Submodel Options} section in the @emph{Hardware Models and Configurations} chapter of @cite{Using the GNU Compiler Collection (GCC)}. @node Optimization and Strict Aliasing,Aliased Variables and Optimization,Other Optimization Switches,Performance Considerations @@ -21137,7 +21139,7 @@ If @code{Text_IO} must be used, note that by default output to the standard output and standard error files is unbuffered (this provides better behavior when output statements are used for debugging, or if the progress of a program is observed by tracking the output, e.g. by -using the Unix `tail -f' command to watch redirected output). +using the Unix @emph{tail -f} command to watch redirected output). If you are generating large volumes of output with @code{Text_IO} and performance is an important factor, use a designated file instead @@ -21448,7 +21450,7 @@ The three modes are: @itemize * @item -`Use base type for intermediate operations' (@code{STRICT}) +@emph{Use base type for intermediate operations} (@code{STRICT}) In this mode, all intermediate results for predefined arithmetic operators are computed using the base type, and the result must @@ -21458,7 +21460,7 @@ enabled) or the execution is erroneous (if overflow checks are suppressed). This is the normal default mode. @item -`Most intermediate overflows avoided' (@code{MINIMIZED}) +@emph{Most intermediate overflows avoided} (@code{MINIMIZED}) In this mode, the compiler attempts to avoid intermediate overflows by using a larger integer type, typically @code{Long_Long_Integer}, @@ -21491,12 +21493,12 @@ out of the range of @code{Long_Long_Integer} even though the final result is in range and the precondition is True (from a mathematical point of view). In such a case, operating in this mode, an overflow occurs for the intermediate computation (which is why this mode -says `most' intermediate overflows are avoided). In this case, +says @emph{most} intermediate overflows are avoided). In this case, an exception is raised if overflow checks are enabled, and the execution is erroneous if overflow checks are suppressed. @item -`All intermediate overflows avoided' (@code{ELIMINATED}) +@emph{All intermediate overflows avoided} (@code{ELIMINATED}) In this mode, the compiler avoids all intermediate overflows by using arbitrary precision arithmetic as required. In this @@ -21761,8 +21763,8 @@ version 7.0.1 of GNAT onwards. The GNAT-specific aspect @code{Dimension_System} allows you to define a system of units; the aspect @code{Dimension} then allows the user to declare dimensioned quantities within a given system. -(These aspects are described in the `Implementation Defined Aspects' -chapter of the `GNAT Reference Manual'). +(These aspects are described in the @emph{Implementation Defined Aspects} +chapter of the @emph{GNAT Reference Manual}). The major advantage of this model is that it does not require the declaration of multiple operators for all possible combinations of types: it is only necessary @@ -21959,9 +21961,9 @@ Final velocity: 98.10 m.s**(-1) @geindex Dimensioned subtype @end quotation -The type @code{Mks_Type} is said to be a `dimensionable type' since it has a +The type @code{Mks_Type} is said to be a @emph{dimensionable type} since it has a @code{Dimension_System} aspect, and the subtypes @code{Length}, @code{Mass}, etc., -are said to be `dimensioned subtypes' since each one has a @code{Dimension} +are said to be @emph{dimensioned subtypes} since each one has a @code{Dimension} aspect. @quotation @@ -21975,8 +21977,8 @@ aspect. The @code{Dimension} aspect of a dimensioned subtype @code{S} defines a mapping from the base type’s Unit_Names to integer (or, more generally, rational) -values. This mapping is the `dimension vector' (also referred to as the -`dimensionality') for that subtype, denoted by @code{DV(S)}, and thus for each +values. This mapping is the @emph{dimension vector} (also referred to as the +@emph{dimensionality}) for that subtype, denoted by @code{DV(S)}, and thus for each object of that subtype. Intuitively, the value specified for each @code{Unit_Name} is the exponent associated with that unit; a zero value means that the unit is not used. For example: @@ -22002,34 +22004,34 @@ dimension vectors of its components, with compile-time dimensionality checks that help prevent mismatches such as using an @code{Acceleration} where a @code{Length} is required. -The dimension vector of the result of an arithmetic expression `expr', or -@code{DV(@var{expr})}, is defined as follows, assuming conventional +The dimension vector of the result of an arithmetic expression @emph{expr}, or +@code{DV(@emph{expr})}, is defined as follows, assuming conventional mathematical definitions for the vector operations that are used: @itemize * @item -If `expr' is of the type `universal_real', or is not of a dimensioned subtype, -then `expr' is dimensionless; @code{DV(@var{expr})} is the empty vector. +If @emph{expr} is of the type @emph{universal_real}, or is not of a dimensioned subtype, +then @emph{expr} is dimensionless; @code{DV(@emph{expr})} is the empty vector. @item -@code{DV(@var{op expr})}, where `op' is a unary operator, is @code{DV(@var{expr})} +@code{DV(@emph{op expr})}, where @emph{op} is a unary operator, is @code{DV(@emph{expr})} @item -@code{DV(@var{expr1 op expr2})} where `op' is “+” or “-” is @code{DV(@var{expr1})} -provided that @code{DV(@var{expr1})} = @code{DV(@var{expr2})}. +@code{DV(@emph{expr1 op expr2})} where @emph{op} is “+” or “-” is @code{DV(@emph{expr1})} +provided that @code{DV(@emph{expr1})} = @code{DV(@emph{expr2})}. If this condition is not met then the construct is illegal. @item -@code{DV(@var{expr1} * @var{expr2})} is @code{DV(@var{expr1})} + @code{DV(@var{expr2})}, -and @code{DV(@var{expr1} / @var{expr2})} = @code{DV(@var{expr1})} - @code{DV(@var{expr2})}. -In this context if one of the `expr's is dimensionless then its empty +@code{DV(@emph{expr1} * @emph{expr2})} is @code{DV(@emph{expr1})} + @code{DV(@emph{expr2})}, +and @code{DV(@emph{expr1} / @emph{expr2})} = @code{DV(@emph{expr1})} - @code{DV(@emph{expr2})}. +In this context if one of the @emph{expr}s is dimensionless then its empty dimension vector is treated as @code{(others => 0)}. @item -@code{DV(@var{expr} ** @var{power})} is `power' * @code{DV(@var{expr})}, -provided that `power' is a static rational value. If this condition is not +@code{DV(@emph{expr} ** @emph{power})} is @emph{power} * @code{DV(@emph{expr})}, +provided that @emph{power} is a static rational value. If this condition is not met then the construct is illegal. @end itemize @@ -22069,17 +22071,17 @@ acc > 10.0 is accepted with a warning. Analogously a conditional expression requires the same dimension vector for each branch (with no exception for literals). -The dimension vector of a type conversion @code{T(@var{expr})} is defined +The dimension vector of a type conversion @code{T(@emph{expr})} is defined as follows, based on the nature of @code{T}: @itemize * @item -If @code{T} is a dimensioned subtype then @code{DV(T(@var{expr}))} is @code{DV(T)} -provided that either `expr' is dimensionless or -@code{DV(T)} = @code{DV(@var{expr})}. The conversion is illegal -if `expr' is dimensioned and @code{DV(@var{expr})} /= @code{DV(T)}. +If @code{T} is a dimensioned subtype then @code{DV(T(@emph{expr}))} is @code{DV(T)} +provided that either @emph{expr} is dimensionless or +@code{DV(T)} = @code{DV(@emph{expr})}. The conversion is illegal +if @emph{expr} is dimensioned and @code{DV(@emph{expr})} /= @code{DV(T)}. Note that vector equality does not require that the corresponding Unit_Names be the same. @@ -22091,9 +22093,9 @@ a length in inches (with a suitable conversion factor) but cannot be converted, for example, to a mass in pounds. @item -If @code{T} is the base type for `expr' (and the dimensionless root type of -the dimension system), then @code{DV(T(@var{expr}))} is @code{DV(expr)}. -Thus, if `expr' is of a dimensioned subtype of @code{T}, the conversion may +If @code{T} is the base type for @emph{expr} (and the dimensionless root type of +the dimension system), then @code{DV(T(@emph{expr}))} is @code{DV(expr)}. +Thus, if @emph{expr} is of a dimensioned subtype of @code{T}, the conversion may be regarded as a “view conversion” that preserves dimensionality. This rule makes it possible to write generic code that can be instantiated @@ -22105,13 +22107,13 @@ dimensionality. @item Otherwise (i.e., @code{T} is neither a dimensioned subtype nor a dimensionable -base type), @code{DV(T(@var{expr}))} is the empty vector. Thus a dimensioned +base type), @code{DV(T(@emph{expr}))} is the empty vector. Thus a dimensioned value can be explicitly converted to a non-dimensioned subtype, which of course then escapes dimensionality analysis. @end itemize -The dimension vector for a type qualification @code{T'(@var{expr})} is the same -as for the type conversion @code{T(@var{expr})}. +The dimension vector for a type qualification @code{T'(@emph{expr})} is the same +as for the type conversion @code{T(@emph{expr})}. An assignment statement @@ -22301,16 +22303,16 @@ where: @itemize * @item -`Index' is a number associated with each task. +@emph{Index} is a number associated with each task. @item -`Task Name' is the name of the task analyzed. +@emph{Task Name} is the name of the task analyzed. @item -`Stack Size' is the maximum size for the stack. +@emph{Stack Size} is the maximum size for the stack. @item -`Stack Usage' is the measure done by the stack analyzer. +@emph{Stack Usage} is the measure done by the stack analyzer. In order to prevent overflow, the stack is not entirely analyzed, and it’s not possible to know exactly how much has actually been used. @@ -22641,7 +22643,7 @@ For exception handling, either or both of two models are supplied: @itemize * @item -`Zero-Cost Exceptions' (“ZCX”), +@strong{Zero-Cost Exceptions} (“ZCX”), which uses binder-generated tables that are interrogated at run time to locate a handler. @@ -22650,7 +22652,7 @@ are interrogated at run time to locate a handler. @geindex SJLJ (setjmp/longjmp Exception Model) @item -`setjmp / longjmp' (‘SJLJ’), +@strong{setjmp / longjmp} (‘SJLJ’), which uses dynamically-set data to establish the set of handlers @end itemize @@ -22796,7 +22798,7 @@ contain a complete source and binary subdirectory. The detailed description below explains the differences between the different libraries in terms of their thread support. -The default run-time library (when GNAT is installed) is `rts-native'. +The default run-time library (when GNAT is installed) is @emph{rts-native}. This default run-time is selected by the means of soft links. For example on x86-linux: @@ -22840,7 +22842,7 @@ ADAINCLUDE ADALIB rts-native rts-sjlj (Upper-case names and dotted/dashed arrows represent soft links) @end example -If the `rts-sjlj' library is to be selected on a permanent basis, +If the @emph{rts-sjlj} library is to be selected on a permanent basis, these soft links can be modified with the following commands: @quotation @@ -23011,11 +23013,11 @@ Independent. If you are not interested in building PIE binaries, you can simply turn this feature off by first compiling your code with @code{-fno-pie} and then by linking with @code{-no-pie} (note the subtle but important -difference in the names of the options – the linker option does `not' +difference in the names of the options – the linker option does @strong{not} have an @cite{f} after the dash!). When using gprbuild, this is -achieved by updating the `Required_Switches' attribute in package @cite{Compiler} -and, depending on your type of project, either attribute `Switches' -or attribute `Library_Options' in package @cite{Linker}. +achieved by updating the @emph{Required_Switches} attribute in package @cite{Compiler} +and, depending on your type of project, either attribute @emph{Switches} +or attribute @emph{Library_Options} in package @cite{Linker}. On the other hand, if you would like to build PIE binaries and you are getting the error above, a quick and easy workaround to allow linking @@ -23545,12 +23547,12 @@ on the stack by the caller from right to left. The callee (and not the caller) is in charge of cleaning the stack on routine exit. In addition, the name of a routine with @code{Stdcall} calling convention is mangled by adding a leading underscore (as for the @code{C} calling convention) and a -trailing @code{@@@var{nn}}, where @code{nn} is the overall size (in +trailing @code{@@@emph{nn}}, where @code{nn} is the overall size (in bytes) of the parameters passed to the routine. The name to use on the Ada side when importing a C routine with a @code{Stdcall} calling convention is the name of the C routine. The leading -underscore and trailing @code{@@@var{nn}} are added automatically by +underscore and trailing @code{@@@emph{nn}} are added automatically by the compiler. For instance the Win32 function: @quotation @@ -23597,10 +23599,10 @@ pragma Import (Stdcall, Get_Val, Link_Name => "retrieve_val"); then the imported routine is @code{retrieve_val}, that is, there is no decoration at all. No leading underscore and no Stdcall suffix -@code{@@@var{nn}}. +@code{@@@emph{nn}}. This is especially important as in some special cases a DLL’s entry -point name lacks a trailing @code{@@@var{nn}} while the exported +point name lacks a trailing @code{@@@emph{nn}} while the exported name generated for a call has it. It is also possible to import variables defined in a DLL by using an @@ -23901,16 +23903,16 @@ EXPORTS @table @asis -@item `LIBRARY name' +@item @emph{LIBRARY name} This section, which is optional, gives the name of the DLL. -@item `DESCRIPTION string' +@item @emph{DESCRIPTION string} This section, which is optional, gives a description string that will be embedded in the import library. -@item `EXPORTS' +@item @emph{EXPORTS} This section gives the list of exported symbols (procedures, functions or variables). For instance in the case of @code{API.dll} the @code{EXPORTS} @@ -23923,7 +23925,7 @@ EXPORTS @end example @end table -Note that you must specify the correct suffix (@code{@@@var{nn}}) +Note that you must specify the correct suffix (@code{@@@emph{nn}}) (see @ref{1d6,,Windows Calling Conventions}) for a Stdcall calling convention function in the exported symbols list. @@ -23944,11 +23946,11 @@ $ dlltool API.dll -z API.def --export-all-symbols @end example Note that if some routines in the DLL have the @code{Stdcall} convention -(@ref{1d6,,Windows Calling Conventions}) with stripped @code{@@@var{nn}} +(@ref{1d6,,Windows Calling Conventions}) with stripped @code{@@@emph{nn}} suffix then you’ll have to edit @code{api.def} to add it, and specify @code{-k} to @code{gnatdll} when creating the import library. -Here are some hints to find the right @code{@@@var{nn}} suffix. +Here are some hints to find the right @code{@@@emph{nn}} suffix. @itemize - @@ -24030,8 +24032,8 @@ See the Microsoft documentation for further details about the usage of @geindex building There is nothing specific to Windows in the build process. -See the `Library Projects' section in the `GNAT Project Manager' -chapter of the `GPRbuild User’s Guide'. +See the @emph{Library Projects} section in the @emph{GNAT Project Manager} +chapter of the @emph{GPRbuild User’s Guide}. Due to a system limitation, it is not possible under Windows to create threads when inside the @code{DllMain} routine which is used for auto-initialization @@ -24166,8 +24168,8 @@ Note that a relocatable DLL stripped using the @code{strip} binutils tool will not be relocatable anymore. To build a DLL without debug information pass @code{-largs -s} to @code{gnatdll}. This restriction does not apply to a DLL built using a Library Project. -See the `Library Projects' section in the `GNAT Project Manager' -chapter of the `GPRbuild User’s Guide'. +See the @emph{Library Projects} section in the @emph{GNAT Project Manager} +chapter of the @emph{GPRbuild User’s Guide}. @c Limitations_When_Using_Ada_DLLs_from Ada: @@ -24482,7 +24484,7 @@ You may specify any of the following switches to @code{gnatdll}: @table @asis -@item @code{-a[`address']} +@item @code{-a[@emph{address}]} Build a non-relocatable DLL at @code{address}. If @code{address} is not specified the default address @code{0x11000000} will be used. By default, @@ -24491,20 +24493,20 @@ advise the reader to build relocatable DLL. @geindex -b (gnatdll) -@item @code{-b `address'} +@item @code{-b @emph{address}} Set the relocatable DLL base address. By default the address is @code{0x11000000}. @geindex -bargs (gnatdll) -@item @code{-bargs `opts'} +@item @code{-bargs @emph{opts}} Binder options. Pass @code{opts} to the binder. @geindex -d (gnatdll) -@item @code{-d `dllfile'} +@item @code{-d @emph{dllfile}} @code{dllfile} is the name of the DLL. This switch must be present for @code{gnatdll} to do anything. The name of the generated import library is @@ -24518,7 +24520,7 @@ file used is @code{xyz.def}. @geindex -e (gnatdll) -@item @code{-e `deffile'} +@item @code{-e @emph{deffile}} @code{deffile} is the name of the definition file. @@ -24540,7 +24542,7 @@ Help mode. Displays @code{gnatdll} switch usage information. @geindex -I (gnatdll) -@item @code{-I`dir'} +@item @code{-I@emph{dir}} Direct @code{gnatdll} to search the @code{dir} directory for source and object files needed to build the DLL. @@ -24550,16 +24552,16 @@ object files needed to build the DLL. @item @code{-k} -Removes the @code{@@@var{nn}} suffix from the import library’s exported +Removes the @code{@@@emph{nn}} suffix from the import library’s exported names, but keeps them for the link names. You must specify this option if you want to use a @code{Stdcall} function in a DLL for which -the @code{@@@var{nn}} suffix has been removed. This is the case for most +the @code{@@@emph{nn}} suffix has been removed. This is the case for most of the Windows NT DLL for example. This option has no effect when @code{-n} option is specified. @geindex -l (gnatdll) -@item @code{-l `file'} +@item @code{-l @emph{file}} The list of ALI and object files used to build the DLL are listed in @code{file}, instead of being given in the command line. Each line in @@ -24585,7 +24587,7 @@ Verbose mode. Display extra information. @geindex -largs (gnatdll) -@item @code{-largs `opts'} +@item @code{-largs @emph{opts}} Linker options. Pass @code{opts} to the linker. @end table @@ -24719,7 +24721,7 @@ $ dlltool [`switches`] @table @asis -@item @code{--base-file `basefile'} +@item @code{--base-file @emph{basefile}} Read the base file @code{basefile} generated by the linker. This switch is used to create a relocatable DLL. @@ -24730,7 +24732,7 @@ is used to create a relocatable DLL. @table @asis -@item @code{--def `deffile'} +@item @code{--def @emph{deffile}} Read the definition file. @end table @@ -24740,7 +24742,7 @@ Read the definition file. @table @asis -@item @code{--dllname `name'} +@item @code{--dllname @emph{name}} Gives the name of the DLL. This switch is used to embed the name of the DLL in the static import library generated by @code{dlltool} with switch @@ -24754,7 +24756,7 @@ DLL in the static import library generated by @code{dlltool} with switch @item @code{-k} -Kill @code{@@@var{nn}} from exported names +Kill @code{@@@emph{nn}} from exported names (@ref{1d6,,Windows Calling Conventions} for a discussion about @code{Stdcall}-style symbols). @end table @@ -24774,7 +24776,7 @@ Prints the @code{dlltool} switches with a concise description. @table @asis -@item @code{--output-exp `exportfile'} +@item @code{--output-exp @emph{exportfile}} Generate an export file @code{exportfile}. The export file contains the export table (list of symbols in the DLL) and is used to create the DLL. @@ -24785,7 +24787,7 @@ export table (list of symbols in the DLL) and is used to create the DLL. @table @asis -@item @code{--output-lib `libfile'} +@item @code{--output-lib @emph{libfile}} Generate a static import library @code{libfile}. @end table @@ -24805,7 +24807,7 @@ Verbose mode. @table @asis -@item @code{--as `assembler-name'} +@item @code{--as @emph{assembler-name}} Use @code{assembler-name} as the assembler. The default is @code{as}. @end table @@ -25280,7 +25282,7 @@ $ main @end example @item -Use the Windows `Task Manager' to find the process ID. Let’s say +Use the Windows @emph{Task Manager} to find the process ID. Let’s say that the process PID for @code{main.exe} is 208. @item @@ -25332,7 +25334,7 @@ approach to debug a program as described in It is possible to specify the program stack size at link time. On modern versions of Windows, starting with XP, this is mostly useful to set the size of the main stack (environment task). The other task stacks are set with pragma -Storage_Size or with the `gnatbind -d' command. +Storage_Size or with the @emph{gnatbind -d} command. Since older versions of Windows (2000, NT4, etc.) do not allow setting the reserve size of individual tasks, the link-time stack size applies to all @@ -25581,7 +25583,7 @@ in the Unix group @code{_developer}. @geindex Binder output (example) This Appendix displays the source code for the output file -generated by `gnatbind' for a simple ‘Hello World’ program. +generated by @emph{gnatbind} for a simple ‘Hello World’ program. Comments have been added for clarification purposes. @example @@ -26360,13 +26362,13 @@ GNAT, either automatically or with explicit programming features. @section Elaboration Code -Ada defines the term `execution' as the process by which a construct achieves -its run-time effect. This process is also referred to as `elaboration' for -declarations and `evaluation' for expressions. +Ada defines the term @emph{execution} as the process by which a construct achieves +its run-time effect. This process is also referred to as @strong{elaboration} for +declarations and @emph{evaluation} for expressions. The execution model in Ada allows for certain sections of an Ada program to be executed prior to execution of the program itself, primarily with the intent of -initializing data. These sections are referred to as `elaboration code'. +initializing data. These sections are referred to as @strong{elaboration code}. Elaboration code is executed as follows: @@ -26383,7 +26385,7 @@ partition. @item The environment task executes all elaboration code (if available) for all units within that partition. This code is said to be executed at -`elaboration time'. +@strong{elaboration time}. @item The environment task executes the Ada program (if available) for that @@ -26396,16 +26398,16 @@ In addition to the Ada terminology, this appendix defines the following terms: @itemize * @item -`Invocation' +@emph{Invocation} The act of calling a subprogram, instantiating a generic, or activating a task. @item -`Scenario' +@emph{Scenario} A construct that is elaborated or invoked by elaboration code is referred to -as an `elaboration scenario' or simply a `scenario'. GNAT recognizes the +as an @emph{elaboration scenario} or simply a @strong{scenario}. GNAT recognizes the following scenarios: @@ -26425,10 +26427,10 @@ Instantiations of generic templates @end itemize @item -`Target' +@emph{Target} -A construct elaborated by a scenario is referred to as `elaboration target' -or simply `target'. GNAT recognizes the following targets: +A construct elaborated by a scenario is referred to as @emph{elaboration target} +or simply @strong{target}. GNAT recognizes the following targets: @itemize - @@ -26456,7 +26458,7 @@ Elaboration code may appear in two distinct contexts: @itemize * @item -`Library level' +@emph{Library level} A scenario appears at the library level when it is encapsulated by a package [body] compilation unit, ignoring any other package [body] declarations in @@ -26480,7 +26482,7 @@ given above. As a result, the call to @code{Server.Func} will be invoked when the spec of unit @code{Client} is elaborated. @item -`Package body statements' +@emph{Package body statements} A scenario appears within the statement sequence of a package body when it is bounded by the region starting from the @code{begin} keyword of the package body @@ -26509,7 +26511,7 @@ elaborated. The sequence by which the elaboration code of all units within a partition is -executed is referred to as `elaboration order'. +executed is referred to as @strong{elaboration order}. Within a single unit, elaboration code is executed in sequential order. @@ -26573,7 +26575,7 @@ factors: @itemize * @item -`with'ed units +@emph{with}ed units @item parent units @@ -26626,7 +26628,7 @@ procedure Main is begin null; end Main; @end quotation The following elaboration order exhibits a fundamental problem referred to as -`access-before-elaboration' or simply `ABE'. +@emph{access-before-elaboration} or simply @strong{ABE}. @quotation @@ -26666,7 +26668,7 @@ body of Main Ada states that a total elaboration order must exist, but it does not define what this order is. A compiler is thus tasked with choosing a suitable -elaboration order which satisfies the dependencies imposed by `with' clauses, +elaboration order which satisfies the dependencies imposed by @emph{with} clauses, unit categorization, elaboration-control pragmas, and invocations performed in elaboration code. Ideally an order that avoids ABE problems should be chosen, however a compiler may not always find such an order due to complications with @@ -26684,15 +26686,15 @@ provides three lines of defense: @itemize * @item -`Static semantics' +@emph{Static semantics} Static semantic rules restrict the possible choice of elaboration order. For -instance, if unit Client `with's unit Server, then the spec of Server is +instance, if unit Client @emph{with}s unit Server, then the spec of Server is always elaborated prior to Client. The same principle applies to child units - the spec of a parent unit is always elaborated prior to the child unit. @item -`Dynamic semantics' +@emph{Dynamic semantics} Dynamic checks are performed at run time, to ensure that a target is elaborated prior to a scenario that invokes it, thus avoiding ABE problems. @@ -26703,19 +26705,19 @@ restrictions apply: @itemize - @item -`Restrictions on calls' +@emph{Restrictions on calls} An entry, operator, or subprogram can be called from elaboration code only when the corresponding body has been elaborated. @item -`Restrictions on instantiations' +@emph{Restrictions on instantiations} A generic unit can be instantiated by elaboration code only when the corresponding body has been elaborated. @item -`Restrictions on task activation' +@emph{Restrictions on task activation} A task can be activated by elaboration code only when the body of the associated task type has been elaborated. @@ -26723,11 +26725,11 @@ associated task type has been elaborated. The restrictions above can be summarized by the following rule: -`If a target has a body, then this body must be elaborated prior to the -scenario that invokes the target.' +@emph{If a target has a body, then this body must be elaborated prior to the +scenario that invokes the target.} @item -`Elaboration control' +@emph{Elaboration control} Pragmas are provided for the programmer to specify the desired elaboration order. @@ -26745,7 +26747,7 @@ the desired elaboration order and avoiding ABE problems altogether. @itemize * @item -`Packages without a body' +@emph{Packages without a body} A library package which does not require a completing body does not suffer from ABE problems. @@ -26772,7 +26774,7 @@ any ABE problems. @itemize * @item -`pragma Pure' +@emph{pragma Pure} Pragma @code{Pure} places sufficient restrictions on a unit to guarantee that no scenario within the unit can result in an ABE problem. @@ -26784,7 +26786,7 @@ scenario within the unit can result in an ABE problem. @itemize * @item -`pragma Preelaborate' +@emph{pragma Preelaborate} Pragma @code{Preelaborate} is slightly less restrictive than pragma @code{Pure}, but still strong enough to prevent ABE problems within a unit. @@ -26796,7 +26798,7 @@ but still strong enough to prevent ABE problems within a unit. @itemize * @item -`pragma Elaborate_Body' +@emph{pragma Elaborate_Body} Pragma @code{Elaborate_Body} requires that the body of a unit is elaborated immediately after its spec. This restriction guarantees that no client @@ -26837,7 +26839,7 @@ spec of Client @end example because the spec of @code{Server} must be elaborated prior to @code{Client} by -virtue of the `with' clause, and in addition the body of @code{Server} must be +virtue of the @emph{with} clause, and in addition the body of @code{Server} must be elaborated immediately after the spec of @code{Server}. Removing pragma @code{Elaborate_Body} could result in the following incorrect @@ -26868,10 +26870,10 @@ depend on. @itemize * @item -`pragma Elaborate (Unit)' +@emph{pragma Elaborate (Unit)} Pragma @code{Elaborate} can be placed in the context clauses of a unit, after a -`with' clause. It guarantees that both the spec and body of its argument will +@emph{with} clause. It guarantees that both the spec and body of its argument will be elaborated prior to the unit with the pragma. Note that other unrelated units may be elaborated in between the spec and the body. @@ -26926,12 +26928,12 @@ has not been elaborated yet. @itemize * @item -`pragma Elaborate_All (Unit)' +@emph{pragma Elaborate_All (Unit)} Pragma @code{Elaborate_All} is placed in the context clauses of a unit, after -a `with' clause. It guarantees that both the spec and body of its argument +a @emph{with} clause. It guarantees that both the spec and body of its argument will be elaborated prior to the unit with the pragma, as well as all units -`with'ed by the spec and body of the argument, recursively. Note that other +@emph{with}ed by the spec and body of the argument, recursively. Note that other unrelated units may be elaborated in between the spec and the body. @example @@ -27017,10 +27019,10 @@ elaborated yet. All pragmas shown above can be summarized by the following rule: -`If a client unit elaborates a server target directly or indirectly, then if +@emph{If a client unit elaborates a server target directly or indirectly, then if the server unit requires a body and does not have pragma Pure, Preelaborate, or Elaborate_Body, then the client unit should have pragma Elaborate or -Elaborate_All for the server unit.' +Elaborate_All for the server unit.} If the rule outlined above is not followed, then a program may fall in one of the following states: @@ -27029,19 +27031,19 @@ the following states: @itemize * @item -`No elaboration order exists' +@emph{No elaboration order exists} In this case a compiler must diagnose the situation, and refuse to build an executable program. @item -`One or more incorrect elaboration orders exist' +@emph{One or more incorrect elaboration orders exist} In this case a compiler can build an executable program, but @code{Program_Error} will be raised when the program is run. @item -`Several elaboration orders exist, some correct, some incorrect' +@emph{Several elaboration orders exist, some correct, some incorrect} In this case the programmer has not controlled the elaboration order. As a result, a compiler may or may not pick one of the correct orders, and the @@ -27050,7 +27052,7 @@ worst possible state because the program may fail on another compiler, or even another version of the same compiler. @item -`One or more correct orders exist' +@emph{One or more correct orders exist} In this case a compiler can build an executable program, and the program is run successfully. This state may be guaranteed by following the outlined @@ -27076,7 +27078,7 @@ elaboration order and to diagnose elaboration problems. @itemize * @item -`Dynamic elaboration model' +@emph{Dynamic elaboration model} This is the most permissive of the three elaboration models and emulates the behavior specified by the Ada Reference Manual. When the dynamic model is in @@ -27098,7 +27100,7 @@ GNAT performs extensive diagnostics on a unit-by-unit basis for all scenarios that invoke internal targets. In addition, GNAT generates run-time checks for all external targets and for all scenarios that may exhibit ABE problems. -The elaboration order is obtained by honoring all `with' clauses, purity and +The elaboration order is obtained by honoring all @emph{with} clauses, purity and preelaborability of units, and elaboration-control pragmas. The dynamic model attempts to take all invocations in elaboration code into account. If an invocation leads to a circularity, GNAT ignores the invocation based on the @@ -27114,7 +27116,7 @@ The dynamic model is enabled with compiler switch @code{-gnatE}. @itemize * @item -`Static elaboration model' +@emph{Static elaboration model} This is the middle ground of the three models. When the static model is in effect, GNAT makes the following assumptions: @@ -27135,7 +27137,7 @@ GNAT performs extensive diagnostics on a unit-by-unit basis for all scenarios that invoke internal targets. In addition, GNAT generates run-time checks for all external targets and for all scenarios that may exhibit ABE problems. -The elaboration order is obtained by honoring all `with' clauses, purity and +The elaboration order is obtained by honoring all @emph{with} clauses, purity and preelaborability of units, presence of elaboration-control pragmas, and all invocations in elaboration code. An order obtained using the static model is guaranteed to be ABE problem-free, excluding dispatching calls and @@ -27150,7 +27152,7 @@ The static model is the default model in GNAT. @itemize * @item -`SPARK elaboration model' +@emph{SPARK elaboration model} This is the most conservative of the three models and enforces the SPARK rules of elaboration as defined in the SPARK Reference Manual, section 7.7. @@ -27167,7 +27169,7 @@ The SPARK model is enabled with compiler switch @code{-gnatd.v}. @itemize * @item -`Legacy elaboration models' +@emph{Legacy elaboration models} In addition to the three elaboration models outlined above, GNAT provides the following legacy models: @@ -27203,7 +27205,7 @@ however the following rules must be observed: @itemize * @item -A client unit compiled with the dynamic model can only `with' a server unit +A client unit compiled with the dynamic model can only @emph{with} a server unit that meets at least one of the following criteria: @@ -27253,8 +27255,8 @@ conservative, or a particular scenario may not be invoked due conditional execution. The warnings can be suppressed selectively with @code{pragma Warnings (Off)} or globally with compiler switch @code{-gnatwL}. -A `guaranteed ABE' arises when the body of a target is not elaborated early -enough, and causes `all' scenarios that directly invoke the target to fail. +A @emph{guaranteed ABE} arises when the body of a target is not elaborated early +enough, and causes @emph{all} scenarios that directly invoke the target to fail. @quotation @@ -27286,8 +27288,8 @@ the declaration of @code{Val}. This invokes function @code{ABE}, however the bod @end example @end quotation -A `conditional ABE' arises when the body of a target is not elaborated early -enough, and causes `some' scenarios that directly invoke the target to fail. +A @emph{conditional ABE} arises when the body of a target is not elaborated early +enough, and causes @emph{some} scenarios that directly invoke the target to fail. @quotation @@ -27376,9 +27378,9 @@ rules. @section Elaboration Circularities -An `elaboration circularity' occurs whenever the elaboration of a set of +An @strong{elaboration circularity} occurs whenever the elaboration of a set of units enters a deadlocked state, where each unit is waiting for another unit -to be elaborated. This situation may be the result of improper use of `with' +to be elaborated. This situation may be the result of improper use of @emph{with} clauses, elaboration-control pragmas, or invocations in elaboration code. The following example exhibits an elaboration circularity. @@ -27486,7 +27488,7 @@ too much modification, especially in the case of complex legacy code. When faced with an elaboration circularity, the programmer should also consider the tactics given in the suggestions section of the circularity diagnostic. -Depending on the units involved in the circularity, their `with' clauses, +Depending on the units involved in the circularity, their @emph{with} clauses, purity, preelaborability, presence of elaboration-control pragmas and invocations at elaboration time, the binder may suggest one or more of the following tactics to eliminate the circularity: @@ -27539,7 +27541,7 @@ Prevents a set of units from being elaborated. @item The removal of the pragma will not eliminate the semantic effects of the -pragma. In other words, the argument of the pragma along with its `with' +pragma. In other words, the argument of the pragma along with its @emph{with} closure will still be elaborated prior to the unit containing the pragma. @item @@ -27783,20 +27785,20 @@ information depending on the elaboration model in effect. @itemize - @item -`Dynamic model' +@emph{Dynamic model} GNAT will indicate missing @code{Elaborate} and @code{Elaborate_All} pragmas for all library-level scenarios within the partition. @item -`Static model' +@emph{Static model} GNAT will indicate all scenarios invoked during elaboration. In addition, it will provide detailed traceback when an implicit @code{Elaborate} or @code{Elaborate_All} pragma is generated. @item -`SPARK model' +@emph{SPARK model} GNAT will indicate how an elaboration requirement is met by the context of a unit. This diagnostic requires compiler switch @code{-gnatd.v}. @@ -28199,7 +28201,7 @@ pre-processor) documentation for further information. @display -`Register names'@w{ } +@emph{Register names}@w{ } @display gcc / @code{as}: Prefix with ‘%’; for example @code{%eax}@w{ } Intel: No extra punctuation; for example @code{eax}@w{ } @@ -28210,7 +28212,7 @@ Intel: No extra punctuation; for example @code{eax}@w{ } @display -`Immediate operand'@w{ } +@emph{Immediate operand}@w{ } @display gcc / @code{as}: Prefix with ‘$’; for example @code{$4}@w{ } Intel: No extra punctuation; for example @code{4}@w{ } @@ -28221,7 +28223,7 @@ Intel: No extra punctuation; for example @code{4}@w{ } @display -`Address'@w{ } +@emph{Address}@w{ } @display gcc / @code{as}: Prefix with ‘$’; for example @code{$loc}@w{ } Intel: No extra punctuation; for example @code{loc}@w{ } @@ -28232,7 +28234,7 @@ Intel: No extra punctuation; for example @code{loc}@w{ } @display -`Memory contents'@w{ } +@emph{Memory contents}@w{ } @display gcc / @code{as}: No extra punctuation; for example @code{loc}@w{ } Intel: Square brackets; for example @code{[loc]}@w{ } @@ -28243,7 +28245,7 @@ Intel: Square brackets; for example @code{[loc]}@w{ } @display -`Register contents'@w{ } +@emph{Register contents}@w{ } @display gcc / @code{as}: Parentheses; for example @code{(%eax)}@w{ } Intel: Square brackets; for example @code{[eax]}@w{ } @@ -28254,7 +28256,7 @@ Intel: Square brackets; for example @code{[eax]}@w{ } @display -`Hexadecimal numbers'@w{ } +@emph{Hexadecimal numbers}@w{ } @display gcc / @code{as}: Leading ‘0x’ (C language syntax); for example @code{0xA0}@w{ } Intel: Trailing ‘h’; for example @code{A0h}@w{ } @@ -28265,7 +28267,7 @@ Intel: Trailing ‘h’; for example @code{A0h}@w{ } @display -`Operand size'@w{ } +@emph{Operand size}@w{ } @display gcc / @code{as}: Explicit in op code; for example @code{movw} to move a 16-bit word@w{ } Intel: Implicit, deduced by assembler; for example @code{mov}@w{ } @@ -28276,7 +28278,7 @@ Intel: Implicit, deduced by assembler; for example @code{mov}@w{ } @display -`Instruction repetition'@w{ } +@emph{Instruction repetition}@w{ } @display gcc / @code{as}: Split into two lines; for example@w{ } @display @@ -28291,7 +28293,7 @@ Intel: Keep on one line; for example @code{rep stosl}@w{ } @display -`Order of operands'@w{ } +@emph{Order of operands}@w{ } @display gcc / @code{as}: Source first; for example @code{movw $4, %eax}@w{ } Intel: Destination first; for example @code{mov eax, 4}@w{ } @@ -28322,7 +28324,7 @@ end Nothing; @end quotation @code{Asm} is a procedure declared in package @code{System.Machine_Code}; -here it takes one parameter, a `template string' that must be a static +here it takes one parameter, a @emph{template string} that must be a static expression and that will form the generated instruction. @code{Asm} may be regarded as a compile-time procedure that parses the template string and additional parameters (none here), @@ -28605,7 +28607,7 @@ most useful (for the Intel x86 processor) are the following: @multitable {xxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} @item -`=' +@emph{=} @tab @@ -28613,7 +28615,7 @@ output constraint @item -`g' +@emph{g} @tab @@ -28621,7 +28623,7 @@ global (i.e., can be stored anywhere) @item -`m' +@emph{m} @tab @@ -28629,7 +28631,7 @@ in memory @item -`I' +@emph{I} @tab @@ -28637,7 +28639,7 @@ a constant @item -`a' +@emph{a} @tab @@ -28645,7 +28647,7 @@ use eax @item -`b' +@emph{b} @tab @@ -28653,7 +28655,7 @@ use ebx @item -`c' +@emph{c} @tab @@ -28661,7 +28663,7 @@ use ecx @item -`d' +@emph{d} @tab @@ -28669,7 +28671,7 @@ use edx @item -`S' +@emph{S} @tab @@ -28677,7 +28679,7 @@ use esi @item -`D' +@emph{D} @tab @@ -28685,7 +28687,7 @@ use edi @item -`r' +@emph{r} @tab @@ -28693,7 +28695,7 @@ use one of eax, ebx, ecx or edx @item -`q' +@emph{q} @tab @@ -28708,7 +28710,7 @@ documentation; note that it is possible to combine certain constraints in one constraint string. You specify the association of an output variable with an assembler operand -through the @code{%@var{n}} notation, where `n' is a non-negative +through the @code{%@emph{n}} notation, where @emph{n} is a non-negative integer. Thus in @quotation @@ -29039,7 +29041,7 @@ Asm ("movl %0, %%ebx" & LF & HT & @end quotation The Clobber parameter is a static string expression specifying the -register(s) you are using. Note that register names are `not' prefixed +register(s) you are using. Note that register names are @emph{not} prefixed by a percent sign. Also, if more than one register is used then their names are separated by commas; e.g., @code{"eax, ebx"} @@ -29104,7 +29106,7 @@ Copyright 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -`Preamble' +@strong{Preamble} The purpose of this License is to make a manual, textbook, or other functional and useful document “free” in the sense of freedom: to @@ -29127,23 +29129,23 @@ it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. -`1. APPLICABILITY AND DEFINITIONS' +@strong{1. APPLICABILITY AND DEFINITIONS} This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The `Document', below, +work under the conditions stated herein. The @strong{Document}, below, refers to any such manual or work. Any member of the public is a -licensee, and is addressed as “`you'”. You accept the license if you +licensee, and is addressed as “@strong{you}”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. -A “`Modified Version'” of the Document means any work containing the +A “@strong{Modified Version}” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. -A “`Secondary Section'” is a named appendix or a front-matter section of +A “@strong{Secondary Section}” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly @@ -29154,7 +29156,7 @@ connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. -The “`Invariant Sections'” are certain Secondary Sections whose titles +The “@strong{Invariant Sections}” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not @@ -29162,12 +29164,12 @@ allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. -The “`Cover Texts'” are certain short passages of text that are listed, +The “@strong{Cover Texts}” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. -A “`Transparent'” copy of the Document means a machine-readable copy, +A “@strong{Transparent}” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of @@ -29178,7 +29180,7 @@ to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount -of text. A copy that is not “Transparent” is called `Opaque'. +of text. A copy that is not “Transparent” is called @strong{Opaque}. Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML @@ -29191,22 +29193,22 @@ processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. -The “`Title Page'” means, for a printed book, the title page itself, +The “@strong{Title Page}” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text. -The “`publisher'” means any person or entity that distributes +The “@strong{publisher}” means any person or entity that distributes copies of the Document to the public. -A section “`Entitled XYZ'” means a named subunit of the Document whose +A section “@strong{Entitled XYZ}” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as “`Acknowledgements'”, -“`Dedications'”, “`Endorsements'”, or “`History'”.) -To “`Preserve the Title'” +specific section name mentioned below, such as “@strong{Acknowledgements}”, +“@strong{Dedications}”, “@strong{Endorsements}”, or “@strong{History}”.) +To “@strong{Preserve the Title}” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition. @@ -29217,7 +29219,7 @@ License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. -`2. VERBATIM COPYING' +@strong{2. VERBATIM COPYING} You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the @@ -29232,7 +29234,7 @@ number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. -`3. COPYING IN QUANTITY' +@strong{3. COPYING IN QUANTITY} If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the @@ -29269,7 +29271,7 @@ It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. -`4. MODIFICATIONS' +@strong{4. MODIFICATIONS} You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release @@ -29386,7 +29388,7 @@ The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. -`5. COMBINING DOCUMENTS' +@strong{5. COMBINING DOCUMENTS} You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified @@ -29410,7 +29412,7 @@ in the various original documents, forming one section Entitled and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements”. -`6. COLLECTIONS OF DOCUMENTS' +@strong{6. COLLECTIONS OF DOCUMENTS} You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this @@ -29423,7 +29425,7 @@ it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. -`7. AGGREGATION WITH INDEPENDENT WORKS' +@strong{7. AGGREGATION WITH INDEPENDENT WORKS} A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or @@ -29442,7 +29444,7 @@ electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. -`8. TRANSLATION' +@strong{8. TRANSLATION} Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. @@ -29462,7 +29464,7 @@ If a section in the Document is Entitled “Acknowledgements”, its Title (section 1) will typically require changing the actual title. -`9. TERMINATION' +@strong{9. TERMINATION} You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt @@ -29489,7 +29491,7 @@ this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. -`10. FUTURE REVISIONS OF THIS LICENSE' +@strong{10. FUTURE REVISIONS OF THIS LICENSE} The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new @@ -29510,7 +29512,7 @@ License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document. -`11. RELICENSING' +@strong{11. RELICENSING} “Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web server that publishes copyrightable works and also @@ -29539,7 +29541,7 @@ The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. -`ADDENDUM: How to use this License for your documents' +@strong{ADDENDUM: How to use this License for your documents} To use this License in a document you have written, include a copy of the License in the document and put the following copyright and @@ -29580,8 +29582,8 @@ to permit their use in free software. @printindex ge -@anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{ } @anchor{d1}@w{ } +@anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{ } @c %**end of body @bye -- cgit v1.1