diff options
author | Hristian Kirtchev <kirtchev@adacore.com> | 2013-07-05 10:57:42 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-07-05 12:57:42 +0200 |
commit | 1c6269d3f574465892c1a100dfda81f4e3dba1ab (patch) | |
tree | d9d0f449322c41f0b8dc1b336a7e557d2d66170d /gcc/ada/einfo.ads | |
parent | 9fc154c8cc66d8ab7baca7d80573ecd0f64c3a10 (diff) | |
download | gcc-1c6269d3f574465892c1a100dfda81f4e3dba1ab.tar.gz |
aspects.adb: Add an entry for SPARK_Mode in table Canonical_Aspect.
2013-07-05 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb: Add an entry for SPARK_Mode in table Canonical_Aspect.
* aspects.ads: Add an entry for SPARK_Mode in tables Aspect_Id,
Aspect_Argument, Aspect_Names.
* atree.adb (Node32): New routine.
(Set_Node32): New routine.
* atree.ads (Node32): New routine.
(Set_Node32): New routine.
* einfo.adb: Node32 is now used as SPARK_Mode_Pragmas.
(Set_SPARK_Mode_Pragmas): New routine.
(SPARK_Mode_Pragmas): New routine.
(Write_Field32_Name): Add and entry for SPARK_Modes.
* einfo.ads: Add attribute SPARK_Mode_Pragmas along with usage
in various entities.
(Set_SPARK_Mode_Pragmas): New routine and
pragma Inline.
(SPARK_Mode_Pragmas): New routine and pragma Inline.
* gnat_rm.texi: Add sections explaining the syntax and semantics
of aspect/pragma SPARK_Mode.
* gnat_ugn.texi: Add pragma SPARK_Mode to the list of
configuration pragmas.
* lib.adb (Set_SPARK_Mode_Pragma): New routine.
(SPARK_Mode_Pragma): New routine.
* lib.ads: Alphabetize the comments on fields of record
Unit_Record. Add new field SPARK_Mode_Pragma along with
comment on its usage. Update the layout of record Unit_Record.
(Set_SPARK_Mode_Pragma): New routine and pragma Inline.
(SPARK_Mode_Pragma): New routine and pragma Inline.
* lib-load.adb (Create_Dummy_Package_Unit): Initialize
field SPARK_Mode_Pragma.
(Load_Main_Source): Initialize field SPARK_Mode_Pragma.
(Load_Unit): Initialize field SPARK_Mode_Pragma.
* lib-writ.adb (Add_Preprocessing_Dependency): Initialize field
SPARK_Mode_Pragma.
(Ensure_System_Dependency): Initialize field SPARK_Mode_Pragma.
* opt.ads: Alphabetize verification flags. Store the
compilation-wide SPARK mode in variable Global_SPARK_Mode.
* par-prag.adb: Pragma SPARK_Mode does not need special processing
by the parser.
* sem_ch13.adb (Analyze_Aspect_Specifications): Convert aspect
SPARK_Mode into a pragma.
(Check_Aspect_At_Freeze_Point): Aspect SPARK_Mode does not need
delayed processing.
* sem_prag.adb: Add an entry for SPARK_Mode in table Sig_Flags.
(Analyze_Pragma): Add processing for pragma SPARK_Mode.
(Get_SPARK_Mode_Id): New routine.
(Is_Elaboration_SPARK_Mode): New routine.
(Is_Private_SPARK_Mode): New routine.
* sem_prag.ads (Get_SPARK_Mode_Id): New routine.
(Is_Elaboration_SPARK_Mode): New routine.
(Is_Private_SPARK_Mode): New routine.
* sinfo.ads: Update the comment on the usage of field Next_Pragma.
* snames.ads-tmpl: Add new predefined name for SPARK_Mode and
Auto. Add new pragma Id for SPARK_Mode.
* types.ads: Add new type SPARK_Mode_Id.
From-SVN: r200711
Diffstat (limited to 'gcc/ada/einfo.ads')
-rw-r--r-- | gcc/ada/einfo.ads | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads index a3d05d8c8a0..0df28805618 100644 --- a/gcc/ada/einfo.ads +++ b/gcc/ada/einfo.ads @@ -3757,6 +3757,11 @@ package Einfo is -- Small of the type, either as given in a representation clause, or -- as computed (as a power of two) by the compiler. +-- SPARK_Mode_Pragmas (Node32) +-- Present in the entities of subprogram specs and bodies as well as in +-- package specs and bodies. Points to a list of SPARK_Mode pragmas that +-- apply to the related construct. + -- Spec_Entity (Node19) -- Defined in package body entities. Points to corresponding package -- spec entity. Also defined in subprogram body parameters in the @@ -5394,6 +5399,7 @@ package Einfo is -- Subprograms_For_Type (Node29) -- Corresponding_Equality (Node30) (implicit /= only) -- Thunk_Entity (Node31) (thunk case only) + -- SPARK_Mode_Pragmas (Node32) -- Body_Needed_For_SAL (Flag40) -- Elaboration_Entity_Required (Flag174) -- Default_Expressions_Processed (Flag108) @@ -5591,6 +5597,7 @@ package Einfo is -- Abstract_States (Elist25) -- Package_Instantiation (Node26) -- Current_Use_Clause (Node27) + -- SPARK_Mode_Pragmas (Node32) -- Delay_Subprogram_Descriptors (Flag50) -- Body_Needed_For_SAL (Flag40) -- Discard_Names (Flag88) @@ -5621,6 +5628,7 @@ package Einfo is -- Last_Entity (Node20) -- Scope_Depth_Value (Uint22) -- Finalizer (Node24) (non-generic case only) + -- SPARK_Mode_Pragmas (Node32) -- Delay_Subprogram_Descriptors (Flag50) -- Has_Anonymous_Master (Flag253) -- Scope_Depth (synth) @@ -5667,6 +5675,7 @@ package Einfo is -- Extra_Formals (Node28) -- Static_Initialization (Node30) (init_proc only) -- Thunk_Entity (Node31) (thunk case only) + -- SPARK_Mode_Pragmas (Node32) -- Body_Needed_For_SAL (Flag40) -- Delay_Cleanups (Flag114) -- Discard_Names (Flag88) @@ -5837,6 +5846,7 @@ package Einfo is -- Last_Entity (Node20) -- Scope_Depth_Value (Uint22) -- Extra_Formals (Node28) + -- SPARK_Mode_Pragmas (Node32) -- Scope_Depth (synth) -- E_Subprogram_Type @@ -6531,6 +6541,7 @@ package Einfo is function Size_Depends_On_Discriminant (Id : E) return B; function Size_Known_At_Compile_Time (Id : E) return B; function Small_Value (Id : E) return R; + function SPARK_Mode_Pragmas (Id : E) return N; function Spec_Entity (Id : E) return E; function Static_Elaboration_Desired (Id : E) return B; function Static_Initialization (Id : E) return N; @@ -7145,6 +7156,7 @@ package Einfo is procedure Set_Size_Depends_On_Discriminant (Id : E; V : B := True); procedure Set_Size_Known_At_Compile_Time (Id : E; V : B := True); procedure Set_Small_Value (Id : E; V : R); + procedure Set_SPARK_Mode_Pragmas (Id : E; V : N); procedure Set_Spec_Entity (Id : E; V : E); procedure Set_Static_Elaboration_Desired (Id : E; V : B); procedure Set_Static_Initialization (Id : E; V : N); @@ -7891,6 +7903,7 @@ package Einfo is pragma Inline (Size_Depends_On_Discriminant); pragma Inline (Size_Known_At_Compile_Time); pragma Inline (Small_Value); + pragma Inline (SPARK_Mode_Pragmas); pragma Inline (Spec_Entity); pragma Inline (Static_Elaboration_Desired); pragma Inline (Static_Initialization); @@ -8305,6 +8318,7 @@ package Einfo is pragma Inline (Set_Size_Depends_On_Discriminant); pragma Inline (Set_Size_Known_At_Compile_Time); pragma Inline (Set_Small_Value); + pragma Inline (Set_SPARK_Mode_Pragmas); pragma Inline (Set_Spec_Entity); pragma Inline (Set_Static_Elaboration_Desired); pragma Inline (Set_Static_Initialization); |