From patchwork Sun Jul 28 22:41:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Harmstone X-Patchwork-Id: 1965757 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=harmstone.com header.i=@harmstone.com header.a=rsa-sha256 header.s=mail header.b=IvqtISOg; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WXGl80NChz1yYq for ; Mon, 29 Jul 2024 08:44:34 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C4CCD3858C98 for ; Sun, 28 Jul 2024 22:44:32 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail.burntcomma.com (mail.burntcomma.com [IPv6:2a02:8012:8cf0:250::6d61:696c]) by sourceware.org (Postfix) with ESMTPS id 97DE13858D29 for ; Sun, 28 Jul 2024 22:41:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 97DE13858D29 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=harmstone.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 97DE13858D29 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a02:8012:8cf0:250::6d61:696c ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1722206505; cv=none; b=qRma+IVLVq1b0xUZ6usCWzznVSKKakn4+Ie9SCn5vnUFhFdnwlqMn8REFEh2YLR5GE8Np/Vwt7qVaxw39BlRnG3v7Bc2z207SUkod4w3RNsPJxI0N5dmk3mAy0AJcRN3u7PPL2ds/G/oHch4g0togJ/UBCv8i1o0+9KWcEVpSIE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1722206505; c=relaxed/simple; bh=U0MsXDlK2QcPqlae6Deitv32JJi/JsLhDG/UG89zCZg=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:Mime-Version; b=gdttsjA41Rh22Csjw9MZlM/HNe3r55oytOh2nyg2cDT98NRPEN8wPzrBW+MNZd24DcAHy4pSJKcfPw+EOwBw6RHkwzxNScaEuizMmovfcGOo3bq70xpx4cHRgjAJdCq01M06mM6t0PFU/xFUW06lPEXgegerdmWncxwG2kH7Gkc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from localhost.localdomain (beren.burntcomma.com [IPv6:2a02:8012:8cf0:0:b62e:99ff:fee9:ad9f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) by mail.burntcomma.com (Postfix) with ESMTPSA id 732183F7C563; Sun, 28 Jul 2024 23:41:16 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=harmstone.com; s=mail; t=1722206476; bh=TpMOE17IzHT/wZBng7MJ6ubx2hOfT/+ZV4lq5GLcim0=; h=From:To:Cc:Subject:Date; b=IvqtISOgA5ywHitQ4m58sWRU9nZFEin+bzEocXlqk6iTkJ8OlM2k4thvZ/BUXoIGy XrWJ44cxXDQKzjZBzeuvkWHD7QoedlKBL0gf3o1l8UIad/2inJv1+grItRBBHjZiSy 64cKSbdOF6siCsGYEQsH3SMIIFrP0twTapCdfCPs= From: Mark Harmstone To: gcc-patches@gcc.gnu.org Cc: Mark Harmstone Subject: [PATCH] Fix ICE when using -gcodeview with empty struct Date: Sun, 28 Jul 2024 23:41:10 +0100 Message-ID: <20240728224110.6259-1-mark@harmstone.com> Mime-Version: 1.0 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org 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(-) 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;