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:
parent
26d56a939e
commit
4e1626f5a8
@ -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>
|
2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/18841
|
PR ld/18841
|
||||||
|
@ -473,12 +473,20 @@ run_cc_link_tests [list \
|
|||||||
"libpr18808.so" \
|
"libpr18808.so" \
|
||||||
] \
|
] \
|
||||||
[list \
|
[list \
|
||||||
"Build libpr18841.so" \
|
"Build libpr18841b.so" \
|
||||||
"-shared" \
|
"-shared" \
|
||||||
"-fPIC -O0 -g" \
|
"-fPIC -O0 -g" \
|
||||||
{ pr18841b.c } \
|
{ 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" \
|
"pr18808.out" \
|
||||||
] \
|
] \
|
||||||
[list \
|
[list \
|
||||||
"Run pr18841" \
|
"Run pr18841 with libpr18841b.so" \
|
||||||
"tmpdir/libpr18841.so" \
|
"tmpdir/libpr18841b.so" \
|
||||||
"" \
|
"" \
|
||||||
{ pr18841a.c } \
|
{ pr18841a.c } \
|
||||||
"pr18841" \
|
"pr18841b" \
|
||||||
|
"pr18841.out" \
|
||||||
|
] \
|
||||||
|
[list \
|
||||||
|
"Run pr18841 with libpr18841c.so" \
|
||||||
|
"tmpdir/libpr18841c.so" \
|
||||||
|
"" \
|
||||||
|
{ pr18841a.c } \
|
||||||
|
"pr18841c" \
|
||||||
"pr18841.out" \
|
"pr18841.out" \
|
||||||
] \
|
] \
|
||||||
]
|
]
|
||||||
|
17
ld/testsuite/ld-ifunc/pr18841c.c
Normal file
17
ld/testsuite/ld-ifunc/pr18841c.c
Normal 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;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user