• Arnd Bergmann's avatar
    x86/math-emu: Fix function cast warnings · e0ca9353
    Arnd Bergmann authored
    clang-16 warns about casting function pointers with incompatible
    prototypes. The x86 math-emu code does this in a number of places
    to call some trivial functions that need no arguments:
    
      arch/x86/math-emu/fpu_etc.c:124:14: error: cast from 'void (*)(void)' to 'FUNC_ST0' \
        (aka 'void (*)(struct fpu__reg *, unsigned char)') converts to incompatible function \
        type [-Werror,-Wcast-function-type-strict]
        124 |         fchs, fabs, (FUNC_ST0) FPU_illegal, (FUNC_ST0) FPU_illegal,
            |                     ^~~~~~~~~~~~~~~~~~~~~~
    
      arch/x86/math-emu/fpu_trig.c:1634:19: error: cast from 'void (*)(void)' to 'FUNC_ST0' \
        (aka 'void (*)(struct fpu__reg *, unsigned char)') converts to incompatible function \
        type [-Werror,-Wcast-function-type-strict]
       1634 |         fxtract, fprem1, (FUNC_ST0) fdecstp, (FUNC_ST0) fincstp
            |                          ^~~~~~~~~~~~~~~~~~
    
      arch/x86/math-emu/reg_constant.c:112:53: error: cast from 'void (*)(void)' to 'FUNC_RC' \
      (aka 'void (*)(int)') converts to incompatible function \
      type [-Werror,-Wcast-function-type-strict]
        112 |         fld1, fldl2t, fldl2e, fldpi, fldlg2, fldln2, fldz, (FUNC_RC) FPU_illegal
    
    Change the fdecstp() and fincstp() functions to actually have the correct
    prototypes based on the caller, and add wrappers around FPU_illegal() for
    adapting those.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
    Link: https://lore.kernel.org/lkml/20240213095631.454543-1-arnd@kernel.org
    e0ca9353
fpu_trig.c 38.4 KB