[Bug target/20196] New: Miscompilation of mem_init in 32-bit ppc linux kernel
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Feb 24 19:58:00 GMT 2005
/* Origin: Mikael Pettersson <mikpe@csd.uu.se> and the Linux kernel. */
extern void abort (void);
unsigned long a = 0xc0000000, b = 0xd0000000;
unsigned long c = 0xc01bb958, d = 0xc0264000;
unsigned long e = 0xc0288000, f = 0xc02d4378;
void
foo (int x, int y, int z)
{
if (x != 245 || y != 36 || z != 444)
abort ();
}
int
main (void)
{
unsigned long g;
int h = 0, i = 0, j = 0;
for (g = a; g < b; g += 0x1000)
if (g < c)
h++;
else if (g >= d && g < e)
j++;
else if (g < f)
i++;
foo (i, j, h);
return 0;
}
is miscompiled on ppc at -O{1,2,3,s} -m32. Works with -O0 or -m64 at any
optimization level.
--
Summary: Miscompilation of mem_init in 32-bit ppc linux kernel
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: jakub at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: powerpc64-redhat-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20196
More information about the Gcc-bugs
mailing list