Don't add preamble position if one is found before first instruction.
Change-Id: I067834cb5cc8d2f69386dbab8d9c4534fc6505c4
diff --git a/src/main/java/com/android/tools/r8/graph/CfCode.java b/src/main/java/com/android/tools/r8/graph/CfCode.java
index 0213b0e..0a7c0e5 100644
--- a/src/main/java/com/android/tools/r8/graph/CfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/CfCode.java
@@ -741,15 +741,20 @@
firstLabel = new CfLabel();
newInstructions.add(firstLabel);
}
- newInstructions.add(new CfPosition(firstLabel, callerPosition));
+ boolean seenPosition = false;
for (CfInstruction instruction : instructions) {
if (instruction.isPosition()) {
+ seenPosition = true;
CfPosition oldPosition = instruction.asPosition();
newInstructions.add(
new CfPosition(
oldPosition.getLabel(),
oldPosition.getPosition().withOutermostCallerPosition(callerPosition)));
} else {
+ if (!instruction.isLabel() && !seenPosition) {
+ newInstructions.add(new CfPosition(firstLabel, callerPosition));
+ seenPosition = true;
+ }
newInstructions.add(instruction);
}
}