8150320: C1: Illegal bci in debug info for MH::linkTo* methods
Reviewed-by: kvn, dlong
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Mon Mar 14 12:35:44 2016 +0300
+++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Mon Mar 14 12:35:48 2016 +0300
@@ -3942,7 +3942,7 @@
bool GraphBuilder::try_method_handle_inline(ciMethod* callee) {
- ValueStack* state_before = state()->copy_for_parsing();
+ ValueStack* state_before = copy_state_before();
vmIntrinsics::ID iid = callee->intrinsic_id();
switch (iid) {
case vmIntrinsics::_invokeBasic:
@@ -4032,7 +4032,7 @@
fatal("unexpected intrinsic %d: %s", iid, vmIntrinsics::name_at(iid));
break;
}
- set_state(state_before);
+ set_state(state_before->copy_for_parsing());
return false;
}
--- a/hotspot/src/share/vm/code/debugInfoRec.cpp Mon Mar 14 12:35:44 2016 +0300
+++ b/hotspot/src/share/vm/code/debugInfoRec.cpp Mon Mar 14 12:35:48 2016 +0300
@@ -369,7 +369,6 @@
assert(method == NULL ||
(method->is_native() && bci == 0) ||
(!method->is_native() && 0 <= bci && bci < method->code_size()) ||
- (method->is_compiled_lambda_form() && bci == -99) || // this might happen in C1
bci == -1, "illegal bci");
// serialize the locals/expressions/monitors