RFR(XS): 8205172: 32 bit build broken
David Holmes
david.holmes at oracle.com
Tue Jun 19 05:53:18 UTC 2018
On 19/06/2018 12:10 AM, Doerr, Martin wrote:
> Hi,
>
> 32 bit build is currently broken due to:
> "trap_mask": jdk/src/hotspot/share/oops/methodData.hpp(142) : warning C4293: '<<' : shift count negative or too big, undefined behavior
> "PrngModMask": jdk/src/hotspot/share/runtime/threadHeapSampler.cpp(50) : warning C4293: '<<' : shift count negative or too big, undefined behavior
const uint64_t PrngModPower = 48;
! const uint64_t PrngModMask = right_n_bits(PrngModPower);
So right_n_bits(48) should expand to:
(nth_bit(48) - 1)
where nth_bit is:
(((n) >= BitsPerWord) ? 0 : (OneBit << (n)))
so the compiler is complaining that (OneBit << 48) is undefined, but the
conditional operator will not execute that path (as BitsPerWord == 32).
That seems like a compiler bug to me. :(
David
-----
> Please review this small fix:
> http://cr.openjdk.java.net/~mdoerr/8205172_32bit_build/webrev.00/
>
> Best regards,
> Martin
>
More information about the hotspot-dev
mailing list