Initial push.
diff --git a/src/test/smali/merge-blocks-regression/Test.java b/src/test/smali/merge-blocks-regression/Test.java
new file mode 100644
index 0000000..ca61ff4
--- /dev/null
+++ b/src/test/smali/merge-blocks-regression/Test.java
@@ -0,0 +1,36 @@
+// Copyright (c) 2016, 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.
+
+public class Test {
+
+ public Object b;
+ public Test d;
+ public Test e;
+ public Test g;
+ public Test f;
+
+ public void a() { throw new RuntimeException("Test.a()"); }
+ public void a(long p1) { throw new RuntimeException("Test.a(long)"); }
+ public void a(long p1, boolean p2) { throw new RuntimeException("Test.a(long, boolean)"); }
+ public Test a(java.io.DataInputStream p1) { throw new RuntimeException("Test.a(input-stream)"); }
+ public Test a(byte[] p1, Test p2) { throw new RuntimeException("Test.a(B[], Test)"); }
+ public java.io.File b() { throw new RuntimeException("Test.b()"); }
+ public Test bW_() { throw new RuntimeException("Test.bW_()"); }
+ public long c() { throw new RuntimeException("Test.d()"); }
+ public void c(boolean p1) { throw new RuntimeException("Test.c(boolean)"); }
+ public void c(java.nio.ByteBuffer p1) { throw new RuntimeException("Test.c(byte-buf)"); }
+ public byte[] cB() { throw new RuntimeException("Test.cB()"); }
+ public long d() { throw new RuntimeException("Test.d()"); }
+ public void d(boolean p1) { throw new RuntimeException("Test.d(boolean)"); }
+ public Test e() { throw new RuntimeException("Test.e()"); }
+ public void eV() { throw new RuntimeException("Test.eV()"); }
+
+ public static void main(String[] args) {
+ try {
+ new TestObject().f();
+ } catch (Exception e) {
+ System.out.println(e);
+ }
+ }
+}