From: Javier Miranda Date: Wed, 14 Aug 2019 09:51:07 +0000 (+0000) Subject: [Ada] Fix a recent ACATS regression (c552001) X-Git-Tag: upstream/12.2.0~22538 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d2d56bbae32be728ff82191b6d328e3a8d7c1530;p=platform%2Fupstream%2Fgcc.git [Ada] Fix a recent ACATS regression (c552001) 2019-08-14 Javier Miranda gcc/ada/ * exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for arrays with bounds not known at compile time. From-SVN: r274450 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index e7bebe6..72528d3 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2019-08-14 Javier Miranda + + * exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for + arrays with bounds not known at compile time. + 2019-08-14 Ed Schonberg * sem_util.adb (New_Copy_Tree, Visit_Entity): A quantified diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index 8668188..174da6e 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -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;