diff options
author | Arnaud Charlet <charlet@adacore.com> | 2020-05-13 04:41:03 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-07-07 05:26:59 -0400 |
commit | ead7594ff58a2f1d60982e0e706329abf5eaadd4 (patch) | |
tree | 7f4e6c7fe021d0df122c3ee8a4a6fc8256dbcb1a /gcc/ada/libgnat | |
parent | 9b501e59d1d5c2aa28574fd188db04f7e762f4cd (diff) | |
download | gcc-ead7594ff58a2f1d60982e0e706329abf5eaadd4.zip gcc-ead7594ff58a2f1d60982e0e706329abf5eaadd4.tar.gz gcc-ead7594ff58a2f1d60982e0e706329abf5eaadd4.tar.bz2 |
[Ada] ACATS 4.1K - C452003
gcc/ada/
* exp_ch4.adb (Tagged_Membership): Generate a call to
CW_Membership instead of using Build_CW_Membership.
(Expand_N_In): Remove wrong handling of null access types and
corresponding comment.
* exp_intr.adb (Expand_Dispatching_Constructor_Call): Generate a
call to CW_Membership instead of using Build_CW_Membership.
* rtsfind.ads: Add CW_Membership.
* exp_atag.ads, exp_atag.adb (Build_CW_Membership): Removed.
* einfo.ads: Fix typo.
* libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Moved
back to spec.
Diffstat (limited to 'gcc/ada/libgnat')
-rw-r--r-- | gcc/ada/libgnat/a-tags.adb | 5 | ||||
-rw-r--r-- | gcc/ada/libgnat/a-tags.ads | 4 |
2 files changed, 4 insertions, 5 deletions
diff --git a/gcc/ada/libgnat/a-tags.adb b/gcc/ada/libgnat/a-tags.adb index 8a3f8c2..798780a 100644 --- a/gcc/ada/libgnat/a-tags.adb +++ b/gcc/ada/libgnat/a-tags.adb @@ -49,10 +49,6 @@ package body Ada.Tags is -- Local Subprograms -- ----------------------- - function CW_Membership (Obj_Tag : Tag; Typ_Tag : Tag) return Boolean; - -- Given the tag of an object and the tag associated to a type, return - -- true if Obj is in Typ'Class. - function Get_External_Tag (T : Tag) return System.Address; -- Returns address of a null terminated string containing the external name @@ -82,7 +78,6 @@ package body Ada.Tags is -- Ada 2005 (AI-251): Given a pointer T to a dispatch Table, retrieves the -- address of the record containing the Select Specific Data in T's TSD. - pragma Inline_Always (CW_Membership); pragma Inline_Always (Get_External_Tag); pragma Inline_Always (Is_Primary_DT); pragma Inline_Always (OSD); diff --git a/gcc/ada/libgnat/a-tags.ads b/gcc/ada/libgnat/a-tags.ads index 5c83701..fb386c3 100644 --- a/gcc/ada/libgnat/a-tags.ads +++ b/gcc/ada/libgnat/a-tags.ads @@ -501,6 +501,10 @@ private -- dispatch table, return the tagged kind of a type in the context of -- concurrency and limitedness. + function CW_Membership (Obj_Tag : Tag; Typ_Tag : Tag) return Boolean; + -- Given the tag of an object and the tag associated to a type, return + -- true if Obj is in Typ'Class. + function IW_Membership (This : System.Address; T : Tag) return Boolean; -- Ada 2005 (AI-251): General routine that checks if a given object -- implements a tagged type. Its common usage is to check if Obj is in |