[11] RFR: Fix Windows build failure due to nesting macro
Roman Kennke
rkennke at redhat.com
Wed Jul 15 14:36:21 UTC 2020
Ok, looks good.
I also did the same in my latest upstreaming proposal.
Thanks,
Roman
On Wed, 2020-07-15 at 10:51 +0200, Aleksey Shipilev wrote:
> Error verifying signature: Cannot verify message signature:
> Incorrect message format
> It seems MSVC dislikes the nested #if within the assert macro.
> Current Windows builds fail in
> sh/jdk11 with:
>
> c:/buildbot/worker/build-shenandoah-jdk11-
> windows/build/src/hotspot/share/opto/escape.cpp(2436) :
> error C2121: '#' : invalid character : possibly the result of a macro
> expansion
> c:/buildbot/worker/build-shenandoah-jdk11-
> windows/build/src/hotspot/share/opto/escape.cpp(2436) :
> error C2143: syntax error : missing ')' before 'if'
> c:/buildbot/worker/build-shenandoah-jdk11-
> windows/build/src/hotspot/share/opto/escape.cpp(2436) :
> error C2059: syntax error : ')'
> c:/buildbot/worker/build-shenandoah-jdk11-
> windows/build/src/hotspot/share/opto/escape.cpp(2436) :
> error C2143: syntax error : missing ';' before '{'
>
> Fix:
>
> --- a/src/hotspot/share/opto/escape.cpp Wed Jul 08 17:15:01 2020
> +0200
> +++ b/src/hotspot/share/opto/escape.cpp Wed Jul 15 10:48:43 2020
> +0200
> @@ -2428,13 +2428,11 @@
> int opcode = uncast_base->Opcode();
> assert(opcode == Op_ConP || opcode == Op_ThreadLocal ||
> opcode == Op_CastX2P || uncast_base-
> >is_DecodeNarrowPtr() ||
> (uncast_base->is_Mem() && (uncast_base->bottom_type()-
> >isa_rawptr() != NULL)) ||
> (uncast_base->is_Proj() && uncast_base->in(0)-
> >is_Allocate())
> -#if INCLUDE_SHENANDOAHGC
> - || uncast_base->Opcode() ==
> Op_ShenandoahLoadReferenceBarrier
> -#endif
> + SHENANDOAHGC_ONLY(|| (uncast_base->Opcode() ==
> Op_ShenandoahLoadReferenceBarrier))
> , "sanity");
> }
> }
> return base;
> }
>
>
> I am going to push this after Andrew lands his CPU merges.
>
> Testing: {Windows, Linux} builds
>
More information about the shenandoah-dev
mailing list