diff --git a/CMakeLists.txt b/CMakeLists.txt index 81fea159..f385a13b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,7 +84,7 @@ endif() if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") add_definitions(-Weverything -Wpedantic -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded -Wno-documentation -Wno-gnu-anonymous-struct -Wno-nested-anon-types) - add_definitions(-Wno-sign-conversion -Wno-unused-variable -Wno-missing-prototypes -Wno-unreachable-code -Wno-missing-variable-declarations -Wno-sign-compare -Wno-double-promotion) + add_definitions(-Wno-sign-conversion -Wno-unused-variable -Wno-missing-prototypes -Wno-unreachable-code -Wno-missing-variable-declarations -Wno-sign-compare) endif() option(GLM_TEST_ENABLE_LANG_EXTENSIONS "Enable language extensions" OFF) diff --git a/test/core/core_func_common.cpp b/test/core/core_func_common.cpp index 5fe9b6ff..a7f98130 100644 --- a/test/core/core_func_common.cpp +++ b/test/core/core_func_common.cpp @@ -191,28 +191,28 @@ namespace floatBitsToInt float A = 1.0f; int B = glm::floatBitsToInt(A); float C = glm::intBitsToFloat(B); - Error += A == C ? 0 : 1; + Error += glm::epsilonEqual(A, C, 0.0001f) ? 0 : 1; } { glm::vec2 A(1.0f, 2.0f); glm::ivec2 B = glm::floatBitsToInt(A); glm::vec2 C = glm::intBitsToFloat(B); - Error += A == C? 0 : 1; + Error += glm::epsilonEqual(A, C, 0.0001f) ? 0 : 1; } { glm::vec3 A(1.0f, 2.0f, 3.0f); glm::ivec3 B = glm::floatBitsToInt(A); glm::vec3 C = glm::intBitsToFloat(B); - Error += A == C? 0 : 1; + Error += glm::epsilonEqual(A, C, 0.0001f) ? 0 : 1; } { glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); glm::ivec4 B = glm::floatBitsToInt(A); glm::vec4 C = glm::intBitsToFloat(B); - Error += A == C? 0 : 1; + Error += glm::epsilonEqual(A, C, 0.0001f) ? 0 : 1; } return Error; @@ -229,28 +229,28 @@ namespace floatBitsToUint float A = 1.0f; glm::uint B = glm::floatBitsToUint(A); float C = glm::intBitsToFloat(B); - Error += A == C? 0 : 1; + Error += glm::epsilonEqual(A, C, 0.0001f) ? 0 : 1; } { glm::vec2 A(1.0f, 2.0f); glm::uvec2 B = glm::floatBitsToUint(A); glm::vec2 C = glm::uintBitsToFloat(B); - Error += A == C ? 0 : 1; + Error += glm::epsilonEqual(A, C, 0.0001f) ? 0 : 1; } { glm::vec3 A(1.0f, 2.0f, 3.0f); glm::uvec3 B = glm::floatBitsToUint(A); glm::vec3 C = glm::uintBitsToFloat(B); - Error += A == C? 0 : 1; + Error += glm::epsilonEqual(A, C, 0.0001f) ? 0 : 1; } { glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); glm::uvec4 B = glm::floatBitsToUint(A); glm::vec4 C = glm::uintBitsToFloat(B); - Error += A == C? 0 : 1; + Error += glm::epsilonEqual(A, C, 0.0001f) ? 0 : 1; } return Error; @@ -550,36 +550,36 @@ namespace round_ { float A = glm::round(0.0f); - Error += A == 0.0f ? 0 : 1; + Error += glm::epsilonEqual(A, 0.0f, glm::epsilon() ? 0 : 1; float B = glm::round(0.5f); - Error += B == 1.0f ? 0 : 1; + Error += glm::epsilonEqual(B, 1.0f, glm::epsilon() ? 0 : 1; float C = glm::round(1.0f); - Error += C == 1.0f ? 0 : 1; + Error += glm::epsilonEqual(C, 1.0f, glm::epsilon() ? 0 : 1; float D = glm::round(0.1f); - Error += D == 0.0f ? 0 : 1; + Error += glm::epsilonEqual(D, 0.0f, glm::epsilon() ? 0 : 1; float E = glm::round(0.9f); - Error += E == 1.0f ? 0 : 1; + Error += glm::epsilonEqual(E, 1.0f, glm::epsilon() ? 0 : 1; float F = glm::round(1.5f); - Error += F == 2.0f ? 0 : 1; + Error += glm::epsilonEqual(F, 2.0f, glm::epsilon() ? 0 : 1; float G = glm::round(1.9f); - Error += G == 2.0f ? 0 : 1; + Error += glm::epsilonEqual(G, 2.0f, glm::epsilon() ? 0 : 1; } { float A = glm::round(-0.0f); - Error += A == 0.0f ? 0 : 1; + Error += glm::epsilonEqual(A, 0.0f, glm::epsilon() ? 0 : 1; float B = glm::round(-0.5f); - Error += B == -1.0f ? 0 : 1; + Error += glm::epsilonEqual(B, -1.0f, glm::epsilon() ? 0 : 1; float C = glm::round(-1.0f); - Error += C == -1.0f ? 0 : 1; + Error += glm::epsilonEqual(C, -1.0f, glm::epsilon() ? 0 : 1; float D = glm::round(-0.1f); - Error += D == 0.0f ? 0 : 1; + Error += glm::epsilonEqual(D, 0.0f, glm::epsilon() ? 0 : 1; float E = glm::round(-0.9f); - Error += E == -1.0f ? 0 : 1; + Error += glm::epsilonEqual(E, -1.0f, glm::epsilon() ? 0 : 1; float F = glm::round(-1.5f); - Error += F == -2.0f ? 0 : 1; + Error += glm::epsilonEqual(F, -2.0f, glm::epsilon() ? 0 : 1; float G = glm::round(-1.9f); - Error += G == -2.0f ? 0 : 1; + Error += glm::epsilonEqual(G, -2.0f, glm::epsilon() ? 0 : 1; } return Error; diff --git a/test/core/core_func_geometric.cpp b/test/core/core_func_geometric.cpp index 5c3379c4..9d97c1e0 100644 --- a/test/core/core_func_geometric.cpp +++ b/test/core/core_func_geometric.cpp @@ -154,7 +154,7 @@ namespace refract float A(-1.0f); float B(1.0f); float C = glm::refract(A, B, 0.5f); - Error += C == -1.0f ? 0 : 1; + Error += glm::epsilonEqual(C, -1.0f, 0.0001f) ? 0 : 1; } { diff --git a/test/core/core_func_integer_bit_count.cpp b/test/core/core_func_integer_bit_count.cpp index 0cd7431b..3e2c8096 100644 --- a/test/core/core_func_integer_bit_count.cpp +++ b/test/core/core_func_integer_bit_count.cpp @@ -7,7 +7,7 @@ unsigned rotatel(unsigned x, int n) { - if ((unsigned)n > 63) {printf("rotatel, n out of range.\n"); exit(1);} + if (static_cast(n) > 63) {printf("rotatel, n out of range.\n"); exit(1);} return (x << n) | (x >> (32 - n)); } @@ -164,7 +164,7 @@ int pop9(unsigned x) y = y & 0x1111111111111111ULL; y = y * 0x1111111111111111ULL; y = y >> 60; - return y; + return static_cast(y); } int errors; diff --git a/test/gtc/gtc_integer.cpp b/test/gtc/gtc_integer.cpp index 7cf03718..b8296941 100644 --- a/test/gtc/gtc_integer.cpp +++ b/test/gtc/gtc_integer.cpp @@ -206,8 +206,8 @@ namespace uround for(float f = 0.0f; f < 3.1f; f += 0.05f) { - int RoundFast = glm::uround(f); - int RoundSTD = glm::round(f); + int RoundFast = static_cast(glm::uround(f)); + int RoundSTD = static_cast(glm::round(f)); Error += RoundFast == RoundSTD ? 0 : 1; assert(!Error); } diff --git a/test/gtc/gtc_quaternion.cpp b/test/gtc/gtc_quaternion.cpp index 1b004a0d..824865b4 100644 --- a/test/gtc/gtc_quaternion.cpp +++ b/test/gtc/gtc_quaternion.cpp @@ -134,7 +134,7 @@ int test_quat_slerp() float const Epsilon = 0.0001f;//glm::epsilon(); - float sqrt2 = sqrt(2.0f)/2.0f; + float sqrt2 = std::sqrt(2.0f)/2.0f; glm::quat id(static_cast(1), static_cast(0), static_cast(0), static_cast(0)); glm::quat Y90rot(sqrt2, 0.0f, sqrt2, 0.0f); glm::quat Y180rot(0.0f, 0.0f, 1.0f, 0.0f); diff --git a/test/gtc/gtc_ulp.cpp b/test/gtc/gtc_ulp.cpp index 77d347c8..9b416d6c 100644 --- a/test/gtc/gtc_ulp.cpp +++ b/test/gtc/gtc_ulp.cpp @@ -8,9 +8,9 @@ int test_ulp_float_dist() float A = 1.0f; float B = glm::next_float(A); - Error += A != B ? 0 : 1; + Error += glm::epsilonNotEqual(A, B, glm::epsilon()) ? 0 : 1; float C = glm::prev_float(B); - Error += A == C ? 0 : 1; + Error += glm::epsilonEqual(A, C, glm::epsilon()) ? 0 : 1; int D = glm::float_distance(A, B); Error += D == 1 ? 0 : 1;