[PATCH] 8202414: Unsafe crash in C2

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Sep 11 01:20:17 UTC 2018


Hi Andy,

What I sent is *my* suggested fix because I think your fix (below) is not correct.

InitializeNode::complete_stores() assumes that call ClearArrayNode::clear_memory() will generate 
code to zero the part of object and you change does not generate such code.

Thanks,
Vladimir

On 9/10/18 5:42 PM, Andy Law wrote:
> Hi Vladimir,
> 
> Thank you for your reply:)
> 
> However, I think my patch is as below
> 
> diff --git a/src/share/vm/opto/memnode.cpp b/src/share/vm/opto/memnode.cpp
> --- a/src/share/vm/opto/memnode.cpp
> +++ b/src/share/vm/opto/memnode.cpp
> @@ -2923,8 +2923,11 @@
>       return mem;
>     }
>   
> +  if ((end_offset % BytesPerInt) != 0) {
> +    return mem;
> +  }
> +
>     Compile* C = phase->C;
> -  assert((end_offset % BytesPerInt) == 0, "odd end offset");
>     intptr_t done_offset = end_offset;
>     if ((done_offset % BytesPerLong) != 0) {
>       done_offset -= BytesPerInt;
> 
> Maybe I mis-submitted some code ...?
> Sorry for bothering :(
> 
> Thanks,
> Andy
> 
> 


More information about the hotspot-compiler-dev mailing list