diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/lto.exp | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr22983.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr22983.t | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr22983a.c | 14 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr22983b.c | 10 |
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; |