diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2024-03-29 09:03:28 +0100 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2024-05-20 09:47:05 +0200 |
commit | aecb63d075838e17673e1b13f21a414d23fcf2cd (patch) | |
tree | 023ade465c3ec68a033bf3e64840642ee03a15dd | |
parent | a74dff4d9d0b26e91d02acb81e9ed2e34d0d38e9 (diff) | |
download | gcc-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.ads | 8 | ||||
-rw-r--r-- | gcc/ada/fe.h | 4 |
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 |