This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/16195] New: Miscompilation of GCC 3.3.x by 3.4.x
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Jun 2004 11:01:58 -0000
- Subject: [Bug target/16195] New: Miscompilation of GCC 3.3.x by 3.4.x
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following testcase distilled from ggc-common.c in GCC 3.3.4 is miscompiled
on ppc64. It loads a floating point value (70.0) into the pic register and
dereferences it, thus the testcase segfaults.
/* { dg-do run } */
/* { dg-options "-O2" } */
/* { dg-options "-mminimal-toc" { target powerpc64-*-* } } */
extern void abort (void);
extern void exit (int);
double __attribute__((noinline))
foo (void)
{
return 16441577472.0;
}
double __attribute__((noinline))
bar (double x)
{
return x;
}
int __attribute__((noinline))
test (void)
{
double x = foo ();
x = bar (x);
x /= 1024 * 1024 * 1024;
x *= 70;
x = x < 70 ? x : 70;
x += 30;
return x;
}
int main (void)
{
if (test () != 100)
abort ();
exit (0);
}
--
Summary: Miscompilation of GCC 3.3.x by 3.4.x
Product: gcc
Version: 3.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: unassigned 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: ppc64-redhat-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16195