Home | History | Annotate | Download | only in verifier

Lines Matching defs:res_type

2113       const RegType& res_type = GetCaughtExceptionType();
2114 work_line_->SetRegisterType<LockOp::kClear>(this, inst->VRegA_11x(), res_type);
2279 // TODO: check Compiler::CanAccessTypeWithoutChecks returns false when res_type is unresolved
2280 const RegType& res_type = ResolveClass<CheckAccess::kYes>(dex::TypeIndex(inst->VRegB_21c()));
2283 this, inst->VRegA_21c(), res_type.IsConflict() ? res_type
2363 const RegType& res_type = ResolveClass<CheckAccess::kYes>(type_idx);
2364 if (res_type.IsConflict()) {
2383 // TODO: check Compiler::CanAccessTypeWithoutChecks returns false when res_type is unresolved
2386 if (!res_type.IsNonZeroReferenceTypes()) {
2388 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "check-cast on unexpected class " << res_type;
2390 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "instance-of on unexpected class " << res_type;
2408 work_line_->SetRegisterType<LockOp::kKeep>(this, inst->VRegA_21c(), res_type);
2418 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegB_12x());
2419 if (res_type.IsReferenceTypes()) {
2420 if (!res_type.IsArrayTypes() && !res_type.IsZeroOrNull()) {
2422 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array-length on non-array " << res_type;
2429 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array-length on non-array " << res_type;
2434 const RegType& res_type = ResolveClass<CheckAccess::kYes>(dex::TypeIndex(inst->VRegB_21c()));
2435 if (res_type.IsConflict()) {
2439 // TODO: check Compiler::CanAccessTypeWithoutChecks returns false when res_type is unresolved
2441 if (!res_type.IsInstantiableTypes()) {
2443 << "new-instance on primitive, interface or abstract class" << res_type;
2446 const RegType& uninit_type = reg_types_.Uninitialized(res_type, work_insn_idx_);
2499 const RegType& res_type = work_line_->GetRegisterType(this, inst->VRegA_11x());
2500 if (!reg_types_.JavaLangThrowable(false).IsAssignableFrom(res_type, this)) {
2501 if (res_type.IsUninitializedTypes()) {
2503 } else if (!res_type.IsReferenceTypes()) {
2504 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "thrown value of non-reference type " << res_type;
2506 Fail(res_type.IsUnresolvedTypes() ? VERIFY_ERROR_NO_CLASS : VERIFY_ERROR_BAD_CLASS_SOFT)
2507 << "thrown class " << res_type << " not instanceof Throwable";
4410 const RegType& res_type = ResolveClass<CheckAccess::kYes>(type_idx);
4411 if (res_type.IsConflict()) { // bad class
4414 // TODO: check Compiler::CanAccessTypeWithoutChecks returns false when res_type is unresolved
4415 if (!res_type.IsArrayTypes()) {
4416 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "new-array on non-array class " << res_type;
4421 const RegType& precise_type = reg_types_.FromUninitialized(res_type);
4424 DCHECK(!res_type.IsUnresolvedMergedReference());
4427 const RegType& expected_type = reg_types_.GetComponentType(res_type, GetClassLoader());
4441 const RegType& precise_type = reg_types_.FromUninitialized(res_type);