http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57300

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org
            Version|4.9.0                       |4.8.1
   Target Milestone|---                         |4.8.1
            Summary|statement in expression     |[4.8/4.9 Regression]
                   |miscompiled at -O3 in       |statement in expression
                   |32-bit mode                 |miscompiled at -O3 in
                   |                            |32-bit mode

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
/* PR rtl-optimization/57300 */
/* { dg-do run } */
/* { dg-options "-O3" } */
/* { dg-additional-options "-msse2" { target sse2_runtime } } */

extern void abort (void);
int a, b, d[10];
long long c;

int
main ()
{
  int e;
  for (e = 0; e < 10; e++)
    d[e] = 1;
  if (d[0])
    c = a = (b == 0 || 1 % b);
  if (a != 1)
    abort ();
  return 0;
}

(note, -msse needed, without it it doesn't reproduce).  Started with LRA merge,
but looks very much PR57281 related.

Reply via email to