public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "msebor at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/94675] [9/10 regression] -Warray-bounds false positive with -O2 since r9-1948
Date: Tue, 21 Apr 2020 21:00:17 +0000	[thread overview]
Message-ID: <bug-94675-4-ATMpcOSrks@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-94675-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94675

--- Comment #14 from Martin Sebor <msebor at gcc dot gnu.org> ---
I can think of only one way the warning code could avoid triggering here: by
assuming that the difference between two pointers into the same array is less
than or equal the size of the array (with non-array objects being viewed as
arrays of a single element).  That's necessarily true in any valid C/C++
program so it would be a safe assumption to make here as well.

Since there is no array subscripting involved here, issuing -Warray-bounds
might also be considered inappropriate, and the warning could be made not to
trigger.  But that would just mask the problem which would come back if
__ps_skip attempted to access ps->s[len].  It would also come back if/when GCC
started to warn more diligently for forming out-of-bounds pointers (I already
submitted one patch to do that and the work I'm doing in the path isolation
pass is an opportunity to revisit the feature).

So we're back to deriving assumptions about the results of pointer arithmetic
based the sizes of pointed-to objects.  The warning would need to work quite
hard to figure this out in general, so hard that I don't think it would be
worth the effort unless it benefited code generation as well, or at least all
other warnings like it (-Warray-bounds isn't the only one that can be triggered
-- a number of others could be made to).  Which was also the point of my
comment #1 (and related to Richard's observation in comment #4 about an missed
optimization opportunity).

That said and codegen improvements aside, I think the submitted test case is
sufficiently tricky that I don't see issuing a warning for it as a problem. 
All flow-based warnings have a non-zero rate of false positives (as do many
front-end warnings) and there are mechanisms to avoid them.  Compared to some
of the other false positives we have, avoiding this one seems like a low
priority to me.

  parent reply	other threads:[~2020-04-21 21:00 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-20 19:42 [Bug tree-optimization/94675] New: [9 regression] -Warray-bounds false positive with -O2 chantry.xavier at gmail dot com
2020-04-20 22:16 ` [Bug tree-optimization/94675] " msebor at gcc dot gnu.org
2020-04-21  6:51 ` chantry.xavier at gmail dot com
2020-04-21  7:04 ` marxin at gcc dot gnu.org
2020-04-21  7:46 ` rguenth at gcc dot gnu.org
2020-04-21  7:58 ` [Bug tree-optimization/94675] [9/10 " rguenth at gcc dot gnu.org
2020-04-21  7:59 ` jakub at gcc dot gnu.org
2020-04-21  8:06 ` [Bug tree-optimization/94675] [9/10 regression] -Warray-bounds false positive with -O2 since r9-1948 jakub at gcc dot gnu.org
2020-04-21 14:03 ` law at redhat dot com
2020-04-21 14:18 ` rguenther at suse dot de
2020-04-21 14:43 ` law at redhat dot com
2020-04-21 14:57 ` rguenther at suse dot de
2020-04-21 14:58 ` msebor at gcc dot gnu.org
2020-04-21 19:14 ` law at redhat dot com
2020-04-21 19:16 ` law at redhat dot com
2020-04-21 20:10 ` law at redhat dot com
2020-04-21 21:00 ` msebor at gcc dot gnu.org [this message]
2020-04-22  6:34 ` rguenther at suse dot de
2020-04-24  7:48 ` chantry.xavier at gmail dot com
2020-04-24 15:16 ` msebor at gcc dot gnu.org
2020-04-30 13:12 ` chantry.xavier at gmail dot com
2021-06-01  8:17 ` [Bug tree-optimization/94675] [9/10/11/12 " rguenth at gcc dot gnu.org
2021-09-06 11:25 ` pinskia at gcc dot gnu.org
2022-03-16 11:09 ` chantry.xavier at gmail dot com
2022-03-16 13:24 ` rguenth at gcc dot gnu.org
2022-05-27  9:42 ` [Bug tree-optimization/94675] [10/11/12/13 " rguenth at gcc dot gnu.org
2022-06-28 10:40 ` jakub at gcc dot gnu.org
2023-05-14 21:25 ` [Bug tree-optimization/94675] [10/11/12/13/14 " pinskia at gcc dot gnu.org
2023-07-07 10:37 ` [Bug tree-optimization/94675] [11/12/13/14 " rguenth at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-94675-4-ATMpcOSrks@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).