https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103304

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This is a bug in your program, combined with a bug in libstdc++ that allows
your invalid code to compile.

You have included <ctgmath> but then called fma and fmaf unqualified, which is
invalid. If you include <ctgmath> then they are only guaranteed to be defined
in namespace std. What happens is that you call ::fma which is the libc version
that takes double arguments. To get the overload for float arguments you need
to call std::fma (either using a qualified name, or following using std::fma or
using namespace std).

*** This bug has been marked as a duplicate of bug 89855 ***

Reply via email to