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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-04-23
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |wschmidt at gcc dot gnu.org
   Target Milestone|---                         |4.8.3
            Summary|Wrong folding of -          |[4.8/4.9/4.10 Regression]
                   |((unsigned long long) a *   |Wrong folding of -
                   |(unsigned long long)        |((unsigned long long) a *
                   |(unsigned int)-1)           |(unsigned long long)
                   |                            |(unsigned int)-1)
     Ever confirmed|0                           |1

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Indeed, started with r188989.

int x = 1;

__attribute__((noinline, noclone)) void
foo (unsigned long long t)
{
  asm volatile ("" : : "r" (&t));
  if (x == 1)
    __builtin_abort ();
}

int
main ()
{
  unsigned long long t = 0xffffffffffffffffULL * (0xffffffffUL * x);
  if (t != 0xffffffff00000001ULL)
    foo (t);;
  return 0;
}

Reply via email to