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

Reply via email to