diff options
author | Javier Miranda <miranda@adacore.com> | 2010-10-18 09:59:45 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-10-18 11:59:45 +0200 |
commit | ef2a63ba1869942eae7ab3ceb4cada0f025a60ad (patch) | |
tree | 292fd2cc7ffa00814a3d1bc8bec3ae9dced57607 /gcc/ada/einfo.ads | |
parent | 6b958cecaa0a9d8cb7b04ee0b4a2e36efd8d0450 (diff) | |
download | gcc-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.ads | 42 |
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); |