Next: Units to Sources Mapping Files, Previous: Auxiliary Output Control, Up: Switches for gcc
-gnatdxDebug unit in the compiler source
file debug.adb.
-gnatGThe format of the output is very similar to standard Ada source, and is
easily understood by an Ada programmer. The following special syntactic
additions correspond to low level features used in the generated code that
do not have any exact analogies in pure Ada source form. The following
is a partial list of these special constructions. See the specification
of package Sprint in file sprint.ads for a full list.
new xxx [storage_pool = yyy]at end procedure-name;(if expr then expr else expr)x?y:z construction in C.
^(source)?(source)?^(source) #/ y #mod y #* y #rem yfree expr [storage_pool = xxx]free statement.
freeze typename [actions]reference itype! (arg, arg, arg) : label && expr && expr ... && expr[constraint_error]Constraint_Error exception.
'reference!(source-expression)[numerator/denominator]-gnatDgcc -g switch will refer to the generated
xxx.dg file. This allows you to do source level debugging using
the generated code which is sometimes useful for complex code, for example
to find out exactly which part of a complex construction raised an
exception. This switch also suppress generation of cross-reference
information (see -gnatx).
-gnatC Very_Long_Package.Very_Long_Inner_Package.Var
would normally appear in these tables as:
very_long_package__very_long_inner_package__var
but if the -gnatC switch is used, then the name appears as
XCb7e0c705__var
Here b7e0c705 is a compressed encoding of the qualification prefix. The GNAT Ada aware version of GDB understands these encoded prefixes, so if this debugger is used, the encoding is largely hidden from the user of the compiler.
-gnatR[0|1|2|3][s]GNAT sources for full detalis on the format of -gnatR3
output. If the switch is followed by an s (e.g. -gnatR2s), then
the output is to a file with the name file.rep where
file is the name of the corresponding source file.
-gnatxgnatfind and gnatxref. The -gnatx switch
suppresses this information. This saves some space and may slightly
speed up compilation, but means that these tools cannot be used.