diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-21 11:45:44 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-21 11:45:44 +0000 |
commit | 64ee810cd3a8dc1369b3d3fd34096c1675c88cfb (patch) | |
tree | fb9bebfb673ba0712a1a7bf85196eb0f3f51c752 /gcc/ada/s-rident.ads | |
parent | 71e2a248ebee32870f49d4e7d9fb6d39f395f283 (diff) | |
download | gcc-64ee810cd3a8dc1369b3d3fd34096c1675c88cfb.tar.gz |
2011-11-21 Robert Dewar <dewar@adacore.com>
* frontend.adb (Frontend): Capture restrictions from config files
* lib-load.adb (Load_Unit): Save/set/restore restriction pragma
information
* lib-xref.adb (Generate_Reference): Fix handling of obsolescent
references. This was noticed during debugging, but it is not
known if it causes real bugs.
* restrict.ads, restrict.adb: New routines to save/set/restore
non-partition-wide restrictions.
* s-rident.ads: Comment changes for new handling of
No_Elaboration_Code
* sem.adb (Sem): Save/Set/Restore non-partition-wide restrictions
* sem_ch10.adb (Analyze_Compilation_Unit): Remove incomplete
attempt to save/restore non-partition-wide restrictions (now
this work is all done in Sem).
* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
Special handling for restriction No_Elaboration_Code.
2011-11-21 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Document new handling of restrictions pragmas.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181566 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-rident.ads')
-rw-r--r-- | gcc/ada/s-rident.ads | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ada/s-rident.ads b/gcc/ada/s-rident.ads index 1c306e34664..d067f3d7f4f 100644 --- a/gcc/ada/s-rident.ads +++ b/gcc/ada/s-rident.ads @@ -124,7 +124,15 @@ package System.Rident is No_Default_Initialization, -- GNAT - -- The following cases do not require consistency checking + -- The following cases do not require consistency checking and if used + -- as a configuration pragma within a specific unit, apply only to that + -- unit (e.g. if used in the package spec, do not apply to the body) + + -- Note: No_Elaboration_Code is handled specially. Like the other + -- non-partition-wide restrictions, it can only be set in a unit that + -- is part of the extended main source unit (body/spec/subunits). But + -- it is sticky, in that if it is found anywhere within any of these + -- units, it applies to all units in this extended main source. Immediate_Reclamation, -- (RM H.4(10)) No_Implementation_Aspect_Specifications, -- Ada 2012 AI-241 @@ -202,7 +210,7 @@ package System.Rident is -- Boolean restrictions that are not checked for partition consistency -- and that thus apply only to the current unit. Note that for these -- restrictions, the compiler does not apply restrictions found in - -- with'ed units, parent specs etc. to the main unit. + -- with'ed units, parent specs etc. to the main unit, and vice versa. subtype All_Parameter_Restrictions is Restriction_Id range |