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;

Reply via email to