OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.dg/] [opt/] [cfg2.C] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
// PR optimization/12215
// PR optimization/12215
// Origin: 
// Origin: 
// Reduced testcase by Wolfgang Bangerth 
// Reduced testcase by Wolfgang Bangerth 
// This used to fail because the CSE pass destroyed the CFG in presence
// This used to fail because the CSE pass destroyed the CFG in presence
// of trapping loads, which led to the deletion of basic blocks.
// of trapping loads, which led to the deletion of basic blocks.
// { dg-do compile }
// { dg-do compile }
// { dg-options "-O2 -fno-gcse -fnon-call-exceptions" }
// { dg-options "-O2 -fno-gcse -fnon-call-exceptions" }
struct B {
struct B {
  ~B() throw() {}
  ~B() throw() {}
};
};
struct X {
struct X {
  X(const char*, const B&);
  X(const char*, const B&);
  ~X() {}
  ~X() {}
};
};
bool m();
bool m();
void f(int &i, float &arg0);
void f(int &i, float &arg0);
void g (const char **argv) {
void g (const char **argv) {
  float val;
  float val;
  int i = 1;
  int i = 1;
  try {
  try {
    while ( i < 1 )
    while ( i < 1 )
      {
      {
        X arg(argv[i], B());
        X arg(argv[i], B());
        if (m())
        if (m())
          throw(0);
          throw(0);
        f(i, val);
        f(i, val);
      }
      }
  } catch (...) {}
  } catch (...) {}
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.