commit | aa0c00c97bc1fe5c8def7c6cdebfd119e86d07e5 | [log] [tgz] |
---|---|---|
author | Sebastien Hertz <shertz@google.com> | Fri Mar 14 17:58:54 2014 +0100 |
committer | Sebastien Hertz <shertz@google.com> | Fri Mar 14 18:09:49 2014 +0100 |
tree | 2557e1aeb5a1830c72733797f86ea9bf72418228 | |
parent | 37d4c1db4d705f5a28001f65afdd68d0527948d8 [diff] [blame] |
Fix reg type merging in the verifier Fixes bad merging of float, long and double reg types with constant types. Adds merging tests in reg_type_test. Bug: https://code.google.com/p/android/issues/detail?id=66434 Bug: 13464407 Change-Id: I56761f5f5562b742d0ef9cc66b58d55f7b668949
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc index c4c3082..fb2d29f 100644 --- a/runtime/verifier/method_verifier.cc +++ b/runtime/verifier/method_verifier.cc
@@ -3905,6 +3905,7 @@ std::vector<int32_t> MethodVerifier::DescribeVRegs(uint32_t dex_pc) { RegisterLine* line = reg_table_.GetLine(dex_pc); + DCHECK(line != nullptr) << "No register line at DEX pc " << StringPrintf("0x%x", dex_pc); std::vector<int32_t> result; for (size_t i = 0; i < line->NumRegs(); ++i) { const RegType& type = line->GetRegisterType(i);