On Fri, Mar 2, 2018 at 8:55 AM, Jeff Law <l...@redhat.com> wrote: > On 03/02/2018 09:38 AM, Thomas Schwinge wrote: >> Hi! >> >> On Fri, 26 Jan 2018 16:24:48 +0100, Martin Liška <mli...@suse.cz> wrote: >>> This fixes detection of ifunc target capability. >>> I'm going to install the patch. >> >> You could also just have approved the patch I had sent two months before: >> <http://mid.mail-archive.com/87fu9aiemr.fsf@euler.schwinge.homeip.net>. >> ;-) >> >> One remark: >> >>> --- a/gcc/testsuite/lib/target-supports.exp >>> +++ b/gcc/testsuite/lib/target-supports.exp >>> @@ -449,7 +449,7 @@ proc check_ifunc_available { } { >>> extern "C" { >>> #endif >>> typedef void F (void); >>> - F* g (void) {} >>> + F* g (void) { return 0; } >>> void f () __attribute__ ((ifunc ("g"))); >>> #ifdef __cplusplus >>> } >> >> Is it OK to "return 0" from this ifunc handler, or might some analysis in >> GCC trip over that (at some later point)? In my patch, I returned the >> address of an "extern" function. > ISTM the question is whether or not ifuncs are ever allowed to return > NULL. Maybe ping the glibc folks since that's where the extension started?
No, ifunc selector should never return NULL. -- H.J.