[PATCH] D62731: Add support for options -frounding-math, -ftrapping-math, -ffp-model=, and -ffp-exception-behavior=, : Specify floating point behavior

Craig Topper via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 26 20:41:30 PST 2019


craig.topper added a comment.

In D62731#1796962 <https://reviews.llvm.org/D62731#1796962>, @AntonYudintsev wrote:

> I have found bug in clang-cl (win32 clang), related to recent inroduction of ffp-exception-behavior.
>  Unfortunately, I don't have a working patch yet, and since LLVM bugtracker registration is closed, I can not even submit a bug.
>
> So, if it is not a trouble for you, I will email the bug description here.
>
> Please let me know if it isn't appropriate. Bug description:
>  ========================================================
>
> Windows: clang-cl is generating call to non-existing lib function for win32 with /fp:except option.
>  With recent ffp-exception-behavior=maytrap/strict, fp:except in clang-cl became generate FPE aware code.
>
> But in case of floorf and ceilf it generates call to non-existing library function.
>
> clang-cl.exe -m32 /Ox /fp:except testFloor.cpp /FA
>  testFloor.cpp:
>
>   #include <math.h>
>   float ret(float v) {  return floorf(v); }
>
>
> resulting assember:
>
>   push    eax
>   movss    xmm0, dword ptr [esp + 8]
>   movss    dword ptr [esp], xmm0
>   call    _floorf #no such function!!!
>   pop    eax
>   ret
>   
>
> Expected behaviour:
>
> there is no floorf lib function. Like with cosf and other math functions, floorf in MSVC is implemented as inline function.
>
> So, it should be call to _floor (with apropriate conversion first).


Hopefully fixed by 53ee806d93e8d2371726ec5ce59b0e68b309c258 <https://reviews.llvm.org/rG53ee806d93e8d2371726ec5ce59b0e68b309c258>


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62731/new/

https://reviews.llvm.org/D62731





More information about the cfe-commits mailing list