AK: Fix build with Xcode 14.2's clang

Else:

    AK/BitStream.h:218:24:
        error: inline function '...::lsb_mask<unsigned char>' is not
               defined [-Werror,-Wundefined-inline]
        static constexpr T lsb_mask(T bits)
                           ^
This commit is contained in:
Nico Weber 2023-03-29 09:03:15 +02:00 committed by Tim Flynn
parent 13bc999173
commit e1f8443db0
Notes: sideshowbarker 2024-07-17 05:03:11 +09:00

View file

@ -120,6 +120,15 @@ private:
/// A stream wrapper class that allows you to read arbitrary amounts of bits
/// in little-endian order from another stream.
class LittleEndianInputBitStream : public Stream {
template<Unsigned T>
static constexpr T lsb_mask(T bits)
{
constexpr auto max = NumericLimits<T>::max();
constexpr auto digits = NumericLimits<T>::digits();
return bits == 0 ? 0 : max >> (digits - bits);
}
public:
explicit LittleEndianInputBitStream(MaybeOwned<Stream> stream)
: m_stream(move(stream))
@ -214,15 +223,6 @@ public:
private:
using BufferType = u64;
template<Unsigned T>
static constexpr T lsb_mask(T bits)
{
constexpr auto max = NumericLimits<T>::max();
constexpr auto digits = NumericLimits<T>::digits();
return bits == 0 ? 0 : max >> (digits - bits);
}
ALWAYS_INLINE BufferType lsb_aligned_buffer() const
{
return m_bit_offset == bit_buffer_size ? 0 : m_bit_buffer >> m_bit_offset;