aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/testsuite/ld-plugin/lto.exp10
-rw-r--r--ld/testsuite/ld-plugin/pr22983.d9
-rw-r--r--ld/testsuite/ld-plugin/pr22983.t6
-rw-r--r--ld/testsuite/ld-plugin/pr22983a.c14
-rw-r--r--ld/testsuite/ld-plugin/pr22983b.c10
6 files changed, 58 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 522d0078..2eaf710 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2018-03-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22983
+ * testsuite/ld-plugin/lto.exp: Run PR ld/22983 test.
+ * testsuite/ld-plugin/pr22983.d: New file.
+ * testsuite/ld-plugin/pr22983.t: Likewise.
+ * testsuite/ld-plugin/pr22983a.c: Likewise.
+ * testsuite/ld-plugin/pr22983b.c: Likewise.
+
2018-03-15 Andreas Schwab <schwab@suse.de>
PR ld/22949
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index 7300f48..19aec3f 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -573,6 +573,16 @@ run_ld_link_exec_tests $lto_run_tests
if { [is_elf_format] } {
run_ld_link_exec_tests $lto_run_elf_tests
+ run_cc_link_tests [list \
+ [list \
+ "Build pr22983" \
+ "-Wl,--dynamic-list,pr22983.t" \
+ "-flto" \
+ {pr22983a.c pr22983b.c} \
+ {{readelf {--dyn-syms --wide} pr22983.d}} \
+ "pr22983" \
+ ] \
+ ]
}
if { [is_elf_format] && [check_lto_shared_available] } {
diff --git a/ld/testsuite/ld-plugin/pr22983.d b/ld/testsuite/ld-plugin/pr22983.d
new file mode 100644
index 0000000..af1d710
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr22983.d
@@ -0,0 +1,9 @@
+Symbol table '\.dynsym' contains [0-9]+ entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+#...
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +OBJECT +GLOBAL +DEFAULT +[0-9]+ +var_attr_used_enabled
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +OBJECT +GLOBAL +DEFAULT +[0-9]+ +var_attr_used_disabled
+#...
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +func_attr_used_enabled
+ +[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +FUNC +GLOBAL +DEFAULT +[0-9]+ +func_attr_used_disabled
+#...
diff --git a/ld/testsuite/ld-plugin/pr22983.t b/ld/testsuite/ld-plugin/pr22983.t
new file mode 100644
index 0000000..ca31f10
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr22983.t
@@ -0,0 +1,6 @@
+{
+var_attr_used_disabled;
+var_attr_used_enabled;
+func_attr_used_disabled;
+func_attr_used_enabled;
+};
diff --git a/ld/testsuite/ld-plugin/pr22983a.c b/ld/testsuite/ld-plugin/pr22983a.c
new file mode 100644
index 0000000..283f263
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr22983a.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+int func_attr_used_disabled(int val);
+int func_attr_used_enabled(int val);
+extern int var_attr_used_enabled;
+extern int var_attr_used_disabled;
+
+int main(int argc, const char **argv){
+ printf("%d\n", var_attr_used_disabled);
+ printf("%d\n", var_attr_used_enabled);
+ printf("%d\n", func_attr_used_disabled(1));
+ printf("%d\n", func_attr_used_enabled(1));
+ return 0;
+}
diff --git a/ld/testsuite/ld-plugin/pr22983b.c b/ld/testsuite/ld-plugin/pr22983b.c
new file mode 100644
index 0000000..1b66ed8
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr22983b.c
@@ -0,0 +1,10 @@
+int func_attr_used_disabled(int val){
+ return val + 1;
+}
+__attribute__((used))
+int func_attr_used_enabled(int val){
+ return val + 1;
+}
+__attribute__((used))
+int var_attr_used_enabled = 0b0101010101;
+int var_attr_used_disabled = 0b0101010101;