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

           Summary: [4.3/4.4/4.5/4.6 Regression] x / (0x200000000ULL << y)
                    miscompilation with 32-bit HWI
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: ada
        AssignedTo: ja...@gcc.gnu.org
        ReportedBy: ja...@gcc.gnu.org


extern void abort (void);

int
main (void)
{
  unsigned long long l = 0x40000000000ULL;
  int n;
  for (n = 0; n < 8; n++)
    if (l / (0x200000000ULL << n) != (0x200 >> n))
      abort ();
  return 0;
}

is miscompiled on 32-bit HWI targets, e.g. i?86-linux, since PR26026 fix.

Reply via email to