Obj_Base := Obj_Base +
Iface_Table.Ifaces_Table (Id).Offset_To_Top_Value;
- -- Otherwise we call the function generated by the expander
- -- to provide us with this value
+ -- Otherwise call the function generated by the expander to
+ -- provide the value.
else
Obj_Base := Obj_Base +
-- Handle library-level tagged types
else
- -- Make a copy of the string representing the external tag with
- -- a null at the end.
+ -- Make NUL-terminated copy of external tag string
Ext_Copy (External'Range) := External;
- Ext_Copy (Ext_Copy'Last) := ASCII.NUL;
+ Ext_Copy (Ext_Copy'Last) := ASCII.NUL;
Res := External_Tag_HTable.Get (Ext_Copy'Address);
end if;
@subsection Integrated Preprocessing
@noindent
-GNAT sources may be preprocessed immediately before compilation; the actual
+GNAT sources may be preprocessed immediately before compilation.
+In this case, the actual
text of the source is not the text of the source file, but is derived from it
through a process called preprocessing. Integrated preprocessing is specified
through switches @option{-gnatep} and/or @option{-gnateD}. @option{-gnatep}
indicates, through a text file, the preprocessing data to be used.
@option{-gnateD} specifies or modifies the values of preprocessing symbol.
+@noindent
+Note that when integrated preprocessing is used, the output from the
+preprocessor is not written to any external file. Instead it is passed
+internally to the compiler. If you need to preserve the result of
+preprocessing in a file, then you should use @command{gnatprep}
+to perform the desired preprocessing in stand-alone mode.
+
@noindent
It is recommended that @command{gnatmake} switch ^-s^/SWITCH_CHECK^ should be
used when Integrated Preprocessing is used. The reason is that preprocessing
Analyze_Expression (L);
Analyze_Expression (R);
- -- If the entity is present, the node appears in an instance,
- -- and denotes a predefined concatenation operation. The resulting
- -- type is obtained from the arguments when possible. If the arguments
- -- are aggregates, the array type and the concatenation type must be
+ -- If the entity is present, the node appears in an instance, and
+ -- denotes a predefined concatenation operation. The resulting type is
+ -- obtained from the arguments when possible. If the arguments are
+ -- aggregates, the array type and the concatenation type must be
-- visible.
if Present (Op_Id) then
-- Both these structures are initialized at the beginning of every complete
-- context.
- -- Corresponding to the set of interpretation for a given overloadable
+ -- Corresponding to the set of interpretations for a given overloadable
-- identifier, there is a set of possible types corresponding to the types
-- that the overloaded call may return. We keep a 1-to-1 correspondence
-- between interpretations and types: for user-defined subprograms the