Add DoNotOptimize and use it in tests.
Bug: http://b/148307629
Test: treehugger
Change-Id: I3b1726ae55116f6553ea38fe163abdde179c21f0
diff --git a/tests/fenv_test.cpp b/tests/fenv_test.cpp
index e983a1c..89c7fd5 100644
--- a/tests/fenv_test.cpp
+++ b/tests/fenv_test.cpp
@@ -22,19 +22,20 @@
#include <stdint.h>
static void TestRounding(float expectation1, float expectation2) {
- // volatile to prevent compiler optimizations.
+ // Volatile to prevent compile-time evaluation.
volatile float f = 1.968750f;
volatile float m = 0x1.0p23f;
- volatile float x = f + m;
+ float x;
+ DoNotOptimize(x = f + m);
ASSERT_FLOAT_EQ(expectation1, x);
- x = x - m;
+ DoNotOptimize(x = x - m);
ASSERT_EQ(expectation2, x);
}
static void DivideByZero() {
- // volatile to prevent compiler optimizations.
+ // Volatile to prevent compile-time evaluation.
volatile float zero = 0.0f;
- volatile float result __attribute__((unused)) = 123.0f / zero;
+ DoNotOptimize(123.0f / zero);
}
TEST(fenv, fesetround_fegetround_FE_TONEAREST) {