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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |4.5.2
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|                            |2011.03.30 08:54:12
          Component|target                      |debug
     Ever Confirmed|0                           |1
            Summary|ICE compiling i586          |[4.6/4.7 Regression] ICE
                   |linux-2.6.38/drivers/stagin |compiling i586
                   |g/wlan-ng/p80211wep.c: in   |linux-2.6.38/drivers/stagin
                   |form_sum, at reload.c:5338  |g/wlan-ng/p80211wep.c: in
                   |                            |form_sum, at reload.c:5338
   Target Milestone|---                         |4.6.1

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-03-30 
08:54:12 UTC ---
Confirmed.  Reduced testcase:

#define swap(a, b) \
        do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
struct dev {
      int       keylens[4];
};
void test(struct dev *dev, int keynum, unsigned char *iv)
{
  unsigned int i, j, keylen;
  unsigned char s[256], key[64];
  keylen = dev->keylens[keynum];
  key[0] = iv[0];
  for (i = 0; i < 256; i++) 
    {
      j = (j + s[i] + key[i % keylen]) & 0xff;
      swap(i, j);
    }
}

also fails on x86_64-*-* with -O3 -g -m32.

Reply via email to