diff options
Diffstat (limited to 'ld/testsuite/ld-elfvers/vers5.c')
-rw-r--r-- | ld/testsuite/ld-elfvers/vers5.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elfvers/vers5.c b/ld/testsuite/ld-elfvers/vers5.c new file mode 100644 index 0000000..cc6ea40 --- /dev/null +++ b/ld/testsuite/ld-elfvers/vers5.c @@ -0,0 +1,51 @@ +/* + * Testcase to verify that foo@BAR and foo@@BAR are correctly detected + * as a multiply defined symbol. + */ +const char * bar1 = "asdf"; +const char * bar2 = "asdf"; + +int +bar() +{ + return 3; +} + +int +original_foo() +{ + return 1+bar(); + +} + +int +old_foo() +{ + return 10+bar(); + +} + +int +old_foo1() +{ + return 100+bar(); + +} + +int +new_foo() +{ + return 1000+bar(); + +} + +__asm__(".symver original_foo,foo@"); +__asm__(".symver old_foo,foo@VERS_1.1"); +__asm__(".symver old_foo1,foo@VERS_1.2"); +__asm__(".symver new_foo,foo@@VERS_1.2"); + +int +main () +{ + return 0; +} |