summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_aggr.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-08-06 08:17:25 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2012-08-06 08:17:25 +0000
commit825c35988f4318028a74bf0ce1710e9a3d3d822a (patch)
treea045f0edbeb7f8290f764a4308dc6a58d30da10d /gcc/ada/exp_aggr.adb
parent3f3f8d796bbcbacbfd9b9cf760774c2a7ec26ad4 (diff)
downloadgcc-825c35988f4318028a74bf0ce1710e9a3d3d822a.tar.gz
2012-08-06 Geert Bosch <bosch@adacore.com>
* a-ngelfu.adb: Change obsolete comment that this is a non-strict implementation. 2012-08-06 Steve Baird <baird@adacore.com> * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): If CodePeer_Mode = True then omit exception handlers for finalization calls 2012-08-06 Robert Dewar <dewar@adacore.com> * exp_aggr.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190165 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_aggr.adb')
-rw-r--r--gcc/ada/exp_aggr.adb5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index 98070a9a2df..294a7d82ab2 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -3737,6 +3737,9 @@ package body Exp_Aggr is
Analyze_And_Resolve (N, Typ);
end if;
+ -- Is Static_Eaboration_Desired has been specified, diagnose aggregates
+ -- that will still require initialization code.
+
if (Ekind (Current_Scope) = E_Package
and then Static_Elaboration_Desired (Current_Scope))
and then Nkind (Parent (N)) = N_Object_Declaration
@@ -3745,7 +3748,7 @@ package body Exp_Aggr is
Expr : Node_Id;
begin
- if Present (Expressions (N)) then
+ if Nkind (N) = N_Aggregate and then Present (Expressions (N)) then
Expr := First (Expressions (N));
while Present (Expr) loop
if Nkind_In (Expr, N_Integer_Literal, N_Real_Literal)