Index: runtime/lib/double.cc |
diff --git a/runtime/lib/double.cc b/runtime/lib/double.cc |
index 643efb2be78db189903eb5ad251bb0923c5226ad..dbeb44705b81d380aa62b8bcd9b55b976e3ca04e 100644 |
--- a/runtime/lib/double.cc |
+++ b/runtime/lib/double.cc |
@@ -304,12 +304,8 @@ DEFINE_NATIVE_ENTRY(Double_getIsNegative, 1) { |
DEFINE_NATIVE_ENTRY(Double_flipSignBit, 1) { |
const Double& arg = Double::CheckedHandle(arguments->NativeArgAt(0)); |
const double in_val = arg.value(); |
- // TODO(srdjan): Fix this compilation error. |
- // const int64_t bits = |
- // *(reinterpret_cast<const int64_t*>(&in_val)) ^ kSignBitDouble; |
- // const double out_val = *(reinterpret_cast<const double*>(&bits)); |
- // return Double::New(out_val); |
- return Double::New(-in_val); |
+ const int64_t bits = bit_cast<int64_t, double>(in_val) ^ kSignBitDouble; |
+ return Double::New(bit_cast<double, int64_t>(bits)); |
} |
// Add here only functions using/referring to old-style casts. |