From: Ed Schonberg Date: Wed, 7 Jul 2021 14:56:48 +0000 (-0400) Subject: [Ada] Crash on build of Initialization procedure for derived container X-Git-Tag: basepoints/gcc-13~4567 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dbea36c6bde7bd32ad645b0d472c5674e2db744d;p=thirdparty%2Fgcc.git [Ada] Crash on build of Initialization procedure for derived container gcc/ada/ * exp_ch7.adb (Make_Init_Call): Add guard to protect against a missing initialization procedure for a type. --- diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb index 33e4f3a4ab36..8d08ff12ed5f 100644 --- a/gcc/ada/exp_ch7.adb +++ b/gcc/ada/exp_ch7.adb @@ -9555,8 +9555,11 @@ package body Exp_Ch7 is -- If initialization procedure for an array of controlled objects is -- trivial, do not generate a useless call to it. + -- The initialization procedure may be missing altogether in the case + -- of a derived container whose components have trivial initialization. - if (Is_Array_Type (Utyp) and then Is_Trivial_Subprogram (Proc)) + if No (Proc) + or else (Is_Array_Type (Utyp) and then Is_Trivial_Subprogram (Proc)) or else (not Comes_From_Source (Proc) and then Present (Alias (Proc))