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

Reply via email to