From: Arnaud Charlet Date: Mon, 2 Mar 2015 09:26:39 +0000 (+0100) Subject: [multiple changes] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e99991618f2f64eda18a257b5d653bd0f5d91028;p=gcc.git [multiple changes] 2015-03-02 Gary Dismukes * einfo.adb, checks.adb: Minor reformatting and typo fixes. 2015-03-02 Ed Schonberg * 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 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index c5d1f234d08..daa095167dc 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,13 @@ +2015-03-02 Gary Dismukes + + * einfo.adb, checks.adb: Minor reformatting and typo fixes. + +2015-03-02 Ed Schonberg + + * 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 * exp_attr.adb (Expand_N_Attribute_Reference, case Input): When diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb index a3cfe790e27..759f94075a3 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 fd6ae376591..794ef19f3d9 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 f958c152b6e..2539033fce5 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;