https://gcc.gnu.org/g:4c88b4e635f6025a897c5d059628e63ec5ba948f
commit r15-2469-g4c88b4e635f6025a897c5d059628e63ec5ba948f Author: Mark Harmstone <m...@harmstone.com> Date: Fri Jul 26 20:46:33 2024 +0100 Fix ICE when using -gcodeview with empty struct Empty structs result in empty LF_FIELDLIST types, which are valid, but we weren't accounting for this and assuming they had to contain subtypes. gcc/ * dwarf2codeview.cc (get_type_num_struct): Fix NULL pointer dereference. Diff: --- gcc/dwarf2codeview.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/dwarf2codeview.cc b/gcc/dwarf2codeview.cc index b16c6960f63e..470cbae71103 100644 --- a/gcc/dwarf2codeview.cc +++ b/gcc/dwarf2codeview.cc @@ -2858,8 +2858,11 @@ get_type_num_struct (dw_die_ref type, bool in_struct, bool *is_fwd_ref) ct2 = ct->next; ct->next = NULL; - if (ct->lf_fieldlist.last_subtype->kind == LF_INDEX) - ct->lf_fieldlist.last_subtype->lf_index.type_num = last_type; + if (ct->lf_fieldlist.last_subtype + && ct->lf_fieldlist.last_subtype->kind == LF_INDEX) + { + ct->lf_fieldlist.last_subtype->lf_index.type_num = last_type; + } add_custom_type (ct); last_type = ct->num;