Version 2.1.30
Cherry pick: Enum unboxing: fix toString
CL: https://r8-review.googlesource.com/c/r8/+/51780
Bug: 157957894
Change-Id: Ie7e080d90c1e4610ef0c68a35145c0f056129758
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index 47f1b12..5193ef8 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@
// This field is accessed from release scripts using simple pattern matching.
// Therefore, changing this field could break our release scripts.
- public static final String LABEL = "2.1.29";
+ public static final String LABEL = "2.1.30";
private Version() {
}
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/EnumUnboxingCfCodeProvider.java b/src/main/java/com/android/tools/r8/ir/synthetic/EnumUnboxingCfCodeProvider.java
index 61bdbbc..5e9d63f 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/EnumUnboxingCfCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/EnumUnboxingCfCodeProvider.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.cf.code.CfConstString;
import com.android.tools.r8.cf.code.CfFieldInstruction;
import com.android.tools.r8.cf.code.CfIf;
+import com.android.tools.r8.cf.code.CfIfCmp;
import com.android.tools.r8.cf.code.CfInstruction;
import com.android.tools.r8.cf.code.CfInvoke;
import com.android.tools.r8.cf.code.CfLabel;
@@ -66,7 +67,7 @@
CfLabel dest = new CfLabel();
instructions.add(new CfLoad(ValueType.fromDexType(factory.intType), 0));
instructions.add(new CfConstNumber(enumValueInfo.convertToInt(), ValueType.INT));
- instructions.add(new CfIf(If.Type.EQ, ValueType.INT, dest));
+ instructions.add(new CfIfCmp(If.Type.NE, ValueType.INT, dest));
instructions.add(new CfConstString(field.name));
instructions.add(new CfReturn(ValueType.OBJECT));
instructions.add(dest);
diff --git a/src/test/java/com/android/tools/r8/enumunboxing/ToStringEnumUnboxingTest.java b/src/test/java/com/android/tools/r8/enumunboxing/ToStringEnumUnboxingTest.java
index d8d781e..b4f97ab 100644
--- a/src/test/java/com/android/tools/r8/enumunboxing/ToStringEnumUnboxingTest.java
+++ b/src/test/java/com/android/tools/r8/enumunboxing/ToStringEnumUnboxingTest.java
@@ -65,9 +65,13 @@
@SuppressWarnings("ConstantConditions")
public static void main(String[] args) {
System.out.println(MyEnum.A.toString());
+ System.out.println("A");
System.out.println(MyEnum.A.name());
+ System.out.println("A");
System.out.println(MyEnum.B.toString());
+ System.out.println("B");
System.out.println(MyEnum.B.name());
+ System.out.println("B");
try {
System.out.println(((MyEnum) null).toString());
} catch (NullPointerException e) {