aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-10-06 23:45:20 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-10-06 23:45:20 +0000
commitd1078b63db714e1afc9bc40de95de325ea427493 (patch)
tree2933454aae32ee7a341b336bd604eb8a60bf3c36
parent76fd6fcc56db28e0ad2ca710283cd3ae77d0d80c (diff)
parenta75b3015cca5dcc833f5c4834040825875742ff3 (diff)
downloadr8-studio-master-dev.tar.gz
Snap for 4382717 from a75b3015cca5dcc833f5c4834040825875742ff3 to studio-3.0-releasestudio-3.0gradle_3.0.0studio-master-dev
Change-Id: Icb9ea7894d142dfcbc928855f245fd80bc860c13
-rw-r--r--src/main/java/com/android/tools/r8/D8.java2
-rw-r--r--src/main/java/com/android/tools/r8/R8.java2
-rw-r--r--src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java9
-rw-r--r--src/test/examples/regress_65104300/Regress.java20
-rw-r--r--src/test/java/com/android/tools/r8/R8RunExamplesTest.java1
5 files changed, 27 insertions, 7 deletions
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index 7c3855551..7280fc375 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -55,7 +55,7 @@ import java.util.concurrent.ExecutorService;
*/
public final class D8 {
- private static final String VERSION = "v0.1.13";
+ private static final String VERSION = "v0.1.14";
private static final int STATUS_ERROR = 1;
private D8() {}
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index a2fcbf10a..f723d7b9a 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -71,7 +71,7 @@ import java.util.concurrent.Executors;
public class R8 {
- private static final String VERSION = "v0.1.13";
+ private static final String VERSION = "v0.1.14";
private final Timing timing = new Timing("R8");
private final InternalOptions options;
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java b/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
index ff350a6aa..c0b5f44e8 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
@@ -966,11 +966,10 @@ public class CodeRewriter {
InstructionListIterator insertAt = block.listIterator();
// Place the instruction as late in the block as we can. It needs to go before users
// and if we have catch handlers it needs to be placed before the throwing instruction.
- insertAt.nextUntil(i -> {
- return i.inValues().contains(instruction.outValue())
- || i.isJumpInstruction()
- || (hasCatchHandlers && i.instructionInstanceCanThrow());
- });
+ insertAt.nextUntil(i ->
+ i.inValues().contains(instruction.outValue())
+ || i.isJumpInstruction()
+ || (hasCatchHandlers && i.instructionTypeCanThrow()));
insertAt.previous();
insertAt.add(instruction);
}
diff --git a/src/test/examples/regress_65104300/Regress.java b/src/test/examples/regress_65104300/Regress.java
new file mode 100644
index 000000000..05a43338b
--- /dev/null
+++ b/src/test/examples/regress_65104300/Regress.java
@@ -0,0 +1,20 @@
+// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package regress_65104300;
+
+public class Regress {
+ // We correctly deduce that the array put cannot throw. However, we had a bug
+ // where we did not remove the handler but we allowed lowering the const 0 below
+ // the array put which makes it unavailable in the handler block.
+ public static void main(String[] args) {
+ Object[] objects = new Object[10];
+ Object o = new Object();
+ try {
+ objects[4] = o;
+ System.out.println(0);
+ } catch (Exception e) {
+ System.out.println(0);
+ }
+ }
+}
diff --git a/src/test/java/com/android/tools/r8/R8RunExamplesTest.java b/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
index 5e265aa7d..e8f1c8618 100644
--- a/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunExamplesTest.java
@@ -103,6 +103,7 @@ public class R8RunExamplesTest {
"regress_37875803.Regress",
"regress_37955340.Regress",
"regress_62300145.Regress",
+ "regress_65104300.Regress",
"memberrebinding2.Memberrebinding",
"memberrebinding3.Memberrebinding",
"minification.Minification",