From e224e8e6b810702d4286384b2c9a43f5cd7b63fb Mon Sep 17 00:00:00 2001 From: charlet Date: Wed, 6 Feb 2013 10:49:34 +0000 Subject: [PATCH] 2013-02-06 Arnaud Charlet * gnat_rm.texi: Fix typos. 2013-02-06 Eric Botcazou * sem_prag.adb: Minor reformatting. 2013-02-06 Pascal Obry * s-tasloc.ads: Set System.Task_Lock to preelaborate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195800 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 8 ++++++++ gcc/ada/gnat_rm.texi | 37 ++++++++++++++++++++++++++++++++++--- gcc/ada/s-tasloc.ads | 4 ++-- gcc/ada/sem_prag.adb | 6 +++--- 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 + * sem_prag.adb: Minor reformatting. + +2013-02-06 Pascal Obry + + * s-tasloc.ads: Set System.Task_Lock to preelaborate. + +2013-02-06 Eric Botcazou + * 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; -- 2.7.4