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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [abi/] [covariant6.C] - Blame information for rev 693

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 693 jeremybenn
struct A
2
{
3
  virtual A* f();
4
};
5
 
6
struct B: virtual A
7
{
8
  virtual A* f();
9
};
10
 
11
struct C: B
12
{
13
  virtual C* f();
14
};
15
 
16
C* C::f() { return 0; }
17
 
18
// When we emit C::f, we should emit both thunks: one for B and one for A.
19
// { dg-final { scan-assembler "_ZTch0_v0_n16_N1C1fEv" { target { ilp32  && { ! { ia64-*-hpux* } } } } } }
20
// { dg-final { scan-assembler "_ZTch0_v0_n32_N1C1fEv" { target { lp64  || { ia64-*-hpux* } } } } }
21
// { dg-final { scan-assembler "_ZTcv0_n12_v0_n16_N1C1fEv" { target { ilp32  && { ! { ia64-*-hpux* } } } } } }
22
// { dg-final { scan-assembler "_ZTcv0_n24_v0_n32_N1C1fEv" { target { lp64  || { ia64-*-hpux* } } } } }
23
 
24
struct D: B
25
{
26
  virtual void dummy ();
27
  virtual D* f();
28
};
29
 
30
void D::dummy() { }
31
 
32
// When we emit the D vtable, it should refer to the thunk for B.
33
// { dg-final { scan-assembler "_ZTch0_v0_n16_N1D1fEv" { target { ilp32  && { ! { ia64-*-hpux* } } } } } }
34
// { dg-final { scan-assembler "_ZTch0_v0_n32_N1D1fEv" { target { lp64  || { ia64-*-hpux* } } } } }

powered by: WebSVN 2.1.0

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