and then Is_Protected_Type (Corresponding_Concurrent_Type (Id));
end Is_Protected_Record_Type;
- -------------------------------------
- -- Is_Relaxed_Initialization_State --
- -------------------------------------
-
- function Is_Relaxed_Initialization_State (Id : E) return B is
- begin
- -- To qualify, the abstract state must appear with simple option
- -- "Relaxed_Initialization" (SPARK RM 6.10).
-
- return
- Ekind (Id) = E_Abstract_State
- and then Has_Option (Id, Name_Relaxed_Initialization);
- end Is_Relaxed_Initialization_State;
-
--------------------------------
-- Is_Standard_Character_Type --
--------------------------------
function Is_Protected_Component (Id : E) return B with Inline;
function Is_Protected_Interface (Id : E) return B;
function Is_Protected_Record_Type (Id : E) return B with Inline;
- function Is_Relaxed_Initialization_State (Id : E) return B;
function Is_Standard_Character_Type (Id : E) return B;
function Is_Standard_String_Type (Id : E) return B;
function Is_String_Type (Id : E) return B with Inline;
-- Applies to all entities, true for record types and subtypes,
-- includes class-wide types and subtypes (which are also records).
--- Is_Relaxed_Initialization_State (synthesized)
--- Applies to all entities, true for abstract states that are subject to
--- option Relaxed_Initialization.
-
-- Is_Remote_Call_Interface
-- Defined in all entities. Set in E_Package and E_Generic_Package
-- entities to which a pragma Remote_Call_Interface is applied, and
-- Has_Null_Visible_Refinement (synth)
-- Is_External_State (synth)
-- Is_Null_State (synth)
- -- Is_Relaxed_Initialization_State (synth)
-- Is_Synchronized_State (synth)
-- Partial_Refinement_Constituents (synth)
#define Is_Protected_Record_Type einfo__utils__is_protected_record_type
B Is_Protected_Record_Type (E Id);
-#define Is_Relaxed_Initialization_State einfo__utils__is_relaxed_initialization_state
-B Is_Relaxed_Initialization_State (E Id);
-
#define Is_Standard_Character_Type einfo__utils__is_standard_character_type
B Is_Standard_Character_Type (E Id);
is
-- Flags used to verify the consistency of options
- AR_Seen : Boolean := False;
- AW_Seen : Boolean := False;
- ER_Seen : Boolean := False;
- EW_Seen : Boolean := False;
- External_Seen : Boolean := False;
- Ghost_Seen : Boolean := False;
- Others_Seen : Boolean := False;
- Part_Of_Seen : Boolean := False;
- Relaxed_Initialization_Seen : Boolean := False;
- Synchronous_Seen : Boolean := False;
+ AR_Seen : Boolean := False;
+ AW_Seen : Boolean := False;
+ ER_Seen : Boolean := False;
+ EW_Seen : Boolean := False;
+ External_Seen : Boolean := False;
+ Ghost_Seen : Boolean := False;
+ Others_Seen : Boolean := False;
+ Part_Of_Seen : Boolean := False;
+ Synchronous_Seen : Boolean := False;
-- Flags used to store the static value of all external states'
-- expressions.
Check_Duplicate_Option (Opt, Synchronous_Seen);
Check_Ghost_Synchronous;
- -- Relaxed_Initialization
-
- elsif Chars (Opt) = Name_Relaxed_Initialization then
- Check_Duplicate_Option
- (Opt, Relaxed_Initialization_Seen);
-
-- Option Part_Of without an encapsulating state is
-- illegal (SPARK RM 7.1.4(8)).
-- but now without any syntactic checks.
case Ekind (E) is
- -- Abstract states have option Relaxed_Initialization
-
- when E_Abstract_State =>
- return Is_Relaxed_Initialization_State (E);
-
-- Constants have this aspect attached directly; for deferred
-- constants, the aspect is attached to the partial view.
function Has_Relaxed_Initialization (E : Entity_Id) return Boolean;
-- Returns True iff entity E is subject to the Relaxed_Initialization
- -- aspect. Entity E can be either type, variable, constant, subprogram,
- -- entry or an abstract state. For private types and deferred constants
- -- E should be the private view, because aspect can only be attached there.
+ -- aspect. Entity E can be either type, variable, constant, subprogram or
+ -- entry. For private types and deferred constants E should be the private
+ -- view, because aspect can only be attached there.
function Has_Signed_Zeros (E : Entity_Id) return Boolean;
-- Determines if the floating-point type E supports signed zeros.