[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