RFR: ObjChunkedArrayTask enum constants overflow

Aleksey Shipilev shade at redhat.com
Tue Mar 21 13:49:19 UTC 2017


Hi,

This is caught by MSVC x86_64. We apparently cannot use large enum constants,
because they would not fit into whatever MSVC is allocating for enum type. I
would scope the enum to use uintptr_t, but this is only available since C++11.
The apparent way out is to keep only small enum constants, and inline others to
get the typing right:
  http://cr.openjdk.java.net/~shade/shenandoah/build/tq-enums/webrev.01/

While this affects 8u too, this patch is only for 9. This is because the amount
of testing needed for Linux x86_64, i586, Windows x86_64. We will backport this
to 8u once 9 builds fully on Windows x86_64.

I eyeballed the compiled object code to see we still constant-fold these properly.

Testing: builds on Linux x86_64, i586, Windows x86_64; Linux x86_64
hotspot_gc_shenandoah.

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list