aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGary Dismukes <dismukes@adacore.com>2008-08-22 16:56:20 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-08-22 16:56:20 +0200
commit9b4b0a1ac996ea8e38ff857fb171f3cd1f6a45a5 (patch)
tree34297d27a614b6cbc18b07fa7dbd5a391ecd90a2 /gcc
parentb7cc33a4ce1fc58044c6dcbdfa9394de122599d0 (diff)
downloadgcc-9b4b0a1ac996ea8e38ff857fb171f3cd1f6a45a5.zip
gcc-9b4b0a1ac996ea8e38ff857fb171f3cd1f6a45a5.tar.gz
gcc-9b4b0a1ac996ea8e38ff857fb171f3cd1f6a45a5.tar.bz2
exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the component expression copies rather than...
2008-08-22 Gary Dismukes <dismukes@adacore.com> * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the component expression copies rather than directly setting Etype and Is_Static_Expression. From-SVN: r139479
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/exp_aggr.adb11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index c81e401..df5617a 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -6441,13 +6441,13 @@ package body Exp_Aggr is
loop
Append_To
(Expressions (Agg), New_Copy (Expression (Expr)));
- Set_Etype (Last (Expressions (Agg)), Component_Type (Typ));
- -- Integer literals should always be marked as static
+ -- The copied expression must be analyzed and resolved.
+ -- Besides setting the type, this ensures that static
+ -- expressions are appropriately marked as such.
- if Nkind (Expression (Expr)) = N_Integer_Literal then
- Set_Is_Static_Expression (Last (Expressions (Agg)));
- end if;
+ Analyze_And_Resolve
+ (Last (Expressions (Agg)), Component_Type (Typ));
end loop;
Set_Aggregate_Bounds (Agg, Bounds);
@@ -6464,4 +6464,5 @@ package body Exp_Aggr is
return False;
end if;
end Static_Array_Aggregate;
+
end Exp_Aggr;