+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
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)
-- 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
-- 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
-- --
-- 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- --
-- 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;
--------------------
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;