[Ada] Fix a recent ACATS regression (c552001)
2019-08-14 Javier Miranda <miranda@adacore.com> gcc/ada/ * exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for arrays with bounds not known at compile time. From-SVN: r274450
This commit is contained in:
parent
cc248146c1
commit
d2d56bbae3
|
@ -1,3 +1,8 @@
|
|||
2019-08-14 Javier Miranda <miranda@adacore.com>
|
||||
|
||||
* exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for
|
||||
arrays with bounds not known at compile time.
|
||||
|
||||
2019-08-14 Ed Schonberg <schonberg@adacore.com>
|
||||
|
||||
* sem_util.adb (New_Copy_Tree, Visit_Entity): A quantified
|
||||
|
|
|
@ -7707,15 +7707,36 @@ package body Exp_Aggr is
|
|||
P := Parent (P);
|
||||
end loop;
|
||||
|
||||
-- Cases where aggregates are supported by the CCG backend
|
||||
-- Check cases where aggregates are supported by the CCG backend
|
||||
|
||||
if Nkind (P) = N_Object_Declaration then
|
||||
return True;
|
||||
declare
|
||||
P_Typ : constant Entity_Id := Etype (Defining_Identifier (P));
|
||||
|
||||
elsif Nkind (P) = N_Qualified_Expression
|
||||
and then Nkind_In (Parent (P), N_Allocator, N_Object_Declaration)
|
||||
then
|
||||
return True;
|
||||
begin
|
||||
if Is_Record_Type (P_Typ) then
|
||||
return True;
|
||||
else
|
||||
return Compile_Time_Known_Bounds (P_Typ);
|
||||
end if;
|
||||
end;
|
||||
|
||||
elsif Nkind (P) = N_Qualified_Expression then
|
||||
if Nkind (Parent (P)) = N_Object_Declaration then
|
||||
declare
|
||||
P_Typ : constant Entity_Id :=
|
||||
Etype (Defining_Identifier (Parent (P)));
|
||||
begin
|
||||
if Is_Record_Type (P_Typ) then
|
||||
return True;
|
||||
else
|
||||
return Compile_Time_Known_Bounds (P_Typ);
|
||||
end if;
|
||||
end;
|
||||
|
||||
elsif Nkind (Parent (P)) = N_Allocator then
|
||||
return True;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
return False;
|
||||
|
|
Loading…
Reference in New Issue