diff --git a/src/main/java/soot/asm/AsmMethodSource.java b/src/main/java/soot/asm/AsmMethodSource.java index ec11d6e32b8..d10bef6c607 100644 --- a/src/main/java/soot/asm/AsmMethodSource.java +++ b/src/main/java/soot/asm/AsmMethodSource.java @@ -2026,7 +2026,9 @@ public Body getBody(SootMethod m, String phaseName) { // b = (B) a; // return b; castAndReturnInliner.transform(jb); - DeadAssignmentEliminator.v().transform(jb); + if (!"false".equalsIgnoreCase(PhaseOptions.v().getPhaseOptions("jb.dae").get("enabled"))) { + DeadAssignmentEliminator.v().transform(jb); + } try { PackManager.v().getPack("jb").apply(jb); @@ -2035,7 +2037,9 @@ public Body getBody(SootMethod m, String phaseName) { } TrapTightener.removeInvalidTraps(jb); LocalPacker.v().transform(jb); - DeadAssignmentEliminator.v().transform(jb); + if (!"false".equalsIgnoreCase(PhaseOptions.v().getPhaseOptions("jb.dae").get("enabled"))) { + DeadAssignmentEliminator.v().transform(jb); + } UnconditionalBranchFolder.v().transform(jb); jb.ensureUniqueLocalNames();