diff options
author | Piotr Trojanek <trojanek@adacore.com> | 2022-01-28 10:24:04 +0100 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2022-05-11 08:53:18 +0000 |
commit | c8482b1e77a0008986c4019d0d69993f80f03775 (patch) | |
tree | 067d9ed1beda8ddd5340981995b67979a96aa3dc | |
parent | c51ad37e2d79132bb78305f90322403303cf17c3 (diff) | |
download | gcc-c8482b1e77a0008986c4019d0d69993f80f03775.zip gcc-c8482b1e77a0008986c4019d0d69993f80f03775.tar.gz gcc-c8482b1e77a0008986c4019d0d69993f80f03775.tar.bz2 |
[Ada] Add guard for making only legal labels unreachable
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.
gcc/ada/
* sem_ch5.adb (Analyze_Statements): Only clear Reachable flag on
proper label entities.
-rw-r--r-- | gcc/ada/sem_ch5.adb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch5.adb b/gcc/ada/sem_ch5.adb index 81767d8..f8e6d0c 100644 --- 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; |