summaryrefslogtreecommitdiffstats
path: root/test/800-smali/smali
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-05-26 13:35:39 -0700
committerAndreas Gampe <agampe@google.com>2015-05-27 08:43:53 -0700
commit3b74e275838729c5023cd80116f1b3b81306ee19 (patch)
tree1d343440fe1bcfbd9f660e20616197ab525db66d /test/800-smali/smali
parent54d65738eecc1fa79ed528ff2f6b9b4f7a4743be (diff)
downloadart-3b74e275838729c5023cd80116f1b3b81306ee19.zip
art-3b74e275838729c5023cd80116f1b3b81306ee19.tar.gz
art-3b74e275838729c5023cd80116f1b3b81306ee19.tar.bz2
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 Change-Id: I6e08202617147378b204af169308b67fc69f92c6
Diffstat (limited to 'test/800-smali/smali')
-rw-r--r--test/800-smali/smali/b_20224106.smali16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/800-smali/smali/b_20224106.smali b/test/800-smali/smali/b_20224106.smali
new file mode 100644
index 0000000..78009db
--- /dev/null
+++ b/test/800-smali/smali/b_20224106.smali
@@ -0,0 +1,16 @@
+.class public LB20224106;
+
+# Test that a hard + soft verifier failure in invoke-interface does not lead to
+# an order abort (the last failure must be hard).
+
+.super Ljava/lang/Object;
+
+.method public static run(LB20224106;Ljava/lang/Object;)V
+ .registers 4
+ # Two failure points here:
+ # 1) There is a parameter type mismatch. The formal type is integral (int), but the actual
+ # type is reference.
+ # 2) The receiver is not an interface or Object
+ invoke-interface {v2, v3}, Ljava/net/DatagramSocket;->checkPort(I)V
+ return-void
+.end method