From: Piotr Trojanek Date: Fri, 28 Jan 2022 17:12:18 +0000 (+0100) Subject: [Ada] Reset Reachable field when mutating label into loop entity X-Git-Tag: basepoints/gcc-14~6910 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=470fff3d8e48ede98f0a74a1beb9eafc7452f4b4;p=thirdparty%2Fgcc.git [Ada] Reset Reachable field when mutating label into loop entity An entity flag Reachable now only applies to E_Label entities and needs to be explicitly reset when mutating labels into loop entities. Only needed to prevent cascaded errors when compiling a malicious ACATS test with -gnatq (try semantics, even if parse errors). Cleanup related to detection of uninitialized scalars with GOTO statements. gcc/ada/ * sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on proper label entities. --- diff --git a/gcc/ada/sem_ch5.adb b/gcc/ada/sem_ch5.adb index f8e6d0c3e30..a0f22060007 100644 --- a/gcc/ada/sem_ch5.adb +++ b/gcc/ada/sem_ch5.adb @@ -4012,6 +4012,7 @@ package body Sem_Ch5 is if Ekind (Ent) = E_Label then Reinit_Field_To_Zero (Ent, F_Enclosing_Scope); + Reinit_Field_To_Zero (Ent, F_Reachable); Mutate_Ekind (Ent, E_Loop); if Nkind (Parent (Ent)) = N_Implicit_Label_Declaration then