aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2024-03-29 09:03:28 +0100
committerMarc Poulhiès <poulhies@adacore.com>2024-05-20 09:47:05 +0200
commitaecb63d075838e17673e1b13f21a414d23fcf2cd (patch)
tree023ade465c3ec68a033bf3e64840642ee03a15dd
parenta74dff4d9d0b26e91d02acb81e9ed2e34d0d38e9 (diff)
downloadgcc-aecb63d075838e17673e1b13f21a414d23fcf2cd.zip
gcc-aecb63d075838e17673e1b13f21a414d23fcf2cd.tar.gz
gcc-aecb63d075838e17673e1b13f21a414d23fcf2cd.tar.bz2
ada: Add Is_Base_Type predicate to C interface
This also documents what the predicate effectively does. gcc/ada/ * einfo-utils.ads (Is_Base_Type): Move to Miscellaneous Subprograms section and add description. * fe.h (Is_Base_Type): Declare.
-rw-r--r--gcc/ada/einfo-utils.ads8
-rw-r--r--gcc/ada/fe.h4
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ada/einfo-utils.ads b/gcc/ada/einfo-utils.ads
index d87a3e3..01953c3 100644
--- a/gcc/ada/einfo-utils.ads
+++ b/gcc/ada/einfo-utils.ads
@@ -183,8 +183,6 @@ package Einfo.Utils is
function Has_Null_Abstract_State (Id : E) return B;
function Has_Null_Visible_Refinement (Id : E) return B;
function Implementation_Base_Type (Id : E) return E;
- function Is_Base_Type (Id : E) return B with Inline;
- -- Note that Is_Base_Type returns True for nontypes
function Is_Boolean_Type (Id : E) return B with Inline;
function Is_Constant_Object (Id : E) return B with Inline;
function Is_Controlled (Id : E) return B with Inline;
@@ -504,6 +502,12 @@ package Einfo.Utils is
-- is the name of a class_wide type whose root is incomplete, return the
-- corresponding full declaration, else return T itself.
+ function Is_Base_Type (Id : E) return B with Inline;
+ -- Return True for a type entity and False for a subtype entity. Note that
+ -- this returns True for nontypes.
+
+ -- WARNING: There is a matching C declaration of this subprogram in fe.h
+
function Is_Entity_Name (N : Node_Id) return Boolean with Inline;
-- Test if the node N is the name of an entity (i.e. is an identifier,
-- expanded name, or an attribute reference that returns an entity).
diff --git a/gcc/ada/fe.h b/gcc/ada/fe.h
index 692c29a..b4c1aea5 100644
--- a/gcc/ada/fe.h
+++ b/gcc/ada/fe.h
@@ -98,9 +98,11 @@ extern void Set_Normalized_First_Bit (Entity_Id, Uint);
extern void Set_Normalized_Position (Entity_Id, Uint);
extern void Set_RM_Size (Entity_Id, Uint);
+#define Is_Base_Type einfo__utils__is_base_type
#define Is_Entity_Name einfo__utils__is_entity_name
-extern Boolean Is_Entity_Name (Node_Id);
+extern Boolean Is_Base_Type (Entity_Id);
+extern Boolean Is_Entity_Name (Node_Id);
#define Get_Attribute_Definition_Clause einfo__utils__get_attribute_definition_clause