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

    <tr>
        <th>Summary</th>
        <td>
            algorithms.cpp doesn't compile with c++17
        </td>
    </tr>

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

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

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

<pre>
    This line in libcxx/src/algortihms.cpp

auto depth_limit = 2 * std::__bit_log2(static_cast<size_t>(last - first));


is not able to compile when c++ standard is set to 17 

The root cause seems to be that definition in  libcxx/include/__bit/bit_log2.h is gaurded by a c++20 version check like this:

#if _LIBCPP_STD_VER >= 20

template <__libcpp_unsigned_integer _Tp>
_LIBCPP_HIDE_FROM_ABI constexpr _Tp __bit_log2(_Tp __t) noexcept {
  return numeric_limits<_Tp>::digits - 1 - std::countl_zero(__t);
}

#endif // _LIBCPP_STD_VER >= 20



a) How do we substitute the std::__bit_log2() call for C++17
b) IF this is a bug when will this be fixed ?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMlN-L2zgQx_8a5WXYYMtO4zz4Idms6cIdV3rLvRpZmtjTypKRxk22f_0he5dsDw4KQQFpfn4_M1YxUu8Qa7E7id15o2YefKgdBeW-KfeqgqFN581r_TJQBEsOgRxY6vTtJmQTgxayUbb3gWkY41ZPk8jOIjuup5rZg8GJh9bSSAyiOIMEIY8Q2YjiKIpj23bErfW9FLKKrJh0q1VkUTxG-okti-JJyMqqyPAAFwqRhTykX3H6mGs9KYLzDKqzCOxB-3Eii3Ad0IEW8iTkCSIrZ1QwQBEicrLL9_AxysuAELxn0GqOCBFxjMmsQ-BBMRi8kCMm75Icdz3IaTsbFLJZuhKyee9tO6RsvZqDQQPdK6j3cmQGPzDEFEsPqL-Dpe8pDcWkz8cGZUEXaP94Pj1--dL-_XJu_3n6CkmdJGr20ZRxnKxiBFE8tm0qb5ra2S2wTUuOsccA7cuUvBeP97Cfn89PbfP1rz_b4-kZtHeR8TYttvALqfUioQDn8aZxYhD7NyIAAXkODtw8YiC90o-pmjXnQt5QTxzhAXJ4uM-D9rNj2_7E4FOaJcUd9f78H0nQGbqAkI2Qze-J88uApvo_-ysYD1eEOHeRiWdOAPB_ZjS5aGUtXHyAxxVivl_jdenxuVnwJeAKurlfp-9K1q73HcKFbmhAFM3G1IU5FAe1wTrf55ncV2VVbYa6KowxZbczqjyUMt-h6YpCXQ561ynUB7mhWmayzIpcylzmcrdVuckLWZU79Uke8ssnUWY4KrJba3-MWx_6DcU4Y12Vh2q3sapDG5fFl9LhFZZHIWX6DoQ6-Tx0cx9FmVmKHO9RmNhivSw98dvSg_EYnZB7vq8c8fA-4_l-MwdbD8zTMtULrZ54mLut9qOQTYr-9vcwBf8NddqepaYoZLPU_G8AAAD___iQcwU">