OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [g++.dg/] [opt/] [eh5.C] - Diff between revs 301 and 384

Only display areas with differences | Details | Blame | View Log

Rev 301 Rev 384
// PR 41377
// PR 41377
// { dg-do compile }
// { dg-do compile }
// { dg-options "-O3" }
// { dg-options "-O3" }
struct A
struct A
{
{
  bool foo(int*) const;
  bool foo(int*) const;
} a;
} a;
struct B {};
struct B {};
struct B1 : B
struct B1 : B
{
{
  bool (A::*pmf)(int*) const;
  bool (A::*pmf)(int*) const;
  const A* pa;
  const A* pa;
  B1() : pmf(&A::foo), pa(&a) {}
  B1() : pmf(&A::foo), pa(&a) {}
  bool operator()() const { return (pa->*pmf)(new int); }
  bool operator()() const { return (pa->*pmf)(new int); }
};
};
struct B2 : B
struct B2 : B
{
{
  B1 b1;
  B1 b1;
  B2(const B1& _b1) : b1(_b1) {}
  B2(const B1& _b1) : b1(_b1) {}
  bool operator()() const { return b1(); }
  bool operator()() const { return b1(); }
};
};
template struct C
template struct C
{
{
  void bar(B2 b2) { while (b2()) ; }
  void bar(B2 b2) { while (b2()) ; }
  C() { bar(B2(B1())); }
  C() { bar(B2(B1())); }
};
};
void baz(int i)
void baz(int i)
{
{
  switch(i)
  switch(i)
  {
  {
    case 0: new C<0>;
    case 0: new C<0>;
    case 1: new C<1>;
    case 1: new C<1>;
    case 2: new C<2>;
    case 2: new C<2>;
  }
  }
}
}
 
 

powered by: WebSVN 2.1.0

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