https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105960
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target|x86_64 |i?86-*-* Last reconfirmed| |2022-06-14 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 CC| |hjl.tools at gmail dot com --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. Something is wrong with either ld.so or GCC. We end up with .globl exp_ref .type exp_ref, @function exp_ref: .LFB1: .cfi_startproc pushl %ebx .cfi_def_cfa_offset 8 .cfi_offset 3, -8 popl %ebx .cfi_restore 3 .cfi_def_cfa_offset 4 jmp expfull_ref@PLT ^^^ this crashes .type expfull_ref, @gnu_indirect_function .set expfull_ref,expfull_ref.resolver .type expfull_ref.resolver, @function expfull_ref.resolver: .LFB4: .cfi_startproc pushl %ebx but expfull_ref isn't .globl!? #define TARGET_CLONES __attribute__((target_clones("default","fma"))) TARGET_CLONES static inline double expfull_ref(double x) { return __builtin_pow(x, 0.1234); } double exp_ref(double x) { return expfull_ref(x); }