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.
This commit is contained in:
H.J. Lu 2015-08-18 10:43:19 -07:00
parent 26d56a939e
commit 4e1626f5a8
3 changed files with 44 additions and 5 deletions

View File

@ -1,3 +1,9 @@
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

View File

@ -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 } \
"pr18841" \
"pr18841b" \
"pr18841.out" \
] \
[list \
"Run pr18841 with libpr18841c.so" \
"tmpdir/libpr18841c.so" \
"" \
{ pr18841a.c } \
"pr18841c" \
"pr18841.out" \
] \
]

View File

@ -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;
}