diff options
author | Mark Harmstone <mark@harmstone.com> | 2024-06-24 23:39:46 -0600 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro.com> | 2024-06-24 23:39:46 -0600 |
commit | 4f86d2a5c0246a90d8d20fb325572a97f3ce7080 (patch) | |
tree | 1b7abd4c700dda04ee4a84a6f82e7ec7d889cddd /gcc/dwarf2codeview.h | |
parent | 41ff74aa581ed38d04c46e6c8839eab48e1b63de (diff) | |
download | gcc-4f86d2a5c0246a90d8d20fb325572a97f3ce7080.zip gcc-4f86d2a5c0246a90d8d20fb325572a97f3ce7080.tar.gz gcc-4f86d2a5c0246a90d8d20fb325572a97f3ce7080.tar.bz2 |
[PATCH 07/11] Handle structs and classes for CodeView
Translates DW_TAG_structure_type DIEs into LF_STRUCTURE symbols, and
DW_TAG_class_type DIEs into LF_CLASS symbols.
gcc/
* dwarf2codeview.cc (struct codeview_type): Add is_fwd_ref member.
(struct codeview_subtype): Add lf_member to union.
(struct codeview_custom_type): Add lf_structure to union.
(struct codeview_deferred_type): New structure.
(deferred_types, last_deferred_type): New variables.
(get_type_num): Add new args to prototype.
(write_lf_fieldlist): Handle LF_MEMBER subtypes.
(write_lf_structure): New function.
(write_custom_types): Call write_lf_structure.
(get_type_num_pointer_type): Add in_struct argument.
(get_type_num_const_type): Likewise.
(get_type_num_volatile_type): Likewise.
(add_enum_forward_def): Fix get_type_num call.
(get_type_num_enumeration_type): Add in-struct argument.
(add_deferred_type, flush_deferred_types): New functions.
(add_struct_forward_def, get_type_num_struct): Likewise.
(get_type_num): Handle self-referential structs.
(add_variable): Fix get_type_num call.
(codeview_debug_early_finish): Call flush_deferred_types.
* dwarf2codeview.h (LF_CLASS, LF_STRUCTURE, LF_MEMBER): Define.
Diffstat (limited to 'gcc/dwarf2codeview.h')
-rw-r--r-- | gcc/dwarf2codeview.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/dwarf2codeview.h b/gcc/dwarf2codeview.h index 3f36956..d474024 100644 --- a/gcc/dwarf2codeview.h +++ b/gcc/dwarf2codeview.h @@ -66,7 +66,10 @@ along with GCC; see the file COPYING3. If not see #define LF_FIELDLIST 0x1203 #define LF_INDEX 0x1404 #define LF_ENUMERATE 0x1502 +#define LF_CLASS 0x1504 +#define LF_STRUCTURE 0x1505 #define LF_ENUM 0x1507 +#define LF_MEMBER 0x150d #define LF_CHAR 0x8000 #define LF_SHORT 0x8001 #define LF_USHORT 0x8002 |