<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/55887>55887</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            libc: src/math/fma.cpp does not compile with clang 15.0.0 LATEST
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ErichLoew
      </td>
    </tr>
</table>

<pre>
    ------------------------------------------------------------------------
Date:     20220605
OS:       OpenSUSE Leap 15.2
Kernel:   5.18.1
Compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project.git 9e6bbd051fb5fe8e9cb7e525c17d3099cce382ab)
File:     llvm/libc/src/math/fma.cpp
Issue:  In original code the reference to namespace fputil is not present and this triggers a clang++ compile error.
/home/SETUP/clang/LATEST/llvm/libc/src/math/fma.cpp:19:20: error: no matching function for call to 'fma'
            return fputil::fma(x, y, z);
                   ^~~~~~~~~~~
/home/SETUP/clang/LATEST/llvm/libc/src/__support/FPUtil/FMA.h:33:66: note: candidate template ignored: substitution failure [with T = double]: implicit instantiation of undefined template '__llvm_libc::cpp::EnableIf<false, double>'
static inline cpp::EnableIfType<cpp::IsSame<T, float>::Value, T> fma(T x, T y,
1 error generated.

The following code experiment compiles

namespace __llvm_libc
{
    namespace fputil
    {
        LLVM_LIBC_FUNCTION(double, fma, (double const x, double const y, double const z))
        {
            return fputil::fma(x, y, z);
        }
    } // namespace fputil
} // namespace __llvm_libc
------------------------------------------------------------------------

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytFclu2zj0a-QLUUGmIks66OB4AYxxmwJWcjUo6snigCYFkmqa-fp5FO3EbdoCRUsQXB7fvrHR7Uv14S-NKFlHyXLNHETpkvhBE0qTRZKFl4fDFU7IwwDq8HjYkD2wgcyzmAacf8AokAEvi-dFPA_wlT4PQoLxL1wydSJfwFihladN4oREtOidGywiRHSL8yRcPzYx12e8SPnlun0YjP4XuIsRgZSwaJo2yeZdk3VQQMmbHDKa8XnepklZcg5pQVkT0TLosUUlrlZcmYqG42aNX8_M9bh1ZxbzYQg0O2vHQLRTRBtxEopJwnULxPVADHRgQHG8aaLYGezA8NINoxOSCEuUdmQwYEE5wlSLRAh0yOeELiAs-COi9ziR6-QnAsZoEwf5qE-vz4DbYVM_fsb9QrHdL-vNob7xzy9MSZfzEheaeEsm9v6gNEE83guMSDcq7nxIOm0IZ1J6gyKaIwdcgy7kZhhwo1EXQ33c0uWEWnyN6Iq8-OU_7_j0_j3tZUTZJsp_Of_EA8ejHYdBG4fn7edHryUePi7jHlVNU1wWi-CEkPIcoyNazH_i4DxIfxAnpQ20_tWOjXXCjcFFTMjRABpw_4yJSmoSpWvS6rHB_MrWHl8gC8ExSYWyjikn2ESpOzKqFjqhoH2Tgw4-Hr0Nx8mCyZkhajg3iiHbXRelq45JC96zF1Hp5jU0KMQJjtIksibviOuXAdFXr_CdPWCuIqT27DqpmfPcprcnJsdJSo0gEoJakyms9RTYIHEe8oicQIFBK9prwk5rjbXRaSn1s0-uqVzg6wBGnH0hXBLd3lK8Fc-tLwJCfpNE3xfZ28s3aH7s908fj_vd_eq4ffy0qncPn9CUi--82d60FXmFoVoYrGDpN5CXd5Apta9t5TWfv5f_J3US5etby9YkNMafmP9DhHd-_Lt_xayt0rZMSzbDwpBQXXKX_KgBofcg9MJrj5sKJ3wGl08gVPNsNLL6vc8Ar8J3aYuHLCuKfNZXtMkKmjd0kfOGMUpp1nQJ6wpaQgm8zGeSNSBthSUcUargmUws8IwFPBPV9fObZ_M0yeL0rsgSBpzeNYtFkhTRXQJn7AKx1yPW5jQz1aRSM54sPkphnX17ZNZiLwGYxCF_Nrpem2pjBO_3Gp5nk_BqUv5_li9I6A">