From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [IPv6:2620:20:4000:0:a9e:1ff:fe9b:1d1]) by sourceware.org (Postfix) with ESMTPS id 4BD913858C78 for ; Fri, 17 Feb 2023 08:35:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4BD913858C78 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 1EA26116B6B; Fri, 17 Feb 2023 03:35:18 -0500 (EST) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id jThfPgXoS4AB; Fri, 17 Feb 2023 03:35:18 -0500 (EST) Received: from free.home (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPS id A3F35116B6A; Fri, 17 Feb 2023 03:35:17 -0500 (EST) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 31H8Z7Bk093979 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 17 Feb 2023 05:35:08 -0300 From: Alexandre Oliva To: Richard Biener Cc: gcc-patches@gcc.gnu.org, msebor@redhat.com Subject: Re: [PATCH] -Wdangling-pointer: don't mark SSA lhs sets as stores Organization: Free thinker, does not speak for AdaCore References: Errors-To: aoliva@lxoliva.fsfla.org Date: Fri, 17 Feb 2023 05:35:07 -0300 In-Reply-To: (Richard Biener's message of "Fri, 17 Feb 2023 08:53:00 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.84 X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,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 List-Id: Hi, richi, On Feb 17, 2023, Richard Biener wrote: > It seems the case should run into Yeah, but when the stmt is _7 = this_2(D), lhs is _7, whereas lhs_ref.ref is this_2(D), a parm decl's default def, so def_stmt is a gimple_nop, and this is not a decl_by_reference, so we don't skip stores.add, and any subsequent stores into fields of *this fails stores.add. This looks so fishy that I couldn't guess what was supposed or expected to happen there :-( > ? I wonder what the circumstances are that we want the latter to happen if > the former condition is true? Note that what I'm testing for, to skip non-store stmts, is the actual lhs, whereas lhs_ref.ref may very well have been resolved to the rhs (as in the cases I saw), and even if it could be an SSA_NAME, whether the stmt is a store depends on the actual lhs, not on properties of the rhs that get_ref resolved lhs to, right? Now, really, I did not get as far as trying to make sense of the algorithm in there (get_ref definitely doesn't do what its name suggests to me), I just saw a bunch of weirdnesses in blackbox testing and failing variations, that seemed to suggest some fundamental issue, that would hopefully be obvious to someone more familiar with that code. -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about