diff options
-rw-r--r-- | gcc/ada/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/ada/checks.adb | 2 | ||||
-rw-r--r-- | gcc/ada/einfo.adb | 4 | ||||
-rw-r--r-- | gcc/ada/exp_aggr.adb | 23 |
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; |