Corrected test for msvc compiler

This commit is contained in:
Aaron 2016-09-12 10:55:01 -07:00
parent ec5e34e04f
commit 460b6ba1b6
2 changed files with 5 additions and 4 deletions

View File

@ -317,7 +317,7 @@ namespace detail
template <typename T, glm::precision P, template <typename, glm::precision> class vecType> template <typename T, glm::precision P, template <typename, glm::precision> class vecType>
GLM_FUNC_QUALIFIER vecType<int, P> bitCount(vecType<T, P> const & v) GLM_FUNC_QUALIFIER vecType<int, P> bitCount(vecType<T, P> const & v)
{ {
#ifdef GLM_COMPILER_VC #if GLM_COMPILER & GLM_COMPILER_VC
#pragma warning(push) #pragma warning(push)
#pragma warning(disable : 4310) //cast truncates constant value #pragma warning(disable : 4310) //cast truncates constant value
#endif #endif
@ -329,7 +329,7 @@ namespace detail
x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 32>::call(x, typename detail::make_unsigned<T>::type(0x0000FFFF0000FFFFull), typename detail::make_unsigned<T>::type(16)); x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 32>::call(x, typename detail::make_unsigned<T>::type(0x0000FFFF0000FFFFull), typename detail::make_unsigned<T>::type(16));
x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 64>::call(x, typename detail::make_unsigned<T>::type(0x00000000FFFFFFFFull), typename detail::make_unsigned<T>::type(32)); x = detail::compute_bitfieldBitCountStep<typename detail::make_unsigned<T>::type, P, vecType, detail::is_aligned<P>::value, sizeof(T) * 8>= 64>::call(x, typename detail::make_unsigned<T>::type(0x00000000FFFFFFFFull), typename detail::make_unsigned<T>::type(32));
return vecType<int, P>(x); return vecType<int, P>(x);
#ifdef GLM_COMPILER_VC #if GLM_COMPILER & GLM_COMPILER_VC
#pragma warning(pop) #pragma warning(pop)
#endif #endif
} }

View File

@ -9,7 +9,7 @@
namespace glm{ namespace glm{
namespace detail namespace detail
{ {
#ifdef GLM_COMPILER_VC #if GLM_COMPILER & GLM_COMPILER_VC
#pragma warning(push) #pragma warning(push)
#pragma warning(disable : 4324) // structure was padded due to alignment specifier #pragma warning(disable : 4324) // structure was padded due to alignment specifier
#endif #endif
@ -21,9 +21,10 @@ namespace detail
template<> GLM_ALIGNED_STRUCT(16) aligned<16>{}; template<> GLM_ALIGNED_STRUCT(16) aligned<16>{};
template<> GLM_ALIGNED_STRUCT(32) aligned<32>{}; template<> GLM_ALIGNED_STRUCT(32) aligned<32>{};
template<> GLM_ALIGNED_STRUCT(64) aligned<64>{}; template<> GLM_ALIGNED_STRUCT(64) aligned<64>{};
#ifdef GLM_COMPILER_VC #if GLM_COMPILER & GLM_COMPILER_VC
#pragma warning(pop) #pragma warning(pop)
#endif #endif
template <typename T, std::size_t size, bool aligned> template <typename T, std::size_t size, bool aligned>
struct storage struct storage
{ {