Browse Source

Math: drop a workaround for old Android GCC.

pull/205/head
Vladimír Vondruš 8 years ago
parent
commit
f4d69c24f4
  1. 11
      src/Magnum/Math/Test/QuaternionTest.cpp

11
src/Magnum/Math/Test/QuaternionTest.cpp

@ -451,14 +451,6 @@ void QuaternionTest::matrix() {
CORRADE_COMPARE(Quaternion::fromMatrix(m4), q4); CORRADE_COMPARE(Quaternion::fromMatrix(m4), q4);
} }
/* The crappy 4.9 20140827 (prerelease) in Android NDK segfaults when
optimizing the following function. Dialing down the optimization helps. No
problem when calling Math::lerp() anywhere else, so I won't dig further.
Fuck this. */
#if defined(CORRADE_TARGET_ANDROID) && __GNUC__*100 + __GNUC_MINOR__*10 + __GNUC_PATCHLEVEL__ == 490
#pragma GCC push_options
#pragma GCC optimize("O0")
#endif
void QuaternionTest::lerp() { void QuaternionTest::lerp() {
Quaternion a = Quaternion::rotation(Deg(15.0f), Vector3(1.0f/Constants<Float>::sqrt3())); Quaternion a = Quaternion::rotation(Deg(15.0f), Vector3(1.0f/Constants<Float>::sqrt3()));
Quaternion b = Quaternion::rotation(Deg(23.0f), Vector3::xAxis()); Quaternion b = Quaternion::rotation(Deg(23.0f), Vector3::xAxis());
@ -476,9 +468,6 @@ void QuaternionTest::lerp() {
Quaternion lerp = Math::lerp(a, b, 0.35f); Quaternion lerp = Math::lerp(a, b, 0.35f);
CORRADE_COMPARE(lerp, Quaternion({0.119127f, 0.049134f, 0.049134f}, 0.990445f)); CORRADE_COMPARE(lerp, Quaternion({0.119127f, 0.049134f, 0.049134f}, 0.990445f));
} }
#if defined(CORRADE_TARGET_ANDROID) && __GNUC__*100 + __GNUC_MINOR__*10 + __GNUC_PATCHLEVEL__ == 490
#pragma GCC pop_options
#endif
void QuaternionTest::slerp() { void QuaternionTest::slerp() {
Quaternion a = Quaternion::rotation(Deg(15.0f), Vector3(1.0f/Constants<Float>::sqrt3())); Quaternion a = Quaternion::rotation(Deg(15.0f), Vector3(1.0f/Constants<Float>::sqrt3()));

Loading…
Cancel
Save