diff --git a/glm/ext/scalar_integer.inl b/glm/ext/scalar_integer.inl index 49f3cb3f..28e48d7a 100644 --- a/glm/ext/scalar_integer.inl +++ b/glm/ext/scalar_integer.inl @@ -178,7 +178,7 @@ namespace detail { GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'prevPowerOfTwo' only accept integer inputs"); - return isPowerOfTwo(value) ? value : static_cast(1 << findMSB(value)); + return isPowerOfTwo(value) ? value : static_cast(1) << static_cast(findMSB(value)); } template diff --git a/test/ext/ext_vector_integer.cpp b/test/ext/ext_vector_integer.cpp index 5974841c..63792e9e 100644 --- a/test/ext/ext_vector_integer.cpp +++ b/test/ext/ext_vector_integer.cpp @@ -486,7 +486,7 @@ namespace findNSB int test() { int Error = 0; -/* + Error += run<1, glm::uint8>(); Error += run<2, glm::uint8>(); Error += run<3, glm::uint8>(); @@ -500,14 +500,13 @@ namespace findNSB Error += run<1, glm::uint32>(); Error += run<2, glm::uint32>(); Error += run<3, glm::uint32>(); -*/ Error += run<4, glm::uint32>(); -/* + Error += run<1, glm::uint64>(); Error += run<2, glm::uint64>(); Error += run<3, glm::uint64>(); Error += run<4, glm::uint64>(); -*/ + return Error; } }//namespace findNSB