aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/einfo.ads
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2010-10-18 09:59:45 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2010-10-18 11:59:45 +0200
commitef2a63ba1869942eae7ab3ceb4cada0f025a60ad (patch)
tree292fd2cc7ffa00814a3d1bc8bec3ae9dced57607 /gcc/ada/einfo.ads
parent6b958cecaa0a9d8cb7b04ee0b4a2e36efd8d0450 (diff)
downloadgcc-ef2a63ba1869942eae7ab3ceb4cada0f025a60ad.zip
gcc-ef2a63ba1869942eae7ab3ceb4cada0f025a60ad.tar.gz
gcc-ef2a63ba1869942eae7ab3ceb4cada0f025a60ad.tar.bz2
einfo.ads, einfo.adb (Primitive_Operations): New synthesized attribute.
2010-10-18 Javier Miranda <miranda@adacore.com> * einfo.ads, einfo.adb (Primitive_Operations): New synthesized attribute. (Direct_Primitive_Operations): Renaming of old Primitive_Operations. (Set_Direct_Primitive_Operations): Renaming of old Set_Primitive_Operations. Update documentation * sem_ch3.adb, exp_util.adb, sem_ch7.adb, sem_ch8.adb, exp_ch3.adb: Replace occurrences of Set_Primitive_Operations by Set_Direct_Primitive_Operations. * sem_cat.adb (Validate_RACW_Primitives): No action needed for tagged concurrent types. * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not process primitives of concurrent types. * lib-xref.adb (Generate_Prim_Op_References): Minor code cleanup. From-SVN: r165618
Diffstat (limited to 'gcc/ada/einfo.ads')
-rw-r--r--gcc/ada/einfo.ads42
1 files changed, 25 insertions, 17 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index c459f64..3abc37b 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -769,6 +769,16 @@ package Einfo is
-- Present in floating point types and subtypes and decimal types and
-- subtypes. Contains the Digits value specified in the declaration.
+-- Direct_Primitive_Operations (Elist15)
+-- Present in tagged record types and subtypes, in tagged private types
+-- and in tagged incomplete types. Points to an element list of entities
+-- for primitive operations for the tagged type. Not present in untagged
+-- types (it is an error to reference the primitive operations field of a
+-- type that is not tagged). In order to fulfill the C++ ABI, entities of
+-- primitives that come from source must be stored in this list following
+-- their order of occurrence in the sources. For incomplete types the
+-- list is always empty.
+
-- Directly_Designated_Type (Node20)
-- Present in access types. This field points to the type that is
-- directly designated by the access type. In the case of an access
@@ -3201,15 +3211,12 @@ package Einfo is
-- to generate the call to this procedure in case the expander inserts
-- implicit return statements.
--- Primitive_Operations (Elist15)
--- Present in tagged record types and subtypes and in tagged private
--- types. Points to an element list of entities for primitive operations
--- for the tagged type. Not present (and not set) in untagged types (it
--- is an error to reference the primitive operations field of a type
--- that is not tagged). In order to fulfill the C++ ABI, entities of
--- primitives that come from source must be stored in this list following
--- their order of occurrence in the sources. Also present in incomplete
--- types, but in this case the list is always empty.
+-- Primitive_Operations (synthesized)
+-- Present in concurrent types, tagged record types and subtypes, tagged
+-- private types and tagged incomplete types. For concurrent types that
+-- have available their Corresponding_Record_Type (CRT) returns the list
+-- of Direct_Primitive_Operations of its CRT; otherwise returns No_Elist.
+-- For all the other types returns its Direct_Primitive_Operations.
-- Prival (Node17)
-- Present in private components of protected types. Refers to the entity
@@ -5262,7 +5269,7 @@ package Einfo is
-- E_Private_Type
-- E_Private_Subtype
- -- Primitive_Operations (Elist15)
+ -- Direct_Primitive_Operations (Elist15)
-- First_Entity (Node17)
-- Private_Dependents (Elist18)
-- Underlying_Full_View (Node19)
@@ -5369,7 +5376,7 @@ package Einfo is
-- E_Record_Type
-- E_Record_Subtype
- -- Primitive_Operations (Elist15)
+ -- Direct_Primitive_Operations (Elist15)
-- Access_Disp_Table (Elist16) (base type only)
-- Dispatch_Table_Wrappers (Elist26) (base type only)
-- Cloned_Subtype (Node16) (subtype case only)
@@ -5402,7 +5409,7 @@ package Einfo is
-- E_Record_Type_With_Private
-- E_Record_Subtype_With_Private
- -- Primitive_Operations (Elist15)
+ -- Direct_Primitive_Operations (Elist15)
-- Access_Disp_Table (Elist16) (base type only)
-- Dispatch_Table_Wrappers (Elist26) (base type only)
-- First_Entity (Node17)
@@ -6072,7 +6079,7 @@ package Einfo is
function Packed_Array_Type (Id : E) return E;
function Parent_Subtype (Id : E) return E;
function Postcondition_Proc (Id : E) return E;
- function Primitive_Operations (Id : E) return L;
+ function Direct_Primitive_Operations (Id : E) return L;
function Prival (Id : E) return E;
function Prival_Link (Id : E) return E;
function Private_Dependents (Id : E) return L;
@@ -6248,8 +6255,9 @@ package Einfo is
function Number_Dimensions (Id : E) return Pos;
function Number_Entries (Id : E) return Nat;
function Number_Formals (Id : E) return Pos;
- function Root_Type (Id : E) return E;
function Parameter_Mode (Id : E) return Formal_Kind;
+ function Primitive_Operations (Id : E) return L;
+ function Root_Type (Id : E) return E;
function Scope_Depth_Set (Id : E) return B;
function Size_Clause (Id : E) return N;
function Stream_Size_Clause (Id : E) return N;
@@ -6641,7 +6649,7 @@ package Einfo is
procedure Set_Packed_Array_Type (Id : E; V : E);
procedure Set_Parent_Subtype (Id : E; V : E);
procedure Set_Postcondition_Proc (Id : E; V : E);
- procedure Set_Primitive_Operations (Id : E; V : L);
+ procedure Set_Direct_Primitive_Operations (Id : E; V : L);
procedure Set_Prival (Id : E; V : E);
procedure Set_Prival_Link (Id : E; V : E);
procedure Set_Private_Dependents (Id : E; V : L);
@@ -7047,6 +7055,7 @@ package Einfo is
pragma Inline (Dependent_Instances);
pragma Inline (Depends_On_Private);
pragma Inline (Digits_Value);
+ pragma Inline (Direct_Primitive_Operations);
pragma Inline (Directly_Designated_Type);
pragma Inline (Discard_Names);
pragma Inline (Discriminal);
@@ -7358,7 +7367,6 @@ package Einfo is
pragma Inline (Parameter_Mode);
pragma Inline (Parent_Subtype);
pragma Inline (Postcondition_Proc);
- pragma Inline (Primitive_Operations);
pragma Inline (Prival);
pragma Inline (Prival_Link);
pragma Inline (Private_Dependents);
@@ -7482,6 +7490,7 @@ package Einfo is
pragma Inline (Set_Dependent_Instances);
pragma Inline (Set_Depends_On_Private);
pragma Inline (Set_Digits_Value);
+ pragma Inline (Set_Direct_Primitive_Operations);
pragma Inline (Set_Directly_Designated_Type);
pragma Inline (Set_Discard_Names);
pragma Inline (Set_Discriminal);
@@ -7748,7 +7757,6 @@ package Einfo is
pragma Inline (Set_Packed_Array_Type);
pragma Inline (Set_Parent_Subtype);
pragma Inline (Set_Postcondition_Proc);
- pragma Inline (Set_Primitive_Operations);
pragma Inline (Set_Prival);
pragma Inline (Set_Prival_Link);
pragma Inline (Set_Private_Dependents);