aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2013-02-06 11:49:34 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2013-02-06 11:49:34 +0100
commitf403355afb84e58c73c83329b18bac3bc24f336c (patch)
treee869984ad6c16eaaeb7517b98fd87ac9eaa153ea /gcc/ada
parenta75ea2953b2cc328db203807fd769f17bcd4c476 (diff)
downloadgcc-f403355afb84e58c73c83329b18bac3bc24f336c.zip
gcc-f403355afb84e58c73c83329b18bac3bc24f336c.tar.gz
gcc-f403355afb84e58c73c83329b18bac3bc24f336c.tar.bz2
[multiple changes]
2013-02-06 Arnaud Charlet <charlet@adacore.com> * gnat_rm.texi: Fix typos. 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. From-SVN: r195800
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog8
-rw-r--r--gcc/ada/gnat_rm.texi37
-rw-r--r--gcc/ada/s-tasloc.ads4
-rw-r--r--gcc/ada/sem_prag.adb6
4 files changed, 47 insertions, 8 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index af53653..6cb9d04 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,13 @@
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.
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index 1c250d0..27f94c1 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -151,6 +151,7 @@ Implementation Defined Pragmas
* Pragma Finalize_Storage_Only::
* Pragma Float_Representation::
* Pragma Ident::
+* Pragma Implementation_Defined::
* Pragma Implemented::
* Pragma Implicit_Packing::
* Pragma Import_Exception::
@@ -198,6 +199,7 @@ Implementation Defined Pragmas
* Pragma Priority_Specific_Dispatching::
* Pragma Profile (Ravenscar)::
* Pragma Profile (Restricted)::
+* Pragma Profile (Rational)::
* Pragma Psect_Object::
* Pragma Pure_Function::
* Pragma Relative_Deadline::
@@ -901,6 +903,7 @@ consideration, the use of these pragmas should be minimized.
* Pragma Finalize_Storage_Only::
* Pragma Float_Representation::
* Pragma Ident::
+* Pragma Implementation_Defined::
* Pragma Implemented::
* Pragma Implicit_Packing::
* Pragma Import_Exception::
@@ -948,6 +951,7 @@ consideration, the use of these pragmas should be minimized.
* Pragma Priority_Specific_Dispatching::
* Pragma Profile (Ravenscar)::
* Pragma Profile (Restricted)::
+* Pragma Profile (Rational)::
* Pragma Psect_Object::
* Pragma Pure_Function::
* Pragma Relative_Deadline::
@@ -2879,6 +2883,34 @@ maximum allowed length is 31 characters, so if it is important to
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
@@ -4932,7 +4964,6 @@ The Rational profile is intended to facilitate porting legacy code that
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;
@@ -8298,8 +8329,8 @@ Manual.
@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
diff --git a/gcc/ada/s-tasloc.ads b/gcc/ada/s-tasloc.ads
index 9db7564..5e370bb 100644
--- a/gcc/ada/s-tasloc.ads
+++ b/gcc/ada/s-tasloc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2010, AdaCore --
+-- Copyright (C) 1998-2013, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -44,7 +44,7 @@
-- a renaming of this package in GNAT.Task_Lock (file g-tasloc.ads).
package System.Task_Lock is
- pragma Elaborate_Body;
+ pragma Preelaborate;
procedure Lock;
pragma Inline (Lock);
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 2a67b85..d842f1b 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -12379,7 +12379,7 @@ package body Sem_Prag is
-- OPTIMIZATION_HINT ::= No_Unroll | Unroll | No_Vector | Vector
when Pragma_Loop_Optimize => Loop_Optimize : declare
- Hint : Node_Id;
+ Hint : Node_Id;
begin
GNAT_Pragma;
@@ -12387,8 +12387,8 @@ package body Sem_Prag is
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;