aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/fe.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2023-06-30 09:31:40 -0600
committerMarc Poulhiès <poulhies@adacore.com>2023-07-28 09:28:13 +0200
commit5d8fc02062b36e58c9d0bd39e7c9bb286335d870 (patch)
treee4dbc0452ae0bb0f82ff9dfbc824ba30257981c5 /gcc/ada/fe.h
parent7e448f3c3dfb53a0d9e0b67c2fef566a56942596 (diff)
downloadgcc-5d8fc02062b36e58c9d0bd39e7c9bb286335d870.zip
gcc-5d8fc02062b36e58c9d0bd39e7c9bb286335d870.tar.gz
gcc-5d8fc02062b36e58c9d0bd39e7c9bb286335d870.tar.bz2
ada: Emit enums rather than defines for various constants
This patch changes xsnamest and gen_il-gen to emit various constants as enums rather than a sequence of preprocessor defines. This enables better debugging and somewhat better type safety. gcc/ada/ * fe.h (Convention): Now inline function. * gen_il-gen.adb (Put_C_Type_And_Subtypes.Put_Enum_Lit) (Put_C_Type_And_Subtypes.Put_Kind_Subtype, Put_C_Getter): Emit enum. * snames.h-tmpl (Name_Id, Name_, Attribute_Id, Attribute_) (Convention_Id, Convention_, Pragma_Id, Pragma_): Now enum. (Get_Attribute_Id, Get_Pragma_Id): Now inline functions. * types.h (Node_Kind, Entity_Kind, Convention_Id, Name_Id): Now enum. * xsnamest.adb (Output_Header_Line, Make_Value): Emit enum.
Diffstat (limited to 'gcc/ada/fe.h')
-rw-r--r--gcc/ada/fe.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/ada/fe.h b/gcc/ada/fe.h
index f283064..ca77f43 100644
--- a/gcc/ada/fe.h
+++ b/gcc/ada/fe.h
@@ -683,8 +683,12 @@ Entity_Kind Parameter_Mode (E Id);
// The following is needed because Convention in Sem_Util is a renaming
// of Basic_Convention.
-#define Convention einfo__entities__basic_convention
-Convention_Id Convention (N Node);
+static inline Convention_Id
+Convention (N Node)
+{
+ extern Byte einfo__entities__basic_convention (N Node);
+ return (Convention_Id) einfo__entities__basic_convention (Node);
+}
// See comments regarding Entity_Or_Associated_Node in Sinfo.Utils.