From: Eric Botcazou <[email protected]>
This is modeled on the existing Is_Init_Proc predicate.
gcc/ada/ChangeLog:
* exp_tss.ads (Is_Rep_To_Pos): New function declaration.
* exp_tss.adb (Is_Rep_To_Pos): New function body.
* fe.h (Is_Rep_To_Pos): New macro and extern declaration.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_tss.adb | 12 ++++++++++++
gcc/ada/exp_tss.ads | 5 +++++
gcc/ada/fe.h | 2 ++
3 files changed, 19 insertions(+)
diff --git a/gcc/ada/exp_tss.adb b/gcc/ada/exp_tss.adb
index 098e001808e..78eb27e1554 100644
--- a/gcc/ada/exp_tss.adb
+++ b/gcc/ada/exp_tss.adb
@@ -355,6 +355,18 @@ package body Exp_Tss is
return C1 = TSS_Init_Proc (1) and then C2 = TSS_Init_Proc (2);
end Is_Init_Proc;
+ -------------------
+ -- Is_Rep_To_Pos --
+ -------------------
+
+ function Is_Rep_To_Pos (E : Entity_Id) return Boolean is
+ C1 : Character;
+ C2 : Character;
+ begin
+ Get_Last_Two_Chars (Chars (E), C1, C2);
+ return C1 = TSS_Rep_To_Pos (1) and then C2 = TSS_Rep_To_Pos (2);
+ end Is_Rep_To_Pos;
+
------------
-- Is_TSS --
------------
diff --git a/gcc/ada/exp_tss.ads b/gcc/ada/exp_tss.ads
index e7f312047a0..aed6a68fabe 100644
--- a/gcc/ada/exp_tss.ads
+++ b/gcc/ada/exp_tss.ads
@@ -154,6 +154,11 @@ package Exp_Tss is
-- WARNING: There is a matching C declaration of this subprogram in fe.h
+ function Is_Rep_To_Pos (E : Entity_Id) return Boolean;
+ -- Version for Rep to Pos conversions, same as Is_TSS (E, TSS_Rep_To_Pos);
+
+ -- WARNING: There is a matching C declaration of this subprogram in fe.h
+
function Is_TSS (E : Entity_Id; Nam : TSS_Name_Type) return Boolean;
-- Determines if given entity (E) is the name of a TSS identified by Nam
diff --git a/gcc/ada/fe.h b/gcc/ada/fe.h
index 9d3606ce0a7..36f5e9bfe9e 100644
--- a/gcc/ada/fe.h
+++ b/gcc/ada/fe.h
@@ -179,8 +179,10 @@ extern void Get_Variant_Encoding (Entity_Id);
/* exp_tss: */
#define Is_Init_Proc exp_tss__is_init_proc
+#define Is_Rep_To_Pos exp_tss__is_rep_to_pos
extern Boolean Is_Init_Proc (Entity_Id);
+extern Boolean Is_Rep_To_Pos (Entity_Id);
/* exp_util: */
--
2.43.0