diff options
Diffstat (limited to 'ld/testsuite/ld-selective')
-rw-r--r-- | ld/testsuite/ld-selective/3.cc | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-selective/4.cc | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-selective/5.cc | 6 |
3 files changed, 19 insertions, 1 deletions
diff --git a/ld/testsuite/ld-selective/3.cc b/ld/testsuite/ld-selective/3.cc index 79d5e96..c40bf35 100644 --- a/ld/testsuite/ld-selective/3.cc +++ b/ld/testsuite/ld-selective/3.cc @@ -14,7 +14,8 @@ struct B : public A void B::foo() { } // keep -void _start() __asm__("_start"); // keep +void _start() __asm__("_start"); // keep +void start() __asm__("start"); // some toolchains use this name. A a; // keep B b; @@ -32,6 +33,11 @@ void _start() #endif } +void start () +{ + _start (); +} + // In addition, keep A's virtual table. // We'll wind up keeping `b' and thus B's virtual table because diff --git a/ld/testsuite/ld-selective/4.cc b/ld/testsuite/ld-selective/4.cc index 02864a7..f4fc21c 100644 --- a/ld/testsuite/ld-selective/4.cc +++ b/ld/testsuite/ld-selective/4.cc @@ -15,6 +15,7 @@ struct B : public A void B::foo() { } // lose void _start() __asm__("_start"); // keep +void start() __asm__("start"); // some toolchains use this name. A a; // keep B b; @@ -25,4 +26,9 @@ void _start() getme()->bar(); } +void start () +{ + _start (); +} + extern "C" void __main() { } diff --git a/ld/testsuite/ld-selective/5.cc b/ld/testsuite/ld-selective/5.cc index f5289f8..2c974d9 100644 --- a/ld/testsuite/ld-selective/5.cc +++ b/ld/testsuite/ld-selective/5.cc @@ -15,6 +15,7 @@ struct B : public A void B::foo() { } // lose void _start() __asm__("_start"); // keep +void start() __asm__("start"); // some toolchains use this name. A a; // keep B b; @@ -29,4 +30,9 @@ void _start() getme()->bar(); } +void start () +{ + _start (); +} + extern "C" void __main() { } |