Traverse store-load chains for POP instructions
POP instructions can be only live usages for functional parameters, e.g., when corresponding invoke is in dead code (KT-17591).
This commit is contained in:
@@ -516,8 +516,11 @@ public class MethodInliner {
|
||||
}
|
||||
}
|
||||
else if (cur.getOpcode() == Opcodes.POP) {
|
||||
LambdaInfo lambda = getLambdaIfExists(MethodInlinerUtilKt.singleOrNullInsn(StackTransformationUtilsKt.top(frame)));
|
||||
if (lambda != null) {
|
||||
SourceValue top = StackTransformationUtilsKt.top(frame);
|
||||
LambdaInfo lambdaInfo = MethodInlinerUtilKt.getLambdaIfExistsAndMarkInstructions(
|
||||
this, top, true, instructions, sources, toDelete
|
||||
);
|
||||
if (lambdaInfo != null) {
|
||||
toDelete.add(cur);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user