RFR[8u]: 8158639: C2 compilation fails with SIGSEGV

david buck david.buck at oracle.com
Wed Nov 16 11:01:13 UTC 2016


Hi Jamsheed!

Thank you for catching the mistake! I have modified the backport to 
include the relevant change from 8072008 [0]. Here is an updated webrev:

http://cr.openjdk.java.net/~dbuck/jdk8158639_8u_02/

In the new chunk of code added, the only difference from the code in JDK 
9 is I had to add a call to err_msg() as JDK 8 does not have variadic 
macro version of assert() [1].

I have reran all tests (both JPRT and manual) with no issues.

Cheers,
-Buck

[0] http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/9988b390777b

[1] https://bugs.openjdk.java.net/browse/JDK-8080775

On 2016/11/16 16:29, Jamsheed C m wrote:
> Hi David,
>
> this change is missing
>
> JVMState* VirtualCallGenerator::generate(JVMState* jvms) {
>
> ...
>
>   if (kit.gvn().type(receiver)->higher_equal(TypePtr::NULL_PTR)) {
>     assert(Bytecodes::is_invoke(kit.java_bc()), "%d: %s", kit.java_bc(),
> Bytecodes::name(kit.java_bc()));
>     ciMethod* declared_method = kit.method()->get_method_at_bci(kit.bci());
>     int arg_size =
> declared_method->signature()->arg_size_for_bc(kit.java_bc());
>     kit.inc_sp(arg_size);  // restore arguments
>     kit.uncommon_trap(Deoptimization::Reason_null_check,
>                       Deoptimization::Action_none,
>                       NULL, "null receiver");
>
>
> Best Regards,
>
> Jamsheed
>
>
> On 11/15/2016 8:55 PM, david buck wrote:
>> Hi!
>>
>> Please review the backported changes of JDK-8158639 to 8u:
>>
>> It is a very straightforward backport. The only two differences are:
>>
>> - I added a convenience macro, get_method_at_bci(), from the change
>> for 8072008 to make the backport cleaner.
>>
>> - I had to modify (remove) the package used for the testcase.
>>
>> Bug Report:
>> [ 8158639: C2 compilation fails with SIGSEGV ]
>> https://bugs.openjdk.java.net/browse/JDK-8158639
>>
>> JDK 9 changeset:
>> http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/119a2a3cc29b
>>
>> 8u-dev Webrev:
>> http://cr.openjdk.java.net/~dbuck/jdk8158639_8u_01/
>>
>> Testing:
>> Manual verification and JPRT (default and hotspot testsets)
>>
>> Cheers,
>> -Buck
>


More information about the hotspot-compiler-dev mailing list