diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-02 17:21:19 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-02 17:21:19 +0200 |
commit | 4fbad0ba4c093d5653e70679aba43193a20881e5 (patch) | |
tree | cdbed559d62d3196ef10ffa5c397108b184f5e08 /gcc/ada/restrict.ads | |
parent | 6ff6152d5046cab8da2873eb3a95bd85b7074194 (diff) | |
download | gcc-4fbad0ba4c093d5653e70679aba43193a20881e5.zip gcc-4fbad0ba4c093d5653e70679aba43193a20881e5.tar.gz gcc-4fbad0ba4c093d5653e70679aba43193a20881e5.tar.bz2 |
[multiple changes]
2011-08-02 Sergey Rybin <rybin@adacore.com>
* gnat_rm.texi: Ramification of pragma Eliminate documentation
- fix bugs in the description of Source_Trace;
- get rid of UNIT_NAME;
2011-08-02 Javier Miranda <miranda@adacore.com>
* exp_ch9.adb
(Build_Dispatching_Requeue): Adding support for VM targets
since we cannot directly reference the Tag entity.
* exp_sel.adb (Build_K): Adding support for VM targets.
(Build_S_Assignment): Adding support for VM targets.
* exp_disp.adb
(Default_Prim_Op_Position): In VM targets do not restrict availability
of predefined interface primitives to compiling in Ada 2005 mode.
(Is_Predefined_Interface_Primitive): In VM targets this service is not
restricted to compiling in Ada 2005 mode.
(Make_VM_TSD): Generate code that declares and initializes the OSD
record. Needed to support dispatching calls through synchronized
interfaces.
* exp_ch3.adb
(Make_Predefined_Primitive_Specs): Enable generation of predefined
primitives associated with synchronized interfaces.
(Make_Predefined_Primitive_Bodies): Enable generation of predefined
primitives associated with synchronized interfaces.
2011-08-02 Yannick Moy <moy@adacore.com>
* par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
statements hidden in SPARK if preceded by the HIDE directive
(Parse_Exception_Handlers): mark each exception handler in a sequence of
exception handlers as hidden in SPARK if preceded by the HIDE directive
* par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
if starting with the HIDE directive
* par-ch7.adb (P_Package): mark a package body hidden in SPARK if
starting with the HIDE directive; mark the declarations in a private
part as hidden in SPARK if the private part starts with the HIDE
directive
* restrict.adb, restrict.ads
(Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
(Is_In_Hidden_Part_In_SPARK): new function which returns whether its
argument node belongs to a part which is hidden in SPARK
(Check_SPARK_Restriction): do not issue violations on nodes in hidden
parts in SPARK; protect the possibly costly call to
Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
* scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
* scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
Accumulate_Token_Checksum_GNAT_5_03): add case for new token
Tok_SPARK_Hide.
(Scan): recognize special comment starting with '#' and followed by
SPARK keyword "hide" as a HIDE directive.
2011-08-02 Yannick Moy <moy@adacore.com>
* types.ads, erroutc.ads: Minor reformatting.
2011-08-02 Vincent Celier <celier@adacore.com>
* link.c: Add response file support for cross platforms.
From-SVN: r177179
Diffstat (limited to 'gcc/ada/restrict.ads')
-rw-r--r-- | gcc/ada/restrict.ads | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/ada/restrict.ads b/gcc/ada/restrict.ads index 46626c9..001d131 100644 --- a/gcc/ada/restrict.ads +++ b/gcc/ada/restrict.ads @@ -174,6 +174,30 @@ package Restrict is Table_Increment => 200, Table_Name => "Name_No_Dependence"); + ------------------------------- + -- SPARK Restriction Control -- + ------------------------------- + + -- SPARK HIDE directives allow turning off SPARK restriction for a + -- specified region of code, and the following tables are the data + -- structures used to keep track of these regions. + + -- The table contains pairs of source locations, the first being the start + -- location for hidden region, and the second being the end location. + + type SPARK_Hide_Entry is record + Start : Source_Ptr; + Stop : Source_Ptr; + end record; + + package SPARK_Hides is new Table.Table ( + Table_Component_Type => SPARK_Hide_Entry, + Table_Index_Type => Natural, + Table_Low_Bound => 1, + Table_Initial => 100, + Table_Increment => 200, + Table_Name => "SPARK Hides"); + ----------------- -- Subprograms -- ----------------- @@ -289,6 +313,10 @@ package Restrict is -- identifier, and if so returns the corresponding Restriction_Id -- value, otherwise returns Not_A_Restriction_Id. + function Is_In_Hidden_Part_In_SPARK (Loc : Source_Ptr) return Boolean; + -- Determine if given location is covered by a hidden region range in the + -- SPARK hides table. + function No_Exception_Handlers_Set return Boolean; -- Test to see if current restrictions settings specify that no exception -- handlers are present. This function is called by Gigi when it needs to @@ -334,6 +362,9 @@ package Restrict is -- of individual Restrictions pragmas). Returns True only if all the -- required restrictions are set. + procedure Set_Hidden_Part_In_SPARK (Loc1, Loc2 : Source_Ptr); + -- Insert a new hidden region range in the SPARK hides table + procedure Set_Profile_Restrictions (P : Profile_Name; N : Node_Id; |