/art/runtime/verifier/ |
D | register_line.cc | 27 namespace verifier { namespace 31 bool RegisterLine::CheckConstructorReturn(MethodVerifier* verifier) const { in CheckConstructorReturn() 35 const RegType& type = GetRegisterType(verifier, i); in CheckConstructorReturn() 39 << verifier->GetMethodReference().PrettyMethod(); in CheckConstructorReturn() 43 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) in CheckConstructorReturn() 49 const RegType& RegisterLine::GetInvocationThis(MethodVerifier* verifier, const Instruction* inst, in GetInvocationThis() argument 55 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invoke lacks 'this'"; in GetInvocationThis() 57 return verifier->GetRegTypeCache()->Conflict(); in GetInvocationThis() 61 const RegType& this_type = GetRegisterType(verifier, this_reg); in GetInvocationThis() 64 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) in GetInvocationThis() [all …]
|
D | register_line-inl.h | 28 namespace verifier { 34 inline const RegType& RegisterLine::GetRegisterType(MethodVerifier* verifier, uint32_t vsrc) const { in GetRegisterType() argument 37 return verifier->GetRegTypeCache()->GetFromId(line_[vsrc]); in GetRegisterType() 41 inline bool RegisterLine::SetRegisterType(MethodVerifier* verifier, uint32_t vdst, in SetRegisterType() argument 45 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Expected category1 register type not '" in SetRegisterType() 66 inline bool RegisterLine::SetRegisterTypeWide(MethodVerifier* verifier, uint32_t vdst, in SetRegisterTypeWide() argument 71 verifier->Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "Invalid wide pair '" in SetRegisterTypeWide() 89 inline void RegisterLine::SetResultRegisterType(MethodVerifier* verifier, const RegType& new_type) { in SetResultRegisterType() argument 93 result_[1] = verifier->GetRegTypeCache()->Undefined().GetId(); in SetResultRegisterType() 103 inline void RegisterLine::CopyRegister1(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc, in CopyRegister1() argument [all …]
|
D | register_line.h | 34 namespace verifier { 82 void CopyRegister1(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc, TypeCategory cat) 87 void CopyRegister2(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc) 92 void CopyResultRegister1(MethodVerifier* verifier, uint32_t vdst, bool is_reference) 97 void CopyResultRegister2(MethodVerifier* verifier, uint32_t vdst) 115 ALWAYS_INLINE bool SetRegisterType(MethodVerifier* verifier, 120 bool SetRegisterTypeWide(MethodVerifier* verifier, 127 void SetResultRegisterType(MethodVerifier* verifier, const RegType& new_type) 134 const RegType& GetRegisterType(MethodVerifier* verifier, uint32_t vsrc) const; 136 ALWAYS_INLINE bool VerifyRegisterType(MethodVerifier* verifier, [all …]
|
D | verifier_compiler_binding.h | 26 namespace verifier { 30 constexpr uint32_t unresolved_mask = verifier::VerifyError::VERIFY_ERROR_NO_CLASS in CanCompilerHandleVerificationFailure() 31 | verifier::VerifyError::VERIFY_ERROR_ACCESS_CLASS in CanCompilerHandleVerificationFailure() 32 | verifier::VerifyError::VERIFY_ERROR_ACCESS_FIELD in CanCompilerHandleVerificationFailure() 33 | verifier::VerifyError::VERIFY_ERROR_ACCESS_METHOD; in CanCompilerHandleVerificationFailure()
|
D | reg_type-inl.h | 29 namespace verifier { 73 MethodVerifier* verifier) { in AssignableFrom() argument 118 if (verifier != nullptr) { in AssignableFrom() 120 verifier->GetDexFile(), lhs.GetClass(), rhs.GetClass(), strict, result); in AssignableFrom() 137 inline bool RegType::IsAssignableFrom(const RegType& src, MethodVerifier* verifier) const { in IsAssignableFrom() argument 138 return AssignableFrom(*this, src, false, verifier); in IsAssignableFrom() 141 inline bool RegType::IsStrictlyAssignableFrom(const RegType& src, MethodVerifier* verifier) const { in IsStrictlyAssignableFrom() argument 142 return AssignableFrom(*this, src, true, verifier); in IsStrictlyAssignableFrom()
|
/art/runtime/ |
D | compiler_callbacks.h | 34 namespace verifier { 50 virtual void MethodVerified(verifier::MethodVerifier* verifier) 54 virtual verifier::VerifierDeps* GetVerifierDeps() const = 0; 55 virtual void SetVerifierDeps(verifier::VerifierDeps* deps ATTRIBUTE_UNUSED) {} in SetVerifierDeps()
|
D | noop_compiler_callbacks.h | 29 void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) override { in MethodVerified() 34 verifier::VerifierDeps* GetVerifierDeps() const override { return nullptr; } in GetVerifierDeps()
|
D | aot_class_linker.h | 43 verifier::FailureKind PerformClassVerification(Thread* self, 45 verifier::HardFailLogMode log_level,
|
D | aot_class_linker.cc | 106 verifier::FailureKind AotClassLinker::PerformClassVerification(Thread* self, in PerformClassVerification() 108 verifier::HardFailLogMode log_level, in PerformClassVerification() 116 return verifier::FailureKind::kNoFailure; in PerformClassVerification() 119 return verifier::FailureKind::kAccessChecksFailure; in PerformClassVerification() 125 return verifier::FailureKind::kSoftFailure; in PerformClassVerification()
|
/art/compiler/dex/ |
D | verified_method.cc | 40 const VerifiedMethod* VerifiedMethod::Create(verifier::MethodVerifier* method_verifier) { in Create() 60 void VerifiedMethod::GenerateSafeCastSet(verifier::MethodVerifier* method_verifier) { in GenerateSafeCastSet() 78 const verifier::RegisterLine* line = method_verifier->GetRegLine(dex_pc); in GenerateSafeCastSet() 80 const verifier::RegType& reg_type(line->GetRegisterType(method_verifier, in GenerateSafeCastSet() 82 const verifier::RegType& cast_type = in GenerateSafeCastSet() 93 verifier::VerifierDeps::MaybeRecordAssignability(method_verifier->GetDexFile(), in GenerateSafeCastSet()
|
D | verified_method.h | 29 namespace verifier { 42 static const VerifiedMethod* Create(verifier::MethodVerifier* method_verifier) 69 void GenerateSafeCastSet(verifier::MethodVerifier* method_verifier)
|
D | verification_results.h | 33 namespace verifier { 47 void ProcessVerifiedMethod(verifier::MethodVerifier* method_verifier) 85 friend class verifier::VerifierDepsTest;
|
/art/dex2oat/dex/ |
D | quick_compiler_callbacks.h | 36 void MethodVerified(verifier::MethodVerifier* verifier) 41 verifier::VerifierDeps* GetVerifierDeps() const override { in GetVerifierDeps() 45 void SetVerifierDeps(verifier::VerifierDeps* deps) override { in SetVerifierDeps() 75 std::unique_ptr<verifier::VerifierDeps> verifier_deps_;
|
D | quick_compiler_callbacks.cc | 25 void QuickCompilerCallbacks::MethodVerified(verifier::MethodVerifier* verifier) { in MethodVerified() argument 27 verification_results_->ProcessVerifiedMethod(verifier); in MethodVerified()
|
/art/test/076-boolean-put/ |
D | info.txt | 2 boolean field. The code as generated should not pass the verifier, so the 3 verifier had to be "loosened" to allow this case.
|
/art/test/664-aget-verifier/ |
D | info.txt | 1 Tests how the verifier handles aget on an array that was initially null. 3 The verifier will flag aget instructions as have_pending_runtime_throw_failure_
|
/art/test/518-null-array-get/ |
D | info.txt | 1 Codifies that the verifier should reject type-unsafe 8 ensure verifier strictness and help the compilers see more
|
/art/test/303-verification-stress/ |
D | info.txt | 1 This is more a benchmark for the verifier than a real test. We create many 4 verifier on such method.
|
/art/test/161-final-abstract-class/ |
D | info.txt | 1 Regression test for verifier crash when processing a final abstract (erroneous) class.
|
/art/test/493-checker-inline-invoke-interface/ |
D | info.txt | 2 requiring the verifier to sharpen them.
|
/art/test/506-verify-aput/ |
D | info.txt | 2 by the verifier.
|
/art/test/088-monitor-verification/ |
D | info.txt | 2 lock checks in the bytecode verifier.
|
/art/test/954-invoke-polymorphic-verifier/ |
D | info.txt | 1 Test cases that should be rejected by the method verifier.
|
/art/test/974-verify-interface-super/ |
D | info.txt | 2 verifier errors.
|
/art/test/676-resolve-field-type/ |
D | info.txt | 1 Test trying to reproduce class loader issues with the verifier.
|