2013-02-06 Eric Botcazou <ebotcazou@adacore.com>
+ * sem_prag.adb: Minor reformatting.
+
+2013-02-06 Pascal Obry <obry@adacore.com>
+
+ * s-tasloc.ads: Set System.Task_Lock to preelaborate.
+
+2013-02-06 Eric Botcazou <ebotcazou@adacore.com>
+
* snames.ads-tmpl (Name_Loop_Optimize, Name_No_Unroll,
Name_Unroll, Name_No_Vector, Name_Vector): New pragma-related
names.
* Pragma Finalize_Storage_Only::
* Pragma Float_Representation::
* Pragma Ident::
+* Pragma Implementation_Defined::
* Pragma Implemented::
* Pragma Implicit_Packing::
* Pragma Import_Exception::
* Pragma Priority_Specific_Dispatching::
* Pragma Profile (Ravenscar)::
* Pragma Profile (Restricted)::
+* Pragma Profile (Rational)::
* Pragma Psect_Object::
* Pragma Pure_Function::
* Pragma Relative_Deadline::
* Pragma Finalize_Storage_Only::
* Pragma Float_Representation::
* Pragma Ident::
+* Pragma Implementation_Defined::
* Pragma Implemented::
* Pragma Implicit_Packing::
* Pragma Import_Exception::
* Pragma Priority_Specific_Dispatching::
* Pragma Profile (Ravenscar)::
* Pragma Profile (Restricted)::
+* Pragma Profile (Rational)::
* Pragma Psect_Object::
* Pragma Pure_Function::
* Pragma Relative_Deadline::
maintain compatibility with this compiler, you should obey this length
limit.
+@node Pragma Implementation_Defined
+@unnumberedsec Pragma Implementation_Defined
+@findex Implementation_Defined
+@noindent
+Syntax:
+
+@smallexample @c ada
+pragma Implementation_Defined (local_NAME);
+@end smallexample
+
+@noindent
+This pragma marks a previously declared entioty as implementation-defined.
+For an overloaded entity, applies to the most recent homonym.
+
+@smallexample @c ada
+pragma Implementation_Defined;
+@end smallexample
+
+@noindent
+The form with no arguments appears anywhere within a scope, most
+typically a package spec, and indicates that all entities that are
+defined within the package spec are Implementation_Defined.
+
+This pragma is used within the GNAT runtime library to identify
+implementation-defined entities introduced in language-defined units,
+for the purpose of implementing the No_Implementation_Identifiers
+restriction.
+
@node Pragma Implemented
@unnumberedsec Pragma Implemented
@findex Implemented
compiles with the Rational APEX compiler, even when the code includes non-
conforming Ada constructs. The profile enables the following three pragmas:
-
@itemize @bullet
pragma Implicit_Packing;
pragma Overriding_Renamings;
@unnumberedsubsec No_Implementation_Identifiers
@findex No_Implementation_Identifiers
[RM 13.12.1] This restriction checks at compile time that no
-implementation-defined identifiers occur within language-defined
-packages.
+implementation-defined identifiers (marked with pragma Implementation_Defined)
+occur within language-defined packages.
@node No_Implementation_Pragmas
@unnumberedsubsec No_Implementation_Pragmas
-- OPTIMIZATION_HINT ::= No_Unroll | Unroll | No_Vector | Vector
when Pragma_Loop_Optimize => Loop_Optimize : declare
- Hint : Node_Id;
+ Hint : Node_Id;
begin
GNAT_Pragma;
Check_No_Identifiers;
Hint := First (Pragma_Argument_Associations (N));
while Present (Hint) loop
- Check_Arg_Is_One_Of (Hint, Name_No_Unroll, Name_Unroll,
- Name_No_Vector, Name_Vector);
+ Check_Arg_Is_One_Of (Hint,
+ Name_No_Unroll, Name_Unroll, Name_No_Vector, Name_Vector);
Next (Hint);
end loop;
Check_Loop_Pragma_Placement;