summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-elfvers/vers9.c
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-elfvers/vers9.c')
-rw-r--r--ld/testsuite/ld-elfvers/vers9.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elfvers/vers9.c b/ld/testsuite/ld-elfvers/vers9.c
new file mode 100644
index 00000000000..432fddb19b3
--- /dev/null
+++ b/ld/testsuite/ld-elfvers/vers9.c
@@ -0,0 +1,45 @@
+/*
+ * Testcase to verify that reference to foo@BAR and a definition of foo@@BAR
+ * are not treated as a multiple def.
+ */
+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
+new_foo()
+{
+ return 1000+bar();
+
+}
+
+int
+main()
+{
+ old_foo1();
+ return 0;
+}
+
+__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");