An entity flag Reachable now only applies to E_Label entities. We had an
appropriate guard for setting this flag, but not for clearing.

Cleanup related to detection of uninitialized scalars with GOTO
statements.

Tested on x86_64-pc-linux-gnu, committed on trunk

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
--- a/gcc/ada/sem_ch5.adb
+++ b/gcc/ada/sem_ch5.adb
@@ -4383,7 +4383,9 @@ package body Sem_Ch5 is
 
       S := First (L);
       while Present (S) loop
-         if Nkind (S) = N_Label then
+         if Nkind (S) = N_Label
+           and then Ekind (Entity (Identifier (S))) = E_Label
+         then
             Set_Reachable (Entity (Identifier (S)), False);
          end if;
 


Reply via email to