From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1914) id BCFA8383582C; Wed, 11 May 2022 08:55:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BCFA8383582C MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Pierre-Marie de Rodat To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-297] [Ada] Reset Reachable field when mutating label into loop entity X-Act-Checkin: gcc X-Git-Author: Piotr Trojanek X-Git-Refname: refs/heads/master X-Git-Oldrev: fd932b612c3873b930b2e410fb5490a6b5252ccb X-Git-Newrev: 470fff3d8e48ede98f0a74a1beb9eafc7452f4b4 Message-Id: <20220511085513.BCFA8383582C@sourceware.org> Date: Wed, 11 May 2022 08:55:13 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 May 2022 08:55:13 -0000 https://gcc.gnu.org/g:470fff3d8e48ede98f0a74a1beb9eafc7452f4b4 commit r13-297-g470fff3d8e48ede98f0a74a1beb9eafc7452f4b4 Author: Piotr Trojanek Date: Fri Jan 28 18:12:18 2022 +0100 [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: --- gcc/ada/sem_ch5.adb | 1 + 1 file changed, 1 insertion(+) 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