2727import java .util .List ;
2828import java .util .Optional ;
2929
30+ import jdk .graal .compiler .debug .DebugCloseable ;
3031import jdk .graal .compiler .debug .DebugContext ;
3132import jdk .graal .compiler .graph .Node ;
3233import jdk .graal .compiler .nodeinfo .InputType ;
4950import jdk .graal .compiler .nodes .util .GraphUtil ;
5051import jdk .graal .compiler .phases .BasePhase ;
5152import jdk .graal .compiler .phases .tiers .LowTierContext ;
52-
5353import jdk .vm .ci .meta .DeoptimizationReason ;
5454import jdk .vm .ci .meta .JavaConstant ;
5555import jdk .vm .ci .meta .MetaAccessProvider ;
@@ -202,6 +202,7 @@ protected void checkPredecessor(AbstractDeoptimizeNode deopt, Node predecessor,
202202 }
203203 }
204204
205+ @ SuppressWarnings ("try" )
205206 protected void replaceWithTrappingVersion (AbstractDeoptimizeNode deopt , IfNode ifNode , LogicNode condition , JavaConstant deoptReasonAndAction , JavaConstant deoptSpeculation ,
206207 LowTierContext context ) {
207208 StructuredGraph graph = deopt .graph ();
@@ -210,8 +211,10 @@ protected void replaceWithTrappingVersion(AbstractDeoptimizeNode deopt, IfNode i
210211 DeoptimizingFixedWithNextNode trappingVersionNode = null ;
211212 trappingVersionNode = tryReplaceExisting (graph , nonTrappingContinuation , trappingContinuation , condition , ifNode , deopt , deoptReasonAndAction , deoptSpeculation , context );
212213 if (trappingVersionNode == null ) {
213- // Need to add a null check node.
214- trappingVersionNode = createImplicitNode (graph , condition , deoptReasonAndAction , deoptSpeculation );
214+ try (DebugCloseable closable = ifNode .withNodeSourcePosition ()) {
215+ // Need to add a null check node.
216+ trappingVersionNode = createImplicitNode (graph , condition , deoptReasonAndAction , deoptSpeculation );
217+ }
215218 graph .replaceSplit (ifNode , trappingVersionNode , nonTrappingContinuation );
216219 graph .getOptimizationLog ().report (getClass (), "NullCheckInsertion" , ifNode );
217220 }
0 commit comments