From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by sourceware.org (Postfix) with ESMTPS id 5BF503858D33 for ; Wed, 1 Feb 2023 14:11:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5BF503858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 3C1213368E; Wed, 1 Feb 2023 14:11:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1675260686; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W12N+z+5z+aealbdBJ/IoDBoQTNFhU6zXjaa83x1cO8=; b=1VG9yRMzaGk4APo12FpKK3jvN6DrJ8fMWDIV8FoYcXPX6xZY+3aLsB0VaeFpeYHOIo4L40 uaYE+AN21rqJaF2VrHO2Mm0ReCJW7Lx+SbTtXIepsLH1V7acxjnSlyx/aGqj0RpB0JlkF+ TiEfU5IqKRbgmDs/wlRi0kkTsm5kdAc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1675260686; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W12N+z+5z+aealbdBJ/IoDBoQTNFhU6zXjaa83x1cO8=; b=FCxX11E7Eg+th1Nz3lfWR2Z9RmQXC6Bk3stmMh/eHouhfpVflv+U1tV9gSHzdYTzhPQNUZ GI5SUyioNZHAy7Cw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2EFCD1348C; Wed, 1 Feb 2023 14:11:26 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id IBpyCw5z2mNXbQAAMHmgww (envelope-from ); Wed, 01 Feb 2023 14:11:26 +0000 From: Martin Jambor To: Martin =?utf-8?Q?Li=C5=A1ka?= , gcc-patches@gcc.gnu.org Cc: Jan Hubicka Subject: Re: [PATCH] ipa: check if cache_token != NULL before hash_set::add call In-Reply-To: <196e54c5-4ee3-2d0b-3803-8b574eb71b99@suse.cz> References: <196e54c5-4ee3-2d0b-3803-8b574eb71b99@suse.cz> User-Agent: Notmuch/0.37 (https://notmuchmail.org) Emacs/28.2 (x86_64-suse-linux-gnu) Date: Wed, 01 Feb 2023 15:11:25 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_SOFTFAIL,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 List-Id: On Tue, Jan 24 2023, Martin Li=C5=A1ka wrote: > We should not insert an empty value to the container. > > Patch can bootstrap on x86_64-linux-gnu and survives regression tests. > > Ready to be installed? > Thanks, > Martin > > PR ipa/108509 > > gcc/ChangeLog: > > * cgraphunit.cc (walk_polymorphic_call_targets): Insert > ony non-null values. > * ipa.cc (walk_polymorphic_call_targets): Likewise. This is OK. Thanks a lot, Martin > > gcc/testsuite/ChangeLog: > > * g++.dg/ipa/pr108509.C: New test. > --- > gcc/cgraphunit.cc | 2 +- > gcc/ipa.cc | 2 +- > gcc/testsuite/g++.dg/ipa/pr108509.C | 22 ++++++++++++++++++++++ > 3 files changed, 24 insertions(+), 2 deletions(-) > create mode 100644 gcc/testsuite/g++.dg/ipa/pr108509.C > > diff --git a/gcc/cgraphunit.cc b/gcc/cgraphunit.cc > index 832818d651f..a972900900b 100644 > --- a/gcc/cgraphunit.cc > +++ b/gcc/cgraphunit.cc > @@ -1000,7 +1000,7 @@ walk_polymorphic_call_targets (hash_set *re= achable_call_targets, > =3D possible_polymorphic_call_targets > (edge, &final, &cache_token); >=20=20 > - if (!reachable_call_targets->add (cache_token)) > + if (cache_token !=3D NULL && !reachable_call_targets->add (cache_token= )) > { > if (symtab->dump_file) > dump_possible_polymorphic_call_targets=20 > diff --git a/gcc/ipa.cc b/gcc/ipa.cc > index 4de605000b6..5c15b60a603 100644 > --- a/gcc/ipa.cc > +++ b/gcc/ipa.cc > @@ -182,7 +182,7 @@ walk_polymorphic_call_targets (hash_set *reac= hable_call_targets, > =3D possible_polymorphic_call_targets > (edge, &final, &cache_token); >=20=20 > - if (!reachable_call_targets->add (cache_token)) > + if (cache_token !=3D NULL && !reachable_call_targets->add (cache_token= )) > { > for (i =3D 0; i < targets.length (); i++) > { > diff --git a/gcc/testsuite/g++.dg/ipa/pr108509.C b/gcc/testsuite/g++.dg/i= pa/pr108509.C > new file mode 100644 > index 00000000000..2844189bbb4 > --- /dev/null > +++ b/gcc/testsuite/g++.dg/ipa/pr108509.C > @@ -0,0 +1,22 @@ > +// PR ipa/108509 > +// { dg-do compile } > +// { dg-options "-O1 -fdevirtualize -fno-tree-fre" } > + > +struct B { > + virtual void deref (); > +}; > + > +struct RefPtr { > + B *p; > + > + RefPtr () > + { > + p->deref (); > + } > +}; > + > +void > +f () > +{ > + RefPtr b; > +} > --=20 > 2.39.0