From dbea36c6bde7bd32ad645b0d472c5674e2db744d Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Wed, 7 Jul 2021 10:56:48 -0400 Subject: [PATCH] [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. --- gcc/ada/exp_ch7.adb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb index 33e4f3a..8d08ff1 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)) -- 2.7.4