From 340bca65ce50ccb827a2501273f50da77c7d7349 Mon Sep 17 00:00:00 2001 From: Mark Harmstone Date: Sun, 23 Jun 2024 18:17:39 -0600 Subject: [PATCH 02/11] Handle CodeView base types Adds a get_type_num function to translate type DIEs into CodeView numbers, along with a hash table for this. For now we just deal with the base types (integers, Unicode chars, floats, and bools). gcc/ * dwarf2codeview.cc (struct codeview_type): New structure. (struct die_hasher): Likewise. (types_htab): New variable. (codeview_debug_finish): Free types_htab if allocated. (get_type_num_base_type, get_type_num): New function. (add_variable): Call get_type_num. * dwarf2codeview.h (T_CHAR, T_SHORT, T_LONG, T_QUAD): Define. (T_UCHAR, T_USHORT, T_ULONG, T_UQUAD, T_BOOL08): Likewise. (T_REAL32, T_REAL64, T_REAL80, T_REAL128, T_RCHAR): Likewise. (T_WCHAR, T_INT4, T_UINT4, T_CHAR16, T_CHAR32, T_CHAR8): Likewise. --- gcc/dwarf2codeview.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gcc/dwarf2codeview.h') diff --git a/gcc/dwarf2codeview.h b/gcc/dwarf2codeview.h index ac4c2fd..7d8a4c1 100644 --- a/gcc/dwarf2codeview.h +++ b/gcc/dwarf2codeview.h @@ -23,6 +23,29 @@ along with GCC; see the file COPYING3. If not see #include "dwarf2out.h" #include "flags.h" +/* Constants for in-built types. */ + +#define T_CHAR 0x0010 +#define T_SHORT 0x0011 +#define T_LONG 0x0012 +#define T_QUAD 0x0013 +#define T_UCHAR 0x0020 +#define T_USHORT 0x0021 +#define T_ULONG 0x0022 +#define T_UQUAD 0x0023 +#define T_BOOL08 0x0030 +#define T_REAL32 0x0040 +#define T_REAL64 0x0041 +#define T_REAL80 0x0042 +#define T_REAL128 0x0043 +#define T_RCHAR 0x0070 +#define T_WCHAR 0x0071 +#define T_INT4 0x0074 +#define T_UINT4 0x0075 +#define T_CHAR16 0x007a +#define T_CHAR32 0x007b +#define T_CHAR8 0x007c + /* Debug Format Interface. Used in dwarf2out.cc. */ extern void codeview_debug_finish (void); -- cgit v1.1