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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.mike/] [p4736b.C] - Blame information for rev 338

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 305 jeremybenn
// { dg-do run  }
2
// prms-id: 4736
3
 
4
class Rep {
5
public:
6
  virtual int foo() { return 1; }
7
};
8
 
9
class Rep_1 : public Rep {
10
};
11
 
12
class VBaseMain {
13
public:
14
  virtual int foo() { return 2; }
15
};
16
 
17
class OtherVBase {
18
public:
19
  virtual int foo() { return 3; }
20
};
21
 
22
class Rep_2 : public Rep {
23
};
24
 
25
class DVBase : public VBaseMain, public Rep_2, public OtherVBase {
26
public:
27
  virtual int foo() { return 4; }
28
};
29
 
30
class Main : public Rep_1, virtual public DVBase {
31
public:
32
  virtual int foo() { return 5; }
33
};
34
 
35
int main() {
36
  Main m;
37
  if (m.foo() != 5)
38
    return 1;
39
  if (((Rep*)(Rep_1*)&m)->foo() != 5)
40
    return 2;
41
  if (((DVBase*)&m)->foo() != 5)
42
    return 3;
43
  if (((VBaseMain*)(DVBase*)&m)->foo() != 5)
44
    return 4;
45
  if (((Rep*)(Rep_2*)(DVBase*)&m)->foo() != 5)
46
    return 5;
47
  if (((OtherVBase*)(DVBase*)&m)->foo() != 5)
48
    return 6;
49
}

powered by: WebSVN 2.1.0

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