From: Javier Miranda Date: Wed, 30 Aug 2023 19:19:13 +0000 (+0000) Subject: ada: Assertion failure on expansion of record with invariant X-Git-Tag: basepoints/gcc-15~6151 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa16e3229499f4c7c5375bd1bc4b713fb1d2e30e;p=thirdparty%2Fgcc.git ada: Assertion failure on expansion of record with invariant gcc/ada/ * exp_util.adb (Process_Record_Component): Adjust assertion on the availablity of the invariant procedure; required because the invariant procedure is built by the expander, and hence it is not available compiling generic units or when the sources have errors, since expansion is then disabled. --- diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index 0dafa1cd6be8..5cfadc5245e0 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -3324,7 +3324,13 @@ package body Exp_Util is -- if it has invariants of its own or inherits class-wide -- invariants from parent or interface types. - pragma Assert (Present (Proc_Id)); + -- However, given that the invariant procedure is built by + -- the expander, it is not available compiling generic units + -- or when the sources have errors, since expansion is then + -- disabled. + + pragma Assert (Present (Proc_Id) + or else not Expander_Active); -- Generate: -- Invariant (T (_object).); @@ -3333,7 +3339,9 @@ package body Exp_Util is -- assertions are disabled or Assertion_Policy Ignore is in -- effect. - if not Has_Null_Body (Proc_Id) then + if Present (Proc_Id) + and then not Has_Null_Body (Proc_Id) + then Append_New_To (Comp_Checks, Make_Procedure_Call_Statement (Loc, Name =>