Mercurial > hg > truffle
diff src/share/vm/runtime/sharedRuntime.cpp @ 14709:d3225562f0d8
guard implicit exception deopt
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Thu, 20 Mar 2014 17:36:43 -0700 |
parents | d8041d695d19 |
children | 3e9a960f0da1 |
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.cpp Thu Mar 20 16:56:21 2014 -0700 +++ b/src/share/vm/runtime/sharedRuntime.cpp Thu Mar 20 17:36:43 2014 -0700 @@ -886,7 +886,10 @@ _implicit_null_throws++; #endif #ifdef GRAAL - if (nm->is_compiled_by_graal()) { + if (nm->is_compiled_by_graal() && nm->pc_desc_at(pc) != NULL) { + // If there's no PcDesc then we'll die way down inside of + // deopt instead of just getting normal error reporting, + // so only go there if it will succeed. target_pc = deoptimize_for_implicit_exception(thread, pc, nm, Deoptimization::Reason_null_check); } else { #endif