|
|
Since the gimple-tuples branch was merged, test omnetpp from SPEC CPU2006 hangs
when compiled with -O2 for powerpc-linux. Here's a minimized testcase of the
code with the problem:
extern void foo (void);
class cPar
{
public:
double dblval;
long longValue ();
double doubleValue ();
};
long
cPar::longValue ()
{
return (long) doubleValue ();
}
double
cPar::doubleValue ()
{
foo ();
return dblval;
}
and code to invoke it from a separate file:
void foo (void) { }
class cPar
{
public:
double dblval;
long longValue ();
double doubleValue ();
};
int
main ()
{
cPar x;
long i;
x.dblval = 42.;
i = x.longValue ();
if (i != 42)
__builtin_abort ();
}
The failure starts on the tuples branch with this patch:
http://gcc.gnu.org/viewcvs?view=rev&rev=138188
r138188 | rguenth | 2008-07-27 14:38:30 +0000 (Sun, 27 Jul 2008)
--
Summary: bad tail call from tuples merge
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janis at gcc dot gnu dot org
GCC target triplet: powerpc-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37024
|
|