[Ada] Clean up support for validity checks in the compiler
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 4 Jul 2019 08:07:19 +0000 (08:07 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 4 Jul 2019 08:07:19 +0000 (08:07 +0000)
This removes old code in the parser that serves no useful purpose and
fixes minor issues in the Validsw package.  No functional changes.

2019-07-04  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
set the validity settings in CodePeer mode.
* par-load.adb (Load): Remove all code dealing with validity
settings.
* validsw.ads (Validity_Check_Copies): Alphabetize.
* validsw.adb (Reset_Validity_Check_Options): Set all options to
off.
(Save_Validity_Check_Options): Save all options.

From-SVN: r273071

gcc/ada/ChangeLog
gcc/ada/gnat1drv.adb
gcc/ada/par-load.adb
gcc/ada/validsw.adb
gcc/ada/validsw.ads

index 65aabe5ea10804daa7436bb2beb1e3394d31d5d0..3ea8e477e8a534c100eeff2d9f645927de8cba22 100644 (file)
@@ -1,3 +1,14 @@
+2019-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
+       set the validity settings in CodePeer mode.
+       * par-load.adb (Load): Remove all code dealing with validity
+       settings.
+       * validsw.ads (Validity_Check_Copies): Alphabetize.
+       * validsw.adb (Reset_Validity_Check_Options): Set all options to
+       off.
+       (Save_Validity_Check_Options): Save all options.
+
 2019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>
 
        * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
index 1f5817aca7105c871a4a3b435d4206787844369f..ded754d55ae663917b009c09eb3ce655544f093a 100644 (file)
@@ -379,8 +379,7 @@ procedure Gnat1drv is
          --  enough useful info.
 
          Reset_Validity_Check_Options;
-         Validity_Check_Default       := True;
-         Validity_Check_Copies        := True;
+         Set_Validity_Check_Options ("dc");
          Check_Validity_Of_Parameters := False;
 
          --  Turn off style check options and ignore any style check pragmas
index cb95500b1eefe01b76580dbe0098c456de13327d..70bc5cb6e4f26426704927e7c2dbc3e11a081460 100644 (file)
@@ -36,7 +36,6 @@ with Uname;    use Uname;
 with Osint;    use Osint;
 with Sinput.L; use Sinput.L;
 with Stylesw;  use Stylesw;
-with Validsw;  use Validsw;
 
 with GNAT.Spelling_Checker; use GNAT.Spelling_Checker;
 
@@ -61,10 +60,6 @@ procedure Load is
    Save_Style_Checks : Style_Check_Options;
    --  Save style check so it can be restored later
 
-   Save_Validity_Check  : Boolean;
-   Save_Validity_Checks : Validity_Check_Options;
-   --  Save validity check so it can be restored later
-
    With_Cunit : Node_Id;
    --  Compilation unit node for withed unit
 
@@ -134,9 +129,6 @@ begin
    Save_Style_Check_Options (Save_Style_Checks);
    Save_Style_Check := Opt.Style_Check;
 
-   Save_Validity_Check_Options (Save_Validity_Checks);
-   Save_Validity_Check := Opt.Validity_Checks_On;
-
    --  If main unit, set Main_Unit_Entity (this will get overwritten if
    --  the main unit has a separate spec, that happens later on in Load)
 
@@ -318,11 +310,10 @@ begin
      or else Nkind (Unit (Curunit)) in N_Generic_Instantiation
      or else Nkind (Unit (Curunit)) in N_Renaming_Declaration
    then
-      --  Turn style and validity checks off for parent unit
+      --  Turn style checks off for parent unit
 
       if not GNAT_Mode then
          Reset_Style_Check_Options;
-         Reset_Validity_Check_Options;
       end if;
 
       Spec_Name := Get_Parent_Spec_Name (Unit_Name (Cur_Unum));
@@ -356,11 +347,10 @@ begin
       end if;
    end if;
 
-   --  Now we load with'ed units, with style/validity checks turned off
+   --  Now we load with'ed units, with style checks turned off
 
    if not GNAT_Mode then
       Reset_Style_Check_Options;
-      Reset_Validity_Check_Options;
    end if;
 
    --  Load the context items in two rounds: the first round handles normal
@@ -470,6 +460,4 @@ begin
 
    Set_Style_Check_Options (Save_Style_Checks);
    Opt.Style_Check := Save_Style_Check;
-   Set_Validity_Check_Options (Save_Validity_Checks);
-   Opt.Validity_Checks_On := Save_Validity_Check;
 end Load;
index d08299d3e2314c43ece115368b2f32b15f3bab04..ae155c39f2669f3a3cfb83a289d5a01603c103a0 100644 (file)
@@ -36,11 +36,12 @@ package body Validsw is
    begin
       Validity_Check_Components     := False;
       Validity_Check_Copies         := False;
-      Validity_Check_Default        := True;
+      Validity_Check_Default        := False;
       Validity_Check_Floating_Point := False;
       Validity_Check_In_Out_Params  := False;
       Validity_Check_In_Params      := False;
       Validity_Check_Operands       := False;
+      Validity_Check_Parameters     := False;
       Validity_Check_Returns        := False;
       Validity_Check_Subscripts     := False;
       Validity_Check_Tests          := False;
@@ -73,14 +74,14 @@ package body Validsw is
          Options (K) := ' ';
       end loop;
 
-      Add ('n', not Validity_Check_Default);
-
-      Add ('c', Validity_Check_Copies);
       Add ('e', Validity_Check_Components);
+      Add ('c', Validity_Check_Copies);
+      Add ('d', Validity_Check_Default);
       Add ('f', Validity_Check_Floating_Point);
       Add ('i', Validity_Check_In_Params);
       Add ('m', Validity_Check_In_Out_Params);
       Add ('o', Validity_Check_Operands);
+      Add ('p', Validity_Check_Parameters);
       Add ('r', Validity_Check_Returns);
       Add ('s', Validity_Check_Subscripts);
       Add ('t', Validity_Check_Tests);
index 2dadc5c50981645b28ad226dba629db6e43acb7c..5197bdf34098ffca06684a98f49ddec0b53382db 100644 (file)
@@ -40,33 +40,33 @@ package Validsw is
    --  or in the argument of a Validity_Checks pragma to activate the option.
    --  The corresponding upper case letter deactivates the option.
 
+   Validity_Check_Components : Boolean := False;
+   --  Controls validity checking for assignment to elementary components of
+   --  records. If this switch is set to True using -gnatVe, or an 'e' in the
+   --  argument of Validity_Checks pragma, then the right-hand side of an
+   --  assignment to such a component is checked for validity.
+
    Validity_Check_Copies : Boolean := False;
    --  Controls the validity checking of copies. If this switch is set to
-   --  true using -gnatVc, or a 'c' in the argument of a Validity_Checks
-   --  pragma, then the right side of assignments and also initializing
+   --  True using -gnatVc, or a 'c' in the argument of a Validity_Checks
+   --  pragma, then the right-hand side of assignments and also initializing
    --  expressions in object declarations are checked for validity.
 
-   Validity_Check_Components : Boolean := False;
-   --  Controls validity checking for assignment to elementary components of
-   --  records. If this switch is set true using -gnatVe, or an 'e' in the
-   --  argument of Validity_Checks pragma, then the right hand of an assignment
-   --  to such a component is checked for validity.
-
    Validity_Check_Default : Boolean := True;
    --  Controls default (reference manual) validity checking. If this switch is
    --  set to True using -gnatVd or a 'd' in the argument of a Validity_Checks
-   --  pragma (or the initial default value is used, set True), then left side
-   --  subscripts and case statement arguments are checked for validity. This
-   --  switch is also set by default if no -gnatV switch is used and no
+   --  pragma (or the initial default value is used, set True), then left-hand
+   --  side subscripts and case statement arguments are checked for validity.
+   --  This switch is also set by default if no -gnatV switch is used and no
    --  Validity_Checks pragma is processed.
 
    Validity_Check_Floating_Point : Boolean := False;
-   --  Normally validity checking applies only to discrete values (integer
-   --  and enumeration types). If this switch is set to True using -gnatVf
-   --  or an 'f' in the argument of a Validity_Checks pragma, then floating-
-   --  point values are also checked. The context in which such checks
-   --  occur depends on other flags, e.g. if Validity_Check_Copies is also
-   --  set then floating-point values on the right side of an assignment
+   --  Normally validity checking applies only to discrete values (integer and
+   --  enumeration types). If this switch is set to True using -gnatVf or an
+   --  'f' in the argument of a Validity_Checks pragma, then floating-point
+   --  values are also checked. If the context in which such checks occur
+   --  depends on other flags, e.g. if Validity_Check_Copies is also set,
+   --  then floating-point values on the right-hand side of an assignment
    --  will be validity checked.
 
    Validity_Check_In_Out_Params : Boolean := False;
@@ -103,13 +103,13 @@ package Validsw is
    --  pragma, then the expression in a RETURN statement is validity checked.
 
    Validity_Check_Subscripts : Boolean := False;
-   --  Controls validity checking of subscripts. If this switch is set to
-   --  True using -gnatVs, or an 's' in the argument of a Validity_Checks
-   --  pragma, then all subscripts are checked for validity. Note that left
-   --  side subscript checking is controlled also by Validity_Check_Default.
-   --  If Validity_Check_Subscripts is True, then all subscripts are checked,
-   --  otherwise if Validity_Check_Default is True, then left side subscripts
-   --  are checked, otherwise no subscripts are checked.
+   --  Controls validity checking of subscripts. If this switch is set to True
+   --  using -gnatVs, or an 's' in the argument of a Validity_Checks pragma,
+   --  then all subscripts are checked for validity. Note that left-hand side
+   --  subscript checking is also controlled by Validity_Check_Default. If
+   --  Validity_Check_Subscripts is True, then all subscripts are checked,
+   --  otherwise if Validity_Check_Default is True, then left-hand side
+   --  subscripts are checked; otherwise no subscripts are checked.
 
    Validity_Check_Tests : Boolean := False;
    --  Controls validity checking of tests that occur in conditions (i.e. the