// PR c++/4401 | |
// This testcase was miscompiled on 64-bit platforms, resulting to | |
// operating on a[0x100000000] instead of a[0]. | |
// { dg-do run } | |
// { dg-options "-O2" } | |
char *a; | |
char b[] = "AAAA"; | |
extern "C" void abort (void); | |
extern "C" void exit (int); | |
void foo (void) | |
{ | |
unsigned int i, j; | |
i = 2; | |
j = 3; | |
a[i + 1 - j] += i; | |
} | |
int main (void) | |
{ | |
a = b; | |
foo (); | |
if (b[0] != 'A' + 2) | |
abort (); | |
exit (0); | |
} |