public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/63406] New: -Warray-bounds false positive with -O3
@ 2014-09-29  9:46 jakub at gcc dot gnu.org
  2014-09-29 11:01 ` [Bug tree-optimization/63406] " rguenth at gcc dot gnu.org
  2014-09-29 11:11 ` jakub at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-09-29  9:46 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 63406
           Summary: -Warray-bounds false positive with -O3
           Product: gcc
           Version: 4.9.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org

int total_objs = 0;
#ifndef N
#define N 2
#endif
void *objs[N];

void
del_obj (void *obj)
{
  int i = 0;
  while (i < total_objs && objs[i] != obj)
    ++i;
  if (i >= total_objs)
    return;
  while (++i < total_objs)
    objs[i - 1] = objs[i];
  --total_objs;
}

Both loops seem to be unrolled N times (although the second loop clearly could
be
only executed N-1 times, because otherwise it triggers undefined behavior in
the loop), and after unrolling the misdesigned -Warray-bounds warning complains
on the last iteration of the unrolled loop.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug tree-optimization/63406] -Warray-bounds false positive with -O3
  2014-09-29  9:46 [Bug tree-optimization/63406] New: -Warray-bounds false positive with -O3 jakub at gcc dot gnu.org
@ 2014-09-29 11:01 ` rguenth at gcc dot gnu.org
  2014-09-29 11:11 ` jakub at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-09-29 11:01 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think we have similar dups elsewhere (warning for last unrolled iteration
which is never executed).

My previous naiive attempts dropped warnings from VRP2 and only warn from
VRP1 (but that regresses some cases in the testsuite).


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug tree-optimization/63406] -Warray-bounds false positive with -O3
  2014-09-29  9:46 [Bug tree-optimization/63406] New: -Warray-bounds false positive with -O3 jakub at gcc dot gnu.org
  2014-09-29 11:01 ` [Bug tree-optimization/63406] " rguenth at gcc dot gnu.org
@ 2014-09-29 11:11 ` jakub at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-09-29 11:11 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I'd say it would still be worthwhile, if it was just a matter of XFAILing a few
testcases, because the number of false positives is more important, if the
warning is too unreliable, people just will ignore it completely.
And people can combine it with -fsanitize=undefined, Fortran -fbounds-check
etc.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-09-29 11:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-29  9:46 [Bug tree-optimization/63406] New: -Warray-bounds false positive with -O3 jakub at gcc dot gnu.org
2014-09-29 11:01 ` [Bug tree-optimization/63406] " rguenth at gcc dot gnu.org
2014-09-29 11:11 ` jakub at gcc dot gnu.org

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).