Fix overflow in IRMetadata
Change-Id: I4a51d22ab4938855bc08fcc87c111e771a6f64ae
diff --git a/src/main/java/com/android/tools/r8/ir/code/IRMetadata.java b/src/main/java/com/android/tools/r8/ir/code/IRMetadata.java
index 2b2808b..da9f4dc 100644
--- a/src/main/java/com/android/tools/r8/ir/code/IRMetadata.java
+++ b/src/main/java/com/android/tools/r8/ir/code/IRMetadata.java
@@ -23,22 +23,22 @@
private boolean get(int bit) {
long masked;
if (bit < 64) {
- masked = first & (1 << bit);
+ masked = first & (1L << bit);
} else {
assert bit < 128;
int adjusted = bit - 64;
- masked = second & (1 << adjusted);
+ masked = second & (1L << adjusted);
}
return masked != 0;
}
private void set(int bit) {
if (bit < 64) {
- first |= (1 << bit);
+ first |= (1L << bit);
} else {
assert bit < 128;
int adjusted = bit - 64;
- second |= (1 << adjusted);
+ second |= (1L << adjusted);
}
}