From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTPS id 713B33858C78 for ; Fri, 17 Feb 2023 09:11:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 713B33858C78 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 3B432116B6C; Fri, 17 Feb 2023 04:11:10 -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 OIVJUZQbGXEt; Fri, 17 Feb 2023 04:11:10 -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 BAB47116B6B; Fri, 17 Feb 2023 04:11:09 -0500 (EST) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 31H99JNb095084 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 17 Feb 2023 06:09:21 -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 06:09:19 -0300 In-Reply-To: (Alexandre Oliva's message of "Fri, 17 Feb 2023 05:35:07 -0300") 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: On Feb 17, 2023, Alexandre Oliva wrote: > 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. Here's one more: the stores hash_set seems to be intended to help catch overwrites, so as to detect assignments of pointers-to-auto-locals to escaping pointers that reach exits, without flagging those that are definitely overwritten afterwards. In a linear backwards scan, that makes sense, but once blocks recurse for their preds, ISTM it could suppress the desired warning in e.g.: if (condition) *incoming_ptr = &localvar; else *incoming_ptr = 0; in case we scan the else bb before the then bb. But how about asynchronous exceptions? They might leave those dangling pointers if they hit at an undesirable spot. So should we really suppress those warnings? -- 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