diff options
author | Andreas Gampe <agampe@google.com> | 2015-08-13 15:21:45 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-08-13 15:21:45 +0000 |
commit | 5c0e80e27bf67e4d34352ab516c3bedd1d23d4fb (patch) | |
tree | eb5e67e3957f63dbde2c8836474545992c06c6f8 /test | |
parent | 41f402e2e2e56df3c65914eee60a11c027d2c58c (diff) | |
parent | e682a0250702c65a668e39eefdd1c49cfea5f388 (diff) | |
download | android_art-5c0e80e27bf67e4d34352ab516c3bedd1d23d4fb.tar.gz android_art-5c0e80e27bf67e4d34352ab516c3bedd1d23d4fb.tar.bz2 android_art-5c0e80e27bf67e4d34352ab516c3bedd1d23d4fb.zip |
am e682a025: ART: Change UninitializedThis tracking in the verifier
* commit 'e682a0250702c65a668e39eefdd1c49cfea5f388':
ART: Change UninitializedThis tracking in the verifier
Diffstat (limited to 'test')
-rw-r--r-- | test/800-smali/expected.txt | 1 | ||||
-rw-r--r-- | test/800-smali/smali/b_20843113.smali | 34 | ||||
-rw-r--r-- | test/800-smali/src/Main.java | 1 |
3 files changed, 36 insertions, 0 deletions
diff --git a/test/800-smali/expected.txt b/test/800-smali/expected.txt index 77668daadd..ebcaad147d 100644 --- a/test/800-smali/expected.txt +++ b/test/800-smali/expected.txt @@ -28,4 +28,5 @@ b/22331663 b/22331663 (pass) b/22331663 (fail) b/22881413 +b/20843113 Done! diff --git a/test/800-smali/smali/b_20843113.smali b/test/800-smali/smali/b_20843113.smali new file mode 100644 index 0000000000..ab3dc4157b --- /dev/null +++ b/test/800-smali/smali/b_20843113.smali @@ -0,0 +1,34 @@ +.class public LB20843113; +.super Ljava/lang/Object; + + +.method public constructor <init>(I)V +.registers 2 + +:Label1 + # An instruction that may throw, so as to pass UninitializedThis to the handler + div-int v1, v1, v1 + + # Call the super-constructor + invoke-direct {v0}, Ljava/lang/Object;-><init>()V + + # Return normally. + return-void + +:Label2 + + +:Handler + move-exception v0 # Overwrite the (last) "this" register. This should be + # allowed as we will terminate abnormally below. + + throw v0 # Terminate abnormally + +.catchall {:Label1 .. :Label2} :Handler +.end method + +# Just a dummy. +.method public static run()V +.registers 1 + return-void +.end method diff --git a/test/800-smali/src/Main.java b/test/800-smali/src/Main.java index 7ee1e45312..e487374026 100644 --- a/test/800-smali/src/Main.java +++ b/test/800-smali/src/Main.java @@ -102,6 +102,7 @@ public class Main { testCases.add(new TestCase("b/22331663 (fail)", "B22331663Fail", "run", new Object[] { false }, new VerifyError(), null)); testCases.add(new TestCase("b/22881413", "B22881413", "run", null, null, null)); + testCases.add(new TestCase("b/20843113", "B20843113", "run", null, null, null)); } public void runTests() { |