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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.mike/] [p1862.C] - Diff between revs 149 and 154

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

Rev 149 Rev 154
// { dg-do run  }
// { dg-do run  }
// GROUPS vtable
// GROUPS vtable
extern "C" int printf (const char *, ...);
extern "C" int printf (const char *, ...);
class A
class A
{
{
public:
public:
  virtual ~A(){};
  virtual ~A(){};
  virtual int type(void)
  virtual int type(void)
  {
  {
    return -1;
    return -1;
  }
  }
};
};
class B
class B
{
{
public:
public:
  virtual ~B(){};
  virtual ~B(){};
};
};
class C0 : public B, public A
class C0 : public B, public A
{
{
public:
public:
  virtual int type(void)
  virtual int type(void)
  {
  {
    return 0;
    return 0;
  }
  }
};
};
class C1 : public C0
class C1 : public C0
{
{
public:
public:
  virtual int type(void)
  virtual int type(void)
  {
  {
    return 1;
    return 1;
  }
  }
};
};
class C2 : public C0
class C2 : public C0
{
{
public:
public:
  virtual int type(void)
  virtual int type(void)
  {
  {
    return 2;
    return 2;
  }
  }
};
};
int main()
int main()
{
{
  C1 *one = new C1;
  C1 *one = new C1;
  if (one->type() == 1)
  if (one->type() == 1)
    {
    {
      printf ("PASS\n");
      printf ("PASS\n");
      return 0;
      return 0;
    }
    }
  else
  else
    {
    {
      printf ("FAIL\n");
      printf ("FAIL\n");
      return 1;
      return 1;
    }
    }
}
}
 
 

powered by: WebSVN 2.1.0

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