]> git.ipfire.org Git - thirdparty/gcc.git/commit
[PATCH 07/11] Handle structs and classes for CodeView
authorMark Harmstone <mark@harmstone.com>
Tue, 25 Jun 2024 05:39:46 +0000 (23:39 -0600)
committerJeff Law <jlaw@ventanamicro.com>
Tue, 25 Jun 2024 05:39:46 +0000 (23:39 -0600)
commit4f86d2a5c0246a90d8d20fb325572a97f3ce7080
tree1b7abd4c700dda04ee4a84a6f82e7ec7d889cddd
parent41ff74aa581ed38d04c46e6c8839eab48e1b63de
[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.
gcc/dwarf2codeview.cc
gcc/dwarf2codeview.h