Ensure rewriting of out-of-range negative jumps
Change-Id: I4058b9bc92d13b39d06c6fd5c00b9579ace41a2e
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
index 9b549d5..3bca6db 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
@@ -1242,7 +1242,9 @@
int maxOffset = getMaxOffset();
int maxTargetOffset = targetInfo.getMaxOffset();
if (maxTargetOffset < maxOffset) {
- return getOffset() - targetInfo.getOffset() < Short.MIN_VALUE;
+ int relativeJumpOffset = targetInfo.getOffset() - getOffset();
+ assert relativeJumpOffset < 0;
+ return relativeJumpOffset < Short.MIN_VALUE;
}
// Forward branch: over estimate the distance, but take into account the sizes
// of instructions generated so far. That way the over estimation is only for the