[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 2 Mar 2015 09:26:39 +0000 (10:26 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 2 Mar 2015 09:26:39 +0000 (10:26 +0100)
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

gcc/ada/ChangeLog
gcc/ada/checks.adb
gcc/ada/einfo.adb
gcc/ada/exp_aggr.adb

index c5d1f234d08be83d99f35556a4eeb60a828d5f7a..daa095167dc62b7fce5cd5370eef4f8a25507f4e 100644 (file)
@@ -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
index a3cfe790e27ab0b33296957cff7d65b3a2773134..759f94075a3d0e1294848698531c3bfbfb61e4aa 100644 (file)
@@ -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)
index fd6ae3765913f3dfa0d812040f840575939fa262..794ef19f3d9950a2809d33127238dd6e7f56d54e 100644 (file)
@@ -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
index f958c152b6e820a400c9cf086da19e4e3968ba36..2539033fce5fc8b75c23c938c3a257451b1ea636 100644 (file)
@@ -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;