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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.old-deja/] [g++.other/] [vtbl2.C] - Blame information for rev 749

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 699 jeremybenn
// { dg-do run  }
2
// Copyright (C) 2000 Free Software Foundation, Inc.
3
// Contributed by Nathan Sidwell 8 Feb 2000 
4
 
5
// vtable construction reorganisation broke this
6
 
7
// execution test
8
 
9
#include 
10
 
11
static int fail = 0;
12
 
13
void bad (char const *name)
14
{
15
  printf ("Bad %s\n", name);
16
  fail = 1;
17
}
18
void ok (char const *name)
19
{
20
  printf ("Ok %s\n", name);
21
}
22
 
23
struct Core
24
{
25
  virtual ~Core ();
26
  virtual void Wibble () {bad (__PRETTY_FUNCTION__);}
27
  virtual void Wobble () {bad (__PRETTY_FUNCTION__);}
28
  virtual void Bogus  () {bad (__PRETTY_FUNCTION__);}
29
};
30
struct Side
31
{
32
  virtual ~Side ();
33
  virtual void Arfle () {bad (__PRETTY_FUNCTION__);}
34
  virtual void Barfle () {bad (__PRETTY_FUNCTION__);}
35
  virtual void Gloop () {bad (__PRETTY_FUNCTION__);}
36
  virtual void Glorp () {bad (__PRETTY_FUNCTION__);}
37
  virtual void Glump () {bad (__PRETTY_FUNCTION__);}
38
  virtual void Bogus  () {bad (__PRETTY_FUNCTION__);}
39
};
40
struct Base : Core
41
{
42
  virtual ~Base ();
43
  virtual void Bink () {bad (__PRETTY_FUNCTION__);}
44
  virtual void Bonk () {bad (__PRETTY_FUNCTION__);}
45
  virtual void  Bogus () {bad (__PRETTY_FUNCTION__);}
46
};
47
struct Multi : Base, Side
48
{
49
  virtual ~Multi ();
50
  virtual void Stomped () {ok (__PRETTY_FUNCTION__);}
51
  virtual void Bunk () {bad (__PRETTY_FUNCTION__);}
52
  virtual void Bogus () {bad (__PRETTY_FUNCTION__);}
53
};
54
struct Trail : Multi
55
{
56
  virtual ~Trail ();
57
};
58
Core::~Core () {}
59
Side::~Side () {}
60
Base::~Base () {}
61
Multi::~Multi () {}
62
Trail::~Trail () {}
63
 
64
void foo (Multi *ptr)
65
{
66
  ptr->Stomped ();
67
}
68
 
69
int main ()
70
{
71
  Multi m;
72
  Trail t;
73
 
74
  foo (&m);
75
  foo (&t);
76
  return fail != 0;
77
}

powered by: WebSVN 2.1.0

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