aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/ada/validsw.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/ada/validsw.ads')
-rw-r--r--gcc-4.9/gcc/ada/validsw.ads164
1 files changed, 164 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/ada/validsw.ads b/gcc-4.9/gcc/ada/validsw.ads
new file mode 100644
index 000000000..db9ceb214
--- /dev/null
+++ b/gcc-4.9/gcc/ada/validsw.ads
@@ -0,0 +1,164 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
+-- --
+-- V A L I D S W --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2001-2012, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
+-- for more details. You should have received a copy of the GNU General --
+-- Public License distributed with GNAT; see file COPYING3. If not, go to --
+-- http://www.gnu.org/licenses for a complete copy of the license. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+-- This unit contains the routines used to handle setting of validity
+-- checking options.
+
+package Validsw is
+
+ -----------------------------
+ -- Validity Check Switches --
+ -----------------------------
+
+ -- The following flags determine the specific set of validity checks
+ -- to be made if validity checking is active (Validity_Checks_On = True)
+
+ -- See GNAT users guide for an exact description of each option. The letter
+ -- given in the comment is the letter used in the -gnatV compiler switch
+ -- or in the argument of a Validity_Checks pragma to activate the option.
+ -- The corresponding upper case letter deactivates the option.
+
+ 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
+ -- 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
+ -- 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
+ -- will be validity checked.
+
+ Validity_Check_In_Out_Params : Boolean := False;
+ -- Controls the validity checking of IN OUT parameters. If this switch
+ -- is set to True using -gnatVm or a 'm' in the argument of a pragma
+ -- Validity_Checks, then the initial value of all IN OUT parameters
+ -- will be checked at the point of call of a procedure. Note that the
+ -- character 'm' here stands for modified (parameters).
+
+ Validity_Check_In_Params : Boolean := False;
+ -- Controls the validity checking of IN parameters. If this switch is
+ -- set to True using -gnatVi or an 'i' in the argument of a pragma
+ -- Validity_Checks, then the initial value of all IN parameters
+ -- will be checked at the point of call of a procedure or function.
+
+ Validity_Check_Operands : Boolean := False;
+ -- Controls validity checking of operands. If this switch is set to
+ -- True using -gnatVo or an 'o' in the argument of a Validity_Checks
+ -- pragma, then operands of all predefined operators and attributes
+ -- will be validity checked.
+
+ Validity_Check_Parameters : Boolean := False;
+ -- This controls validity treatment for parameters within a subprogram.
+ -- Normally if validity checking is enabled for parameters on a call
+ -- (Validity_Check_In[_Out]_Params) then an assumption is made that the
+ -- parameter values are valid on entry and not checked again within a
+ -- procedure. Setting Validity_Check_Parameters removes this assumption
+ -- and ensures that no assumptions are made about parameters, so that
+ -- they will always be checked.
+
+ Validity_Check_Returns : Boolean := False;
+ -- Controls validity checking of returned values. If this switch is set
+ -- to True using -gnatVr, or an 'r' in the argument of a Validity_Checks
+ -- 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.
+
+ Validity_Check_Tests : Boolean := False;
+ -- Controls validity checking of tests that occur in conditions (i.e. the
+ -- tests in IF, WHILE, and EXIT statements, and in entry guards). If this
+ -- switch is set to True using -gnatVt, or a 't' in the argument of a
+ -- Validity_Checks pragma, then all such conditions are validity checked.
+
+ Force_Validity_Checks : Boolean := False;
+ -- Normally, operands that do not come from source (i.e. cases of expander
+ -- generated code) are not checked, if this flag is set True, then checking
+ -- of such operands is forced (if Validity_Check_Operands is set).
+
+ -----------------
+ -- Subprograms --
+ -----------------
+
+ procedure Set_Default_Validity_Check_Options;
+ -- This procedure is called to set the default validity checking options
+ -- that apply if no Validity_Check switches or pragma is given.
+
+ procedure Set_Validity_Check_Options
+ (Options : String;
+ OK : out Boolean;
+ Err_Col : out Natural);
+ -- This procedure is called to set the validity check options that
+ -- correspond to the characters in the given Options string. If
+ -- all options are valid, then Set_Default_Validity_Check_Options
+ -- is first called to set the defaults, and then the options in the
+ -- given string are set in an additive manner. If any invalid character
+ -- is found, then OK is False on exit, and Err_Col is the index in
+ -- in options of the bad character. If all options are valid, then
+ -- OK is True on return, and Err_Col is set to options'Last + 1.
+
+ procedure Set_Validity_Check_Options (Options : String);
+ -- Like the above procedure, except that the call is simply ignored if
+ -- there are any error conditions, this is for example appropriate for
+ -- calls where the string is known to be valid, e.g. because it was
+ -- obtained by Save_Validity_Check_Options.
+
+ procedure Reset_Validity_Check_Options;
+ -- Sets all validity check options to off
+
+ subtype Validity_Check_Options is String (1 .. 16);
+ -- Long enough string to hold all options from Save call below
+
+ procedure Save_Validity_Check_Options
+ (Options : out Validity_Check_Options);
+ -- Sets Options to represent current selection of options. This
+ -- set can be restored by first calling Reset_Validity_Check_Options,
+ -- and then calling Set_Validity_Check_Options with the Options string.
+
+end Validsw;