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;
     }