From patchwork Thu Nov 12 17:17:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Jambor X-Patchwork-Id: 1399132 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.cz Received: from 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 RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CX7Zz2NW3z9sRR for ; Fri, 13 Nov 2020 04:17:45 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C19B2386EC78; Thu, 12 Nov 2020 17:17:42 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 1BB66385701E for ; Thu, 12 Nov 2020 17:17:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1BB66385701E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mjambor@suse.cz X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 82112AEA3 for ; Thu, 12 Nov 2020 17:17:37 +0000 (UTC) From: Martin Jambor To: GCC Patches Subject: [PATCH] cgraph: Avoid segfault when attempting to dump NULL clone_info User-Agent: Notmuch/0.31 (https://notmuchmail.org) Emacs/26.3 (x86_64-suse-linux-gnu) Date: Thu, 12 Nov 2020 18:17:37 +0100 Message-ID: MIME-Version: 1.0 X-Spam-Status: No, score=-3039.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jan Hubicka Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" Hi, cgraph_node::materialize_clone segfaulted when I tried compiling Tramp3D with -fdump-ipa-all because there was no clone_info - IPA-CP created a clone only for an aggregate constant, adding a note to its transformation summary but not creating any tree_map nor param_adjustements. Fixed with the following obvious extra checks which I will commit after an obligatory round of bootstrap and testing. Thanks, Martin gcc/ChangeLog: 2020-11-12 Martin Jambor * cgraphclones.c (cgraph_node::materialize_clone): Check that clone info is not NULL before attempting to dump it. --- gcc/cgraphclones.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c index bc590819f78..712a54e8d0c 100644 --- a/gcc/cgraphclones.c +++ b/gcc/cgraphclones.c @@ -1107,7 +1107,7 @@ cgraph_node::materialize_clone () fprintf (symtab->dump_file, "cloning %s to %s\n", clone_of->dump_name (), dump_name ()); - if (info->tree_map) + if (info && info->tree_map) { fprintf (symtab->dump_file, " replace map:"); for (unsigned int i = 0; @@ -1123,7 +1123,7 @@ cgraph_node::materialize_clone () } fprintf (symtab->dump_file, "\n"); } - if (info->param_adjustments) + if (info && info->param_adjustments) info->param_adjustments->dump (symtab->dump_file); } clear_stmts_in_references ();