diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-08-18 10:43:19 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-08-18 10:43:47 -0700 |
commit | 4e1626f5a8d73573d6cf593fabe5bc80f7b3e04e (patch) | |
tree | 39a54490c8d0ae7a58d3751f5bcea69ed96f8f7f /ld | |
parent | 26d56a939e9e54e09d46ea6e9678463ac344fa33 (diff) | |
download | binutils-gdb-4e1626f5a8d73573d6cf593fabe5bc80f7b3e04e.tar.gz |
Add another test for PR ld/18841
PR ld/18841
* ld-ifunc/ifunc.exp: Add another test for PR ld/18841.
* ld-ifunc/pr18841c.c: New file.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc.exp | 26 | ||||
-rw-r--r-- | ld/testsuite/ld-ifunc/pr18841c.c | 17 |
3 files changed, 44 insertions, 5 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index b8546d0b42a..ce3b310d348 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,6 +1,12 @@ 2015-08-18 H.J. Lu <hongjiu.lu@intel.com> PR ld/18841 + * ld-ifunc/ifunc.exp: Add another test for PR ld/18841. + * ld-ifunc/pr18841c.c: New file. + +2015-08-18 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/18841 * ld-ifunc/ifunc.exp: Add a test for PR ld/18841. * ld-ifunc/pr18841.out: New file. * ld-ifunc/pr18841a.c: Likewise. diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp index b0f6de07a16..d3bebdd4072 100644 --- a/ld/testsuite/ld-ifunc/ifunc.exp +++ b/ld/testsuite/ld-ifunc/ifunc.exp @@ -473,12 +473,20 @@ run_cc_link_tests [list \ "libpr18808.so" \ ] \ [list \ - "Build libpr18841.so" \ + "Build libpr18841b.so" \ "-shared" \ "-fPIC -O0 -g" \ { pr18841b.c } \ {} \ - "libpr18841.so" \ + "libpr18841b.so" \ + ] \ + [list \ + "Build libpr18841c.so" \ + "-shared" \ + "-fPIC -O0 -g" \ + { pr18841c.c } \ + {} \ + "libpr18841c.so" \ ] \ ] @@ -492,11 +500,19 @@ run_ld_link_exec_tests [] [list \ "pr18808.out" \ ] \ [list \ - "Run pr18841" \ - "tmpdir/libpr18841.so" \ + "Run pr18841 with libpr18841b.so" \ + "tmpdir/libpr18841b.so" \ + "" \ + { pr18841a.c } \ + "pr18841b" \ + "pr18841.out" \ + ] \ + [list \ + "Run pr18841 with libpr18841c.so" \ + "tmpdir/libpr18841c.so" \ "" \ { pr18841a.c } \ - "pr18841" \ + "pr18841c" \ "pr18841.out" \ ] \ ] diff --git a/ld/testsuite/ld-ifunc/pr18841c.c b/ld/testsuite/ld-ifunc/pr18841c.c new file mode 100644 index 00000000000..03a6354b4f9 --- /dev/null +++ b/ld/testsuite/ld-ifunc/pr18841c.c @@ -0,0 +1,17 @@ +void foo() __attribute__((ifunc("resolve_foo"))); + +static void foo_impl() {} +extern void zoo(void); +void (*pz)(void) = zoo; + +void test() +{ + void (*pg)(void) = foo; + pg(); +} + +static void* resolve_foo() +{ + pz(); + return foo_impl; +} |