aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2020-05-13 04:41:03 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-07-07 05:26:59 -0400
commitead7594ff58a2f1d60982e0e706329abf5eaadd4 (patch)
tree7f4e6c7fe021d0df122c3ee8a4a6fc8256dbcb1a /gcc/ada/libgnat
parent9b501e59d1d5c2aa28574fd188db04f7e762f4cd (diff)
downloadgcc-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.adb5
-rw-r--r--gcc/ada/libgnat/a-tags.ads4
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