RFR(10)(S): 8181503: Can't compile hotspot with c++11

Gerard Ziemski gerard.ziemski at oracle.com
Tue Jun 13 19:28:40 UTC 2017


Thank you Thomas!


> On Jun 12, 2017, at 11:13 AM, Thomas Stüfe <thomas.stuefe at gmail.com> wrote:
> 
> Hi Gerard,
> 
> looks fine. 
> 
> I cannot comment on the asm syntax changes in the bsd code.
> 
> methodMatcher.cpp: this is a real bug.
> 
> compiledIC.cpp: this too but as false is usually defined as 0, so it probably never mattered.
> 
> Kind Regards, Thomas
> 
> 
> On Mon, Jun 12, 2017 at 4:29 PM, Gerard Ziemski <gerard.ziemski at oracle.com> wrote:
> hi all,
> 
> Please review this small fix, which addresses 4 issues caught by c++11 compiler on a Mac:
> 
> 
> #1 Error in src/share/vm/utilities/debug.hpp
> 
> jdk10/hotspot/src/share/vm/utilities/vmError.cpp:450:13: error: case value evaluates to 3758096384, which cannot be narrowed to type 'int' [-Wc++11-narrowing]
>       case INTERNAL_ERROR:
> 
> For a fix see http://cr.openjdk.java.net/~gziemski/8181503_rev1/src/share/vm/utilities/vmError.cpp.udiff.html and http://cr.openjdk.java.net/~gziemski/8181503_rev1/src/share/vm/utilities/vmError.hpp.udiff.html
> 
> 
> #2 Error in src/share/vm/compiler/methodMatcher.cpp
> 
> jdk10/hotspot/src/share/vm/compiler/methodMatcher.cpp:99:19: error: comparison between pointer and integer ('char *' and 'int')
>    if (colon + 2 != '\0') {
>        ~~~~~~~~~ ^ ~~~~
> 
> For a fix see http://cr.openjdk.java.net/~gziemski/8181503_rev1/src/share/vm/compiler/methodMatcher.cpp.udiff.html
> 
> 
> #3 Error in src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
> 
> jdk10/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp:282:19: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
>  __asm__("mov %%"SPELL_REG_SP", %0":"=r"(esp));
> 
> For a fix see http://cr.openjdk.java.net/~gziemski/8181503_rev1/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp.udiff.html
> 
> 
> #4 Error in src/share/vm/code/compiledIC.cpp
> 
> /Volumes/Work/jdk10/hotspot/src/share/vm/code/compiledIC.cpp:227:15: error: comparison between pointer and integer ('address' (aka 'unsigned char *') and 'int')
>    if (entry == false) {
>        ~~~~~ ^ ~~~~~
> 
> For a fix see http://cr.openjdk.java.net/~gziemski/8181503_rev1/src/share/vm/code/compiledIC.cpp.udiff.html
> 
> References:
>  bug link at https://bugs.openjdk.java.net/browse/JDK-8181503
>  webrev at http://cr.openjdk.java.net/~gziemski/8181503_rev1
> 
> Tested with JPRT hotspot.
> 
> 
> cheers
> 



More information about the hotspot-dev mailing list