ART: Fix wrong hard-failure handling in verifier

Correctly return null for the method when a hard failure is
encountered. Also improve logging for order failures. Add a
regression test.

Bug: 20224106

(cherry picked from commit 3b74e275838729c5023cd80116f1b3b81306ee19)

Change-Id: I6e08202617147378b204af169308b67fc69f92c6
diff --git a/test/800-smali/src/Main.java b/test/800-smali/src/Main.java
index 3e0b1f9..3e88364 100644
--- a/test/800-smali/src/Main.java
+++ b/test/800-smali/src/Main.java
@@ -79,6 +79,8 @@
             "moveExceptionOnEntry", new Object[]{0}, new VerifyError(), null));
         testCases.add(new TestCase("EmptySparseSwitch", "EmptySparseSwitch", "run", null, null,
                 null));
+        testCases.add(new TestCase("b/20224106", "B20224106", "run", null, new VerifyError(),
+                0));
     }
 
     public void runTests() {