diff mbox series

Fix ICE when using -gcodeview with empty struct

Message ID 20240728224110.6259-1-mark@harmstone.com
State New
Headers show
Series Fix ICE when using -gcodeview with empty struct | expand

Commit Message

Mark Harmstone July 28, 2024, 10:41 p.m. UTC
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.
---
 gcc/dwarf2codeview.cc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Jeff Law July 30, 2024, 8:49 p.m. UTC | #1
On 7/28/24 4:41 PM, Mark Harmstone wrote:
> 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.
OK
jeff
diff mbox series

Patch

diff --git a/gcc/dwarf2codeview.cc b/gcc/dwarf2codeview.cc
index b16c6960f63..470cbae7110 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;