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

            Bug ID: 63602
           Summary: Wrong code w/ -O2 -ftree-loop-linear
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com

gcc produces wrong code w/ -ftree-loop-linear -O2 (and above) for the following
reduced case:

int sx;
int bn;
int vz = 1;
int *volatile n6 = &bn;

int
main(void)
{
  for (int i = 0; i < 3; ++i) {
    sx = vz;
    vz = bn;
  }
  return sx;
}

It struck me first w/ gcc-4.10.0-alpha20140810, but today I've reproduced it w/
4.8.3, 4.9.1 and 5-alpha20141019, so I'm not marking it as a regression.

Expected results:
% gcc-5.0_alpha20141019 -O2 -o good 963b8772.c
% ./good
% echo $?
0

Actual results:
% gcc-5.0_alpha20141019 -O2 -ftree-loop-linear -o bad 963b8772.c
% ./bad
% echo $?
1

Reply via email to