aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2015-03-02 10:26:39 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2015-03-02 10:26:39 +0100
commite99991618f2f64eda18a257b5d653bd0f5d91028 (patch)
tree838d7fdc77b335b755a615851de2e00a2afecea0 /gcc/ada
parentc9d70ab181e531bfe069c42aeaa996ec96bca02e (diff)
downloadgcc-e99991618f2f64eda18a257b5d653bd0f5d91028.zip
gcc-e99991618f2f64eda18a257b5d653bd0f5d91028.tar.gz
gcc-e99991618f2f64eda18a257b5d653bd0f5d91028.tar.bz2
[multiple changes]
2015-03-02 Gary Dismukes <dismukes@adacore.com> * einfo.adb, checks.adb: Minor reformatting and typo fixes. 2015-03-02 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Get_Assoc_Expr): If the Default_Component_Value is defined for the array type, use it instead of a Default_Value specified for the component type itself. From-SVN: r221102
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog10
-rw-r--r--gcc/ada/checks.adb2
-rw-r--r--gcc/ada/einfo.adb4
-rw-r--r--gcc/ada/exp_aggr.adb23
4 files changed, 29 insertions, 10 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c5d1f23..daa0951 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,13 @@
+2015-03-02 Gary Dismukes <dismukes@adacore.com>
+
+ * einfo.adb, checks.adb: Minor reformatting and typo fixes.
+
+2015-03-02 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_aggr.adb (Get_Assoc_Expr): If the Default_Component_Value
+ is defined for the array type, use it instead of a Default_Value
+ specified for the component type itself.
+
2015-03-02 Thomas Quinot <quinot@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, case Input): When
diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb
index a3cfe79..759f940 100644
--- a/gcc/ada/checks.adb
+++ b/gcc/ada/checks.adb
@@ -2576,7 +2576,7 @@ package body Checks is
or else Is_Formal_Subprogram (Subp)
- -- Do not process imported subprograms since pre and post conditions
+ -- Do not process imported subprograms since pre- and postconditions
-- are never verified on routines coming from a different language.
or else Is_Imported (Subp)
diff --git a/gcc/ada/einfo.adb b/gcc/ada/einfo.adb
index fd6ae37..794ef19 100644
--- a/gcc/ada/einfo.adb
+++ b/gcc/ada/einfo.adb
@@ -6708,7 +6708,7 @@ package body Einfo is
-- The first/next entity chain of a generic subprogram contains all
-- generic formal parameters, followed by the formal parameters. Go
- -- directly to the paramters by skipping the formal part.
+ -- directly to the parameters by skipping the formal part.
if Is_Generic_Subprogram (Id) then
while Present (Formal) and then not Is_Formal (Formal) loop
@@ -6747,7 +6747,7 @@ package body Einfo is
-- The first/next entity chain of a generic subprogram contains all
-- generic formal parameters, followed by the formal parameters. Go
- -- directly to the paramters by skipping the formal part.
+ -- directly to the parameters by skipping the formal part.
if Is_Generic_Subprogram (Id) then
while Present (Formal) and then not Is_Formal (Formal) loop
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index f958c152..2539033 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2014, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2015, Free Software Foundation, Inc. --
-- --
-- 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- --
@@ -786,8 +786,10 @@ package body Exp_Aggr is
-- Otherwise we call Build_Code recursively
function Get_Assoc_Expr (Assoc : Node_Id) return Node_Id;
- -- For an association with a box, use default aspect of component type
- -- if present, to initialize one or more components.
+ -- For an association with a box, use value given by aspect
+ -- Default_Component_Value of array type if specified, else use
+ -- value given by aspect Default_Value for component type itself
+ -- if specified, else return Empty.
function Local_Compile_Time_Known_Value (E : Node_Id) return Boolean;
function Local_Expr_Value (E : Node_Id) return Uint;
@@ -1533,12 +1535,19 @@ package body Exp_Aggr is
--------------------
function Get_Assoc_Expr (Assoc : Node_Id) return Node_Id is
+ Typ : constant Entity_Id := Base_Type (Etype (N));
+
begin
if Box_Present (Assoc) then
- if Is_Scalar_Type (Ctype)
- and then Present (Default_Aspect_Value (Ctype))
- then
- return Default_Aspect_Value (Ctype);
+ if Is_Scalar_Type (Ctype) then
+ if Present (Default_Aspect_Component_Value (Typ)) then
+ return Default_Aspect_Component_Value (Typ);
+
+ elsif Present (Default_Aspect_Value (Ctype)) then
+ return Default_Aspect_Value (Ctype);
+ else
+ return Empty;
+ end if;
else
return Empty;
end if;