[Ada] Prevent early exits without restoring a global variable
authorPiotr Trojanek <trojanek@adacore.com>
Tue, 1 Dec 2020 14:17:27 +0000 (15:17 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 17 Dec 2020 10:49:24 +0000 (05:49 -0500)
gcc/ada/

* sem_ch5.adb (Analyze_Case_Statement): Move modification of
Unblocked_Exit_Count after early return statements; fix typo in
comment.

gcc/ada/sem_ch5.adb

index 380d6017414d33b1e2be45bb91bc47138ec48b62..04fc9806c58adfb2664ddec7cbb74fc3de410cb5 100644 (file)
@@ -1494,7 +1494,6 @@ package body Sem_Ch5 is
    --  Start of processing for Analyze_Case_Statement
 
    begin
-      Unblocked_Exit_Count := 0;
       Analyze (Exp);
 
       --  The expression must be of any discrete type. In rare cases, the
@@ -1558,7 +1557,9 @@ package body Sem_Ch5 is
          Exp_Type := Exp_Btype;
       end if;
 
-      --  Call instantiated procedures to analyzwe and check discrete choices
+      --  Call instantiated procedures to analyze and check discrete choices
+
+      Unblocked_Exit_Count := 0;
 
       Analyze_Choices (Alternatives (N), Exp_Type);
       Check_Choices (N, Alternatives (N), Exp_Type, Others_Present);