]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Fix scope of semantic style_check pragmas
authorViljar Indus <indus@adacore.com>
Fri, 6 Oct 2023 10:12:29 +0000 (13:12 +0300)
committerMarc Poulhiès <poulhies@adacore.com>
Tue, 7 Nov 2023 09:15:01 +0000 (10:15 +0100)
Restore the original state of Style_Check pragmas before analyzing
each compilation unit to avoid Style_Check pragmas from unit affecting
the style checks of a different unit.

gcc/ada/

* sem_ch10.adb: (Analyze_Compilation_Unit): Restore the orignal
state of style check pragmas at the end of the analysis.

gcc/ada/sem_ch10.adb

index ba4beae285160c40f3aa0371d92eefff993277d8..90d2f3c6c747908c99e2c26bedc2f1173f73f369 100644 (file)
@@ -638,6 +638,7 @@ package body Sem_Ch10 is
       Par_Spec_Name : Unit_Name_Type;
       Spec_Id       : Entity_Id;
       Unum          : Unit_Number_Type;
+      Options       : Style_Check_Options;
 
    --  Start of processing for Analyze_Compilation_Unit
 
@@ -717,6 +718,11 @@ package body Sem_Ch10 is
          Set_Context_Pending (N);
       end if;
 
+      --  Store the style check options before analyzing context pragmas that
+      --  might change them for this compilation unit.
+
+      Save_Style_Check_Options (Options);
+
       Analyze_Context (N);
 
       Set_Context_Pending (N, False);
@@ -1395,6 +1401,10 @@ package body Sem_Ch10 is
          Pop_Scope;
       end if;
 
+      --  Finally restore all the original style check options
+
+      Set_Style_Check_Options (Options);
+
       --  If No_Elaboration_Code_All was encountered, this is where we do the
       --  transitive test of with'ed units to make sure they have the aspect.
       --  This is delayed till the end of analyzing the compilation unit to