Merge "Update Art 5.1.1 stack guard patch"
diff --git a/src/main/java/com/android/tools/r8/dex/FileWriter.java b/src/main/java/com/android/tools/r8/dex/FileWriter.java
index 8afbc8b..f24f4de 100644
--- a/src/main/java/com/android/tools/r8/dex/FileWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/FileWriter.java
@@ -671,14 +671,17 @@
 
   private void writeMethodHandle(DexMethodHandle methodHandle) {
     checkThatInvokeCustomIsAllowed();
-    MethodHandleType methodHandleDexType = methodHandle.type;
-    switch (methodHandleDexType) {
+    MethodHandleType methodHandleDexType;
+    switch (methodHandle.type) {
       case INVOKE_CONSTRUCTOR:
         throw new CompilationError("Constructor method handle type is not yet supported.");
       case INVOKE_INTERFACE:
       case INVOKE_SUPER:
         methodHandleDexType = MethodHandleType.INVOKE_INSTANCE;
         break;
+      default:
+        methodHandleDexType = methodHandle.type;
+        break;
     }
     assert dest.isAligned(4);
     dest.putShort(methodHandleDexType.getValue());
diff --git a/src/main/java/com/android/tools/r8/ir/code/ArithmeticBinop.java b/src/main/java/com/android/tools/r8/ir/code/ArithmeticBinop.java
index 8f8444c..8a001ae 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ArithmeticBinop.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ArithmeticBinop.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.ir.code;
 
 import com.android.tools.r8.code.Instruction;
+import com.android.tools.r8.errors.Unreachable;
 import com.android.tools.r8.ir.conversion.DexBuilder;
 
 public abstract class ArithmeticBinop extends Binop {
@@ -108,6 +109,8 @@
         case LONG:
           instruction = CreateLong2Addr(dest, right);
           break;
+        default:
+          throw new Unreachable("Unexpected numeric type " + type.name());
       }
     } else if (!rightValue().needsRegister()) {
       assert !isSub();  // Constants in instructions for sub must be handled in subclass Sub.
@@ -134,6 +137,8 @@
         case LONG:
           instruction = CreateLong(dest, left, right);
           break;
+        default:
+          throw new Unreachable("Unexpected numeric type " + type.name());
       }
     }
     builder.add(this, instruction);
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaMainMethodSourceCode.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaMainMethodSourceCode.java
index 5eb4c30..2355e5e 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaMainMethodSourceCode.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaMainMethodSourceCode.java
@@ -406,6 +406,9 @@
           add(builder -> builder.addConversion(to, type, result, register));
           return result;
         }
+        default:
+          // exception is thrown below
+          break;
       }
     }
 
diff --git a/tools/test.py b/tools/test.py
index e3fbd9b..53a7b1e 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -69,21 +69,7 @@
   url = 'http://storage.googleapis.com/%s/%s/index.html' % (BUCKET, u_dir)
   print 'Test results available at: %s' % url
 
-def run_bot_debugging():
-  subprocess.check_call(['gsutil.py', 'cp', 'gs://r8-test-results/hello.dex', '/tmp/hello.dex'])
-  subprocess.check_call(['bash', 'tools/linux/art/bin/art', '-cp', '/tmp/hello.dex', 'hello.Hello'])
-  subprocess.check_call(['cat', '/proc/meminfo'])
-  subprocess.check_call(['ps', 'aux'])
-  print 'ulimit -s'
-  subprocess.check_call('ulimit -s', shell=True)
-
 def Main():
-  user = os.environ.get('USER', 'foobar')
-  bot_name = os.environ.get('BUILDBOT_BUILDERNAME')
-  if user == 'chrome-bot' and (bot_name == 'linux-jctf' or bot_name == 'd8-linux-jctf'):
-    print 'Running temporarily disabled for %s' % user
-    run_bot_debugging()
-    return 0
   (options, args) = ParseOptions()
   gradle_args = ['cleanTest', 'test']
   if len(args) > 1: