[Ada] Fix ineffective -gnatyN for separate compilation units
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 17 Sep 2019 08:02:46 +0000 (08:02 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 17 Sep 2019 08:02:46 +0000 (08:02 +0000)
This fixes a recent regression introduced in the machinery giving style
warnings: the -gnatyN switch no longer cancels an earlier -gnaty switch
for separate compilation units.

Running this command:

  gcc -c slib.adb -gnatyaAbcefhiIklmM25OnprStux -gnatyN

On the following sources:

package Slib is
   procedure I_Am_Short;
end Slib;

with Ada.Text_IO; use Ada.Text_IO;

package body Slib is
   --  have a long line here as well.
   procedure                I_Am_Short is               separate;
end Slib;

separate (Slib)

procedure I_Am_Short is
begin
    Put_Line (".......................................................");
end I_Am_Short;

Should execute silently.

2019-09-17  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* sem.adb (Do_Analyze): Save Style_Check_Max_Line_Length on
entry and restore it on exit instead of recomputing it.

From-SVN: r275794

gcc/ada/ChangeLog
gcc/ada/sem.adb

index 6ceb7aecfac210d539afcfc6fc22601847c9a5b6..8f4d57ee26457c1c46bdb5420f458ea990ffce21 100644 (file)
@@ -1,3 +1,8 @@
+2019-09-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem.adb (Do_Analyze): Save Style_Check_Max_Line_Length on
+       entry and restore it on exit instead of recomputing it.
+
 2019-09-17  Tom Tromey  <tromey@adacore.com>
 
        * exp_dbug.ads: Update character type comment.
index 2e9953189dd2396f217b282a12a2ccb4ee3a84f4..2967a18e05c773880efa0a7aad29a8f21718a356 100644 (file)
@@ -1360,7 +1360,8 @@ package body Sem is
          --  unconditionally, and has no restore mechanism, because it is
          --  intended as a lowest-level Pure package.
 
-         Saved_ML : constant Int := Style_Max_Line_Length;
+         Saved_ML  : constant Int     := Style_Max_Line_Length;
+         Saved_CML : constant Boolean := Style_Check_Max_Line_Length;
 
          List : Elist_Id;
 
@@ -1395,7 +1396,7 @@ package body Sem is
          Restore_Scope_Stack  (List);
          Restore_Ghost_Region (Saved_GM, Saved_IGR);
          Style_Max_Line_Length := Saved_ML;
-         Style_Check_Max_Line_Length := Style_Max_Line_Length /= 0;
+         Style_Check_Max_Line_Length := Saved_CML;
       end Do_Analyze;
 
       --  Local variables