diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-01 11:25:46 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-01 11:25:46 +0200 |
commit | 6bb8853384b56d015a5366da8a7572d50ad3bfc7 (patch) | |
tree | 4ad614e2c8327baf70062e1362be345789d1a42d /gcc/ada/exp_ch13.adb | |
parent | 060a3f289f9c442174aea0599b5d609433f00952 (diff) | |
download | gcc-6bb8853384b56d015a5366da8a7572d50ad3bfc7.zip gcc-6bb8853384b56d015a5366da8a7572d50ad3bfc7.tar.gz gcc-6bb8853384b56d015a5366da8a7572d50ad3bfc7.tar.bz2 |
[multiple changes]
2011-08-01 Robert Dewar <dewar@adacore.com>
* aspects.ads (Boolean_Aspects): New subtype.
* exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
for derived types in cases where the parent type and derived type have
aspects.
* freeze.adb (Freeze_Entity): Fix problems in handling derived type
with aspects when parent type also has aspects.
(Freeze_Entity): Deal with delay of boolean aspects (must evaluate
boolean expression at this point).
* sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
accordance with final decision on the Ada 2012 feature.
* sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
2011-08-01 Matthew Heaney <heaney@adacore.com>
* a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
From-SVN: r177005
Diffstat (limited to 'gcc/ada/exp_ch13.adb')
-rw-r--r-- | gcc/ada/exp_ch13.adb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ada/exp_ch13.adb b/gcc/ada/exp_ch13.adb index f3de66c..47e39c4 100644 --- a/gcc/ada/exp_ch13.adb +++ b/gcc/ada/exp_ch13.adb @@ -232,9 +232,13 @@ package body Exp_Ch13 is Ritem : Node_Id; begin + -- Look for aspect specs for this entity + Ritem := First_Rep_Item (E); while Present (Ritem) loop - if Nkind (Ritem) = N_Aspect_Specification then + if Nkind (Ritem) = N_Aspect_Specification + and then Entity (Ritem) = E + then Aitem := Aspect_Rep_Item (Ritem); pragma Assert (Is_Delayed_Aspect (Aitem)); Insert_Before (N, Aitem); @@ -288,7 +292,7 @@ package body Exp_Ch13 is if Ekind (E_Scope) = E_Protected_Type or else (Ekind (E_Scope) = E_Task_Type - and then not Has_Completion (E_Scope)) + and then not Has_Completion (E_Scope)) then E_Scope := Scope (E_Scope); |