re PR ada/15479 (Ada manual problems)

PR documentation/15479
* gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
use @command instead of @code, @option instead of @samp or @code,
@code instead of @var, @samp instead of @file.

From-SVN: r132602
This commit is contained in:
Ralf Wildenhues 2008-02-24 22:40:31 +00:00 committed by Ralf Wildenhues
parent 9538dfb92f
commit 1992bbd9b9
3 changed files with 74 additions and 67 deletions

View File

@ -1,5 +1,10 @@
2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR documentation/15479
* gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
use @command instead of @code, @option instead of @samp or @code,
@code instead of @var, @samp instead of @file.
PR documentation/15479
* gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
in Makefile rules, by using `&&' rather than `;'.

View File

@ -34,7 +34,7 @@
@end direntry
@copying
Copyright @copyright{} 1995-2007, 2008 Free Software Foundation
Copyright @copyright{} 1995-2007, 2008 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
@ -962,7 +962,7 @@ Note that, as with the @code{if} statement to which it is equivalent, the
type of the expression is either @code{Standard.Boolean}, or any type derived
from this standard type.
If assertions are disabled (switch @code{-gnata} not used), then there
If assertions are disabled (switch @option{-gnata} not used), then there
is no run-time effect (and in particular, any side effects from the
expression will not occur at run time). (The expression is still
analyzed at compile time, and may cause types to be frozen if they are
@ -1468,7 +1468,7 @@ semantics of the pragma is exactly equivalent to the procedure call statement
corresponding to the argument with a terminating semicolon. Pragmas are
permitted in sequences of declarations, so you can use pragma @code{Debug} to
intersperse calls to debug procedures in the middle of declarations. Debug
pragmas can be enabled either by use of the command line switch @code{-gnata}
pragmas can be enabled either by use of the command line switch @option{-gnata}
or by use of the configuration pragma @code{Debug_Policy}.
@node Pragma Debug_Policy
@ -1484,7 +1484,7 @@ pragma Debug_Policy (CHECK | IGNORE);
@noindent
If the argument is @code{CHECK}, then pragma @code{DEBUG} is enabled.
If the argument is @code{IGNORE}, then pragma @code{DEBUG} is ignored.
This pragma overrides the effect of the @code{-gnata} switch on the
This pragma overrides the effect of the @option{-gnata} switch on the
command line.
@node Pragma Detect_Blocking
@ -1519,7 +1519,7 @@ elaboration model used by the compilation affected by the
pragma. If the parameter is @code{Dynamic},
then the dynamic elaboration
model described in the Ada Reference Manual is used, as though
the @code{-gnatE} switch had been specified on the command
the @option{-gnatE} switch had been specified on the command
line. If the parameter is @code{Static}, then the default GNAT static
model is used. This configuration pragma overrides the setting
of the command line. For full details on the elaboration models
@ -2575,7 +2575,7 @@ See the GNAT users guide for details.
Note that pragma @code{Initialize_Scalars} is particularly useful in
conjunction with the enhanced validity checking that is now provided
in GNAT, which checks for invalid values under more conditions.
Using this feature (see description of the @code{-gnatV} flag in the
Using this feature (see description of the @option{-gnatV} flag in the
users guide) in conjunction with pragma @code{Initialize_Scalars}
provides a powerful new tool to assist in the detection of problems
caused by uninitialized variables.
@ -2599,7 +2599,7 @@ pragma Inline_Always (NAME [, NAME]);
@noindent
Similar to pragma @code{Inline} except that inlining is not subject to
the use of option @code{-gnatn} and the inlining happens regardless of
the use of option @option{-gnatn} and the inlining happens regardless of
whether this option is used.
@node Pragma Inline_Generic
@ -3458,7 +3458,7 @@ targets that do not normally support the capability. The version of
@code{Poll} in this file makes a call to the appropriate runtime routine
to test for an abort condition.
Note that polling can also be enabled by use of the @code{-gnatP} switch. See
Note that polling can also be enabled by use of the @option{-gnatP} switch. See
the @cite{GNAT User's Guide} for details.
@node Pragma Profile (Ravenscar)
@ -3838,7 +3838,7 @@ the pragma line (for use in error messages and debugging
information). @var{string_literal} is a static string constant that
specifies the file name to be used in error messages and debugging
information. This is most notably used for the output of @code{gnatchop}
with the @code{-r} switch, to make sure that the original unchopped
with the @option{-r} switch, to make sure that the original unchopped
source file is the one referred to.
The second argument must be a string literal, it cannot be a static
@ -3942,7 +3942,7 @@ the @file{gnat.adc} file).
The form with a string literal specifies which style options are to be
activated. These are additive, so they apply in addition to any previously
set style check options. The codes for the options are the same as those
used in the @code{-gnaty} switch to @code{gcc} or @code{gnatmake}.
used in the @option{-gnaty} switch to @command{gcc} or @command{gnatmake}.
For example the following two methods can be used to enable
layout checking:
@ -4478,7 +4478,7 @@ The form with a string literal specifies which validity options are to be
activated. The validity checks are first set to include only the default
reference manual settings, and then a string of letters in the string
specifies the exact set of options required. The form of this string
is exactly as described for the @code{-gnatVx} compiler switch (see the
is exactly as described for the @option{-gnatVx} compiler switch (see the
GNAT users guide for details). For example the following two methods
can be used to enable validity checking for mode @code{in} and
@code{in out} subprogram parameters:
@ -7364,7 +7364,7 @@ overlapping storage units.
@end cartouche
@noindent
A compilation is represented by a sequence of files presented to the
compiler in a single invocation of the @code{gcc} command.
compiler in a single invocation of the @command{gcc} command.
@sp 1
@cartouche
@ -7405,7 +7405,7 @@ mentioned in the context clause of one of the needed Ada units.
If the partition contains no main program, or if the main program is in
a language other than Ada, then GNAT
provides the binder options @code{-z} and @code{-n} respectively, and in
provides the binder options @option{-z} and @option{-n} respectively, and in
this case a list of units can be explicitly supplied to the binder for
inclusion in the partition (all units needed by these units will also
be included automatically). For full details on the use of these
@ -8522,7 +8522,7 @@ There are no implementation-defined aspects of @code{Task_Attributes}.
@noindent
The metrics information for GNAT depends on the performance of the
underlying operating system. The sources of the run-time for tasking
implementation, together with the output from @code{-gnatG} can be
implementation, together with the output from @option{-gnatG} can be
used to determine the exact sequence of operating systems calls made
to implement various tasking constructs. Together with appropriate
information on the performance of the underlying operating system,
@ -9443,7 +9443,7 @@ Then @code{Default_Stack_Size} can be defined in a global package, and
modified as required. Any tasks requiring stack sizes different from the
default can have an appropriate alternative reference in the pragma.
You can also use the @code{-d} binder switch to modify the default stack
You can also use the @option{-d} binder switch to modify the default stack
size.
For access types, the @code{Storage_Size} clause specifies the maximum
@ -10866,7 +10866,7 @@ code. size clause specifying 64-bits must be used to obtain a 64-bit pointer.
@node Determining the Representations chosen by GNAT
@section Determining the Representations chosen by GNAT
@cindex Representation, determination of
@cindex @code{-gnatR} switch
@cindex @option{-gnatR} switch
@noindent
Although the descriptions in this section are intended to be complete, it is
@ -10884,7 +10884,7 @@ fields placed? The section on pragma @code{Pack} in this chapter can be
used to answer the second question, but it is often easier to just see
what the compiler does.
For this purpose, GNAT provides the option @code{-gnatR}. If you compile
For this purpose, GNAT provides the option @option{-gnatR}. If you compile
with this option, then the compiler will output information on the actual
representations chosen, in a format similar to source representation
clauses. For example, if we compile the package:
@ -10934,7 +10934,7 @@ end q;
@end smallexample
@noindent
using the switch @code{-gnatR} we obtain the following output:
using the switch @option{-gnatR} we obtain the following output:
@smallexample
Representation information for unit q

View File

@ -117,7 +117,8 @@
@c %**end of header
@copying
Copyright @copyright{} 1995-2005, 2006, 2007, 2008 Free Software Foundation
Copyright @copyright{} 1995-2005, 2006, 2007, 2008 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
@ -2097,7 +2098,7 @@ GNAT allows completely arbitrary file names to be specified using the
source file name pragma. However, if the file name specified has an
extension other than @file{.ads} or @file{.adb} it is necessary to use
a special syntax when compiling the file. The name in this case must be
preceded by the special sequence @code{-x} followed by a space and the name
preceded by the special sequence @option{-x} followed by a space and the name
of the language, here @code{ada}, as in:
@smallexample
@ -2109,7 +2110,8 @@ $ gcc -c -x ada peculiar_file_name.sim
@command{gnatmake} handles non-standard file names in the usual manner (the
non-standard file name for the main program is simply used as the
argument to gnatmake). Note that if the extension is also non-standard,
then it must be included in the gnatmake command, it may not be omitted.
then it must be included in the @command{gnatmake} command, it may not
be omitted.
@node Alternative File Naming Schemes
@section Alternative File Naming Schemes
@ -2950,8 +2952,8 @@ Interface ---see http://www.codesourcery.com/archives/cxx-abi).
@noindent
Interfacing can be done at 3 levels: simple data, subprograms, and
classes. In the first two cases, GNAT offers a specific @var{Convention
C_Plus_Plus} (or @var{CPP}) that behaves exactly like @var{Convention C}.
classes. In the first two cases, GNAT offers a specific @code{Convention
C_Plus_Plus} (or @code{CPP}) that behaves exactly like @code{Convention C}.
Usually, C++ mangles the names of subprograms, and currently, GNAT does
not provide any help to solve the demangling problem. This problem can be
addressed in two ways:
@ -3005,9 +3007,9 @@ at the same time and may make one of the two compilers operate
improperly if set during invocation of the wrong compiler. It is also
very important that the linker uses the proper @file{libgcc.a} GCC
library -- that is, the one from the C++ compiler installation. The
implicit link command as suggested in the gnatmake command from the
former example can be replaced by an explicit link command with the
full-verbosity option in order to verify which library is used:
implicit link command as suggested in the @command{gnatmake} command
from the former example can be replaced by an explicit link command with
the full-verbosity option in order to verify which library is used:
@smallexample
$ gnatbind ada_unit
$ gnatlink -v -v ada_unit file1.o file2.o --LINK=c++
@ -4397,7 +4399,7 @@ warning messages generated.
@item -^gnatl^OUTPUT_FILE^=file
@cindex @option{^-gnatl^OUTPUT_FILE^=fname} (@command{gcc})
This has the same effect as @code{-gnatl} except that the output is
This has the same effect as @option{-gnatl} except that the output is
written to a file instead of to standard output. If the given name
@file{fname} does not start with a period, then it is the full name
of the file to be written. If @file{fname} is an extension, it is
@ -6725,7 +6727,7 @@ the @option{-gnatR} switch). For @option{-gnatR1} (which is the default,
so @option{-gnatR} with no parameter has the same effect), size and alignment
information is listed for declared array and record types. For
@option{-gnatR2}, size and alignment information is listed for all
declared types and objects. Finally @code{-gnatR3} includes symbolic
declared types and objects. Finally @option{-gnatR3} includes symbolic
expressions for values that are computed at run time for
variant records. These symbolic expressions have a mostly obvious
format with #n being used to represent the value of the n'th
@ -8333,13 +8335,13 @@ units, or in @code{Import} pragmas in any Ada units.
@var{linker options} is an optional list of linker specific
switches.
The default linker called by gnatlink is @var{gcc} which in
The default linker called by gnatlink is @command{gcc} which in
turn calls the appropriate system linker.
Standard options for the linker such as @option{-lmy_lib} or
@option{-Ldir} can be added as is.
For options that are not recognized by
@var{gcc} as linker options, use the @var{gcc} switches @option{-Xlinker} or
@option{-Wl,}.
@command{gcc} as linker options, use the @command{gcc} switches
@option{-Xlinker} or @option{-Wl,}.
Refer to the GCC documentation for
details. Here is an example showing how to generate a linker map:
@ -8838,7 +8840,7 @@ stamp differences when the only
modifications to a source file consist in adding/removing comments,
empty lines, spaces or tabs. This means that if you have changed the
comments in a source file or have simply reformatted it, using this
switch will tell gnatmake not to recompile files that depend on it
switch will tell @command{gnatmake} not to recompile files that depend on it
(provided other sources on which these files depend have undergone no
semantic modifications). Note that the debugging information may be
out of date with respect to the sources if the @option{-m} switch causes
@ -9765,15 +9767,15 @@ it actually improves performance.
@subsection Other Optimization Switches
@cindex Optimization Switches
Since @code{GNAT} uses the @code{gcc} back end, all the specialized
@code{gcc} optimization switches are potentially usable. These switches
Since @code{GNAT} uses the @command{gcc} back end, all the specialized
@command{gcc} optimization switches are potentially usable. These switches
have not been extensively tested with GNAT but can generally be expected
to work. Examples of switches in this category are
@option{-funroll-loops} and
the various target-specific @option{-m} options (in particular, it has been
observed that @option{-march=pentium4} can significantly improve performance
on appropriate machines). For full details of these switches, see the
@code{gcc} manual.
@command{gcc} manual.
@node Optimization and Strict Aliasing
@subsection Optimization and Strict Aliasing
@ -9868,8 +9870,8 @@ end;
@end smallexample
@noindent
This program prints out 0 in @code{-O0} or @code{-O1}
mode, but it prints out 1 in @code{-O2} mode. That's
This program prints out 0 in @option{-O0} or @option{-O1}
mode, but it prints out 1 in @option{-O2} mode. That's
because in strict aliasing mode, the compiler can and
does assume that the assignment to @code{v2.all} could not
affect the value of @code{v1.all}, since different types
@ -9907,19 +9909,19 @@ the suspicious @code{Unchecked_Conversion}.
As implied by the warning message, there are approaches you can use to
avoid the unwanted strict aliasing optimization in a case like this.
One possibility is to simply avoid the use of @code{-O2}, but
One possibility is to simply avoid the use of @option{-O2}, but
that is a bit drastic, since it throws away a number of useful
optimizations that do not involve strict aliasing assumptions.
A less drastic approach is to compile the program using the
option @code{-fno-strict-aliasing}. Actually it is only the
option @option{-fno-strict-aliasing}. Actually it is only the
unit containing the dereferencing of the suspicious pointer
that needs to be compiled. So in this case, if we compile
unit @code{m} with this switch, then we get the expected
value of zero printed. Analyzing which units might need
the switch can be painful, so a more reasonable approach
is to compile the entire program with options @code{-O2}
and @code{-fno-strict-aliasing}. If the performance is
is to compile the entire program with options @option{-O2}
and @option{-fno-strict-aliasing}. If the performance is
satisfactory with this combination of options, then the
advantage is that the entire issue of possible "wrong"
optimization due to strict aliasing is avoided.
@ -10268,8 +10270,8 @@ function or data in a separate section in the resulting object file.
Once the objects and static libraries are created with these options, the
linker can perform the dead code elimination. You can do this by setting
the @option{-Wl,--gc-sections} option to gcc command or in the
@option{-largs} section of gnatmake. This will perform a garbage collection of
code and data never referenced.
@option{-largs} section of @command{gnatmake}. This will perform a
garbage collection of code and data never referenced.
If the linker performs a partial link (@option{-r} ld linker option), then you
will need to provide one or several entry point using the
@ -12518,7 +12520,7 @@ in the project file.
@end smallexample
@noindent
The attribute @var{Object_Dir} has a string value, the path name of the object
The attribute @code{Object_Dir} has a string value, the path name of the object
directory. The path name may be absolute or relative to the directory of the
project file. This directory must already exist, and be readable and writable.
@ -12541,7 +12543,7 @@ in the project file.
@end smallexample
@noindent
The attribute @var{Exec_Dir} has a string value, the path name of the exec
The attribute @code{Exec_Dir} has a string value, the path name of the exec
directory. The path name may be absolute or relative to the directory of the
project file. This directory must already exist, and be writable.
@ -13169,14 +13171,14 @@ You can define the following attributes in package @code{Naming}:
@table @code
@item @var{Casing}
@item @code{Casing}
This must be a string with one of the three values @code{"lowercase"},
@code{"uppercase"} or @code{"mixedcase"}; these strings are case insensitive.
@noindent
If @var{Casing} is not specified, then the default is @code{"lowercase"}.
If @code{Casing} is not specified, then the default is @code{"lowercase"}.
@item @var{Dot_Replacement}
@item @code{Dot_Replacement}
This must be a string whose value satisfies the following conditions:
@itemize @bullet
@ -13191,7 +13193,7 @@ is @code{"."}
@noindent
If @code{Dot_Replacement} is not specified, then the default is @code{"-"}.
@item @var{Spec_Suffix}
@item @code{Spec_Suffix}
This is an associative array (indexed by the programming language name, case
insensitive) whose value is a string that must satisfy the following
conditions:
@ -13204,7 +13206,7 @@ conditions:
If @code{Spec_Suffix ("Ada")} is not specified, then the default is
@code{"^.ads^.ADS^"}.
@item @var{Body_Suffix}
@item @code{Body_Suffix}
This is an associative array (indexed by the programming language name, case
insensitive) whose value is a string that must satisfy the following
conditions:
@ -13223,7 +13225,7 @@ if the longest suffix is @code{Spec_Suffix ("Ada")}.
If @code{Body_Suffix ("Ada")} is not specified, then the default is
@code{"^.adb^.ADB^"}.
@item @var{Separate_Suffix}
@item @code{Separate_Suffix}
This must be a string whose value satisfies the same conditions as
@code{Body_Suffix}. The same "longest suffix" rules apply.
@ -13231,7 +13233,7 @@ This must be a string whose value satisfies the same conditions as
If @code{Separate_Suffix ("Ada")} is not specified, then it defaults to same
value as @code{Body_Suffix ("Ada")}.
@item @var{Spec}
@item @code{Spec}
@noindent
You can use the associative array attribute @code{Spec} to define
the source file name for an individual Ada compilation unit's spec. The array
@ -13244,7 +13246,7 @@ operating system).
for Spec ("MyPack.MyChild") use "mypack.mychild.spec";
@end smallexample
@item @var{Body}
@item @code{Body}
You can use the associative array attribute @code{Body} to
define the source file name for an individual Ada compilation unit's body
@ -14252,7 +14254,7 @@ It is also possible to invoke some of the tools,
@code{^gnatmetric^gnatmetric^}),
and @code{^gnatpp^gnatpp^})
on a set of project units thanks to the combination of the switches
@code{-P}, @code{-U} and possibly the main unit when one is interested
@option{-P}, @option{-U} and possibly the main unit when one is interested
in its closure. For instance,
@smallexample
gnat metric -Pproj
@ -18645,7 +18647,7 @@ documentation), nor does it try to replace the @command{gnatmake} utility
(@pxref{The GNAT Make Program gnatmake}).
All the examples in this section are specific to the GNU version of
make. Although @code{make} is a standard utility, and the basic language
make. Although @command{make} is a standard utility, and the basic language
is the same, these examples use some advanced features found only in
@code{GNU make}.
@ -18775,13 +18777,13 @@ automatically.
The example below presents two methods. The first one, although less
general, gives you more control over the list. It involves wildcard
characters, that are automatically expanded by @code{make}. Its
characters, that are automatically expanded by @command{make}. Its
shortcoming is that you need to explicitly specify some of the
organization of your project, such as for instance the directory tree
depth, whether some directories are found in a separate tree,...
The second method is the most general one. It requires an external
program, called @code{find}, which is standard on all Unix systems. All
program, called @command{find}, which is standard on all Unix systems. All
the directories found under a given root directory will be added to the
list.
@ -19235,7 +19237,7 @@ version of that library that has been compiled with the @option{-g} switch
Gnatmem must be supplied with the @file{gmem.out} file and the executable to
examine. If the location of @file{gmem.out} file was not explicitly supplied by
@code{-i} switch, gnatmem will assume that this file can be found in the
@option{-i} switch, gnatmem will assume that this file can be found in the
current directory. For example, after you have executed @file{my_program},
@file{gmem.out} can be analyzed by @code{gnatmem} using the command:
@ -19657,7 +19659,7 @@ With this option, at each task termination, its stack usage is output on
It is not always convenient to output the stack usage when the program
is still running. Hence, it is possible to delay this output until program
termination. for a given number of tasks specified as the argument of the
@code{-u} option. For instance:
@option{-u} option. For instance:
@smallexample
$ gnatbind -u100 file
@ -21954,9 +21956,9 @@ separate from the generated code. It makes the object files considerably
larger, but it does not add to the size of the actual executable that
will be loaded into memory, and has no impact on run-time performance. The
generation of debug information is triggered by the use of the
^-g^/DEBUG^ switch in the gcc or gnatmake command used to carry out
the compilations. It is important to emphasize that the use of these
options does not change the generated code.
^-g^/DEBUG^ switch in the @command{gcc} or @command{gnatmake} command
used to carry out the compilations. It is important to emphasize that
the use of these options does not change the generated code.
The debugging information is written in standard system formats that
are used by many tools, including debuggers and profilers. The format
@ -22029,7 +22031,7 @@ describes some of the additional commands that can be given to @code{GDB}.
@end ifset
includes extensive documentation on the use
of these commands, together with examples of their use. Furthermore,
the command @var{help} invoked from within @code{GDB} activates a simple help
the command @command{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
@ -30471,7 +30473,7 @@ to standard output the list of entry points in the DLL. Note that if
some routines in the DLL have the @code{Stdcall} convention
(@pxref{Windows Calling Conventions}) with stripped @code{@@}@i{nn}
suffix then you'll have to edit @file{api.def} to add it, and specify
@code{-k} to @code{gnatdll} when creating the import library.
@option{-k} to @command{gnatdll} when creating the import library.
@noindent
Here are some hints to find the right @code{@@}@i{nn} suffix.
@ -30568,7 +30570,7 @@ into the DLL. This is done by using the standard @command{gnatmake} tool.
@item building the DLL
To build the DLL you must use @command{gcc}'s @code{-shared}
To build the DLL you must use @command{gcc}'s @option{-shared}
option. It is quite simple to use this method:
@smallexample
@ -30605,7 +30607,7 @@ $ attrib +R apilib\*.ali
At this point it is possible to use the DLL by directly linking
against it. Note that you must use the GNAT shared runtime when using
GNAT shared libraries. This is achieved by using @code{-shared} binder's
GNAT shared libraries. This is achieved by using @option{-shared} binder's
option.
@smallexample
@ -31009,7 +31011,7 @@ advise the reader to build relocatable DLL.
@item -b @var{address}
@cindex @option{-b} (@code{gnatdll})
Set the relocatable DLL base address. By default the address is
@var{0x11000000}.
@code{0x11000000}.
@item -bargs @var{opts}
@cindex @option{-bargs} (@code{gnatdll})