--- old/src/share/vm/runtime/sharedRuntimeMath.hpp 2014-08-01 02:11:51.877707374 +0200 +++ new/src/share/vm/runtime/sharedRuntimeMath.hpp 2014-08-01 02:11:51.731568024 +0200 @@ -42,29 +42,34 @@ } DoubleIntConv; static inline int high(double d) { - DoubleIntConv x = { d }; + DoubleIntConv x; + x.d = d; return x.split.hi; } static inline int low(double d) { - DoubleIntConv x = { d }; + DoubleIntConv x; + x.d = d; return x.split.lo; } static inline void set_high(double* d, int high) { - DoubleIntConv conv = { *d }; + DoubleIntConv conv; + conv.d = *d; conv.split.hi = high; *d = conv.d; } static inline void set_low(double* d, int low) { - DoubleIntConv conv = { *d }; + DoubleIntConv conv; + conv.d = *d; conv.split.lo = low; *d = conv.d; } static double copysignA(double x, double y) { - DoubleIntConv convX = { x }; + DoubleIntConv convX; + convX.d = x; convX.split.hi = (convX.split.hi & 0x7fffffff) | (high(y) & 0x80000000); return convX.d; } --- old/src/share/vm/opto/output.cpp 2014-08-01 02:11:51.881719654 +0200 +++ new/src/share/vm/opto/output.cpp 2014-08-01 02:11:51.709593685 +0200 @@ -785,7 +785,8 @@ // grow downwards in all implementations. // (If, on some machine, the interpreter's Java locals or stack // were to grow upwards, the embedded doubles would be word-swapped.) - jlong_accessor acc = { jlong_cast(d) }; + jlong_accessor acc; + acc.long_value = jlong_cast(d); array->append(new ConstantIntValue(acc.words[1])); array->append(new ConstantIntValue(acc.words[0])); #endif @@ -804,7 +805,8 @@ // grow downwards in all implementations. // (If, on some machine, the interpreter's Java locals or stack // were to grow upwards, the embedded doubles would be word-swapped.) - jlong_accessor acc = { d }; + jlong_accessor acc; + acc.long_value = d; array->append(new ConstantIntValue(acc.words[1])); array->append(new ConstantIntValue(acc.words[0])); #endif