ART: Reject array-length on non-reference register
It should be a hard verifier failure if we detect an array-length
instruction over a non-reference-type register.
Bug: 16595896
Change-Id: I059510b15c846551b2f8ded86cfd8127543324f4
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index de792cb..2571cf1 100644
--- a/runtime/verifier/method_verifier.cc
+++ b/runtime/verifier/method_verifier.cc
@@ -1775,6 +1775,8 @@
} else {
work_line_->SetRegisterType(inst->VRegA_12x(), reg_types_.Integer());
}
+ } else {
+ Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array-length on non-array " << res_type;
}
break;
}