diff options
-rw-r--r-- | runtime/verifier/reg_type_cache.cc | 4 | ||||
-rw-r--r-- | test/800-smali/smali/b_22881413.smali | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/runtime/verifier/reg_type_cache.cc b/runtime/verifier/reg_type_cache.cc index a597c8fdf..0f36572b3 100644 --- a/runtime/verifier/reg_type_cache.cc +++ b/runtime/verifier/reg_type_cache.cc @@ -325,7 +325,7 @@ const RegType& RegTypeCache::FromUnresolvedMerge(const RegType& left, const RegT const UnresolvedMergedType* left_merge = down_cast<const UnresolvedMergedType*>(&left); types.Copy(&left_merge->GetUnresolvedTypes()); left_resolved = &left_merge->GetResolvedPart(); - } else if (left.IsUnresolvedReference()) { + } else if (left.IsUnresolvedTypes()) { types.SetBit(left.GetId()); left_resolved = &Zero(); } else { @@ -337,7 +337,7 @@ const RegType& RegTypeCache::FromUnresolvedMerge(const RegType& left, const RegT const UnresolvedMergedType* right_merge = down_cast<const UnresolvedMergedType*>(&right); types.Union(&right_merge->GetUnresolvedTypes()); right_resolved = &right_merge->GetResolvedPart(); - } else if (right.IsUnresolvedReference()) { + } else if (right.IsUnresolvedTypes()) { types.SetBit(right.GetId()); right_resolved = &Zero(); } else { diff --git a/test/800-smali/smali/b_22881413.smali b/test/800-smali/smali/b_22881413.smali index f62473435..29dd82a35 100644 --- a/test/800-smali/smali/b_22881413.smali +++ b/test/800-smali/smali/b_22881413.smali @@ -47,6 +47,10 @@ # v8 = int, v9 = boolean, v10 = boolean sget-object v0, LB22881413;->unresBase0:La/b/c/dBase0; + +# Test an UnresolvedUninitializedReference type. + new-instance v0, La/b/c/dBaseInit; + const v1, 0 const v2, 0 |