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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [binutils-2.20.1/] [ld/] [testsuite/] [ld-selective/] [3.cc] - Blame information for rev 816

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

Line No. Rev Author Line
1 205 julius
struct A
2
{
3
  virtual void foo();
4
  virtual void bar();
5
};
6
 
7
void A::foo() { }                       // keep
8
void A::bar() { }                       // lose
9
 
10
struct B : public A
11
{
12
  virtual void foo();
13
};
14
 
15
void B::foo() { }                       // keep
16
 
17
void _start() __asm__("_start"); // keep
18
void start() __asm__("start"); // some toolchains use this name.
19
 
20
A a;                                    // keep
21
B b;
22
A *getme() { return &a; }               // keep
23
 
24
void _start()
25
{
26
  getme()->foo();
27
#ifdef __GNUC__
28
#if (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
29
// gcc-2.95.2 gets this test wrong, and loses B::foo().
30
// Cheat.  After all, we aren't trying to test the compiler here.
31
  b.foo();
32
#endif
33
#endif
34
}
35
 
36
void start ()
37
{
38
  _start ();
39
}
40
 
41
// In addition, keep A's virtual table.
42
 
43
// We'll wind up keeping `b' and thus B's virtual table because
44
// `a' and `b' are both referenced from the constructor function.
45
 
46
extern "C" void __main() { }

powered by: WebSVN 2.1.0

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