Home
last modified time | relevance | path

Searched refs:verifier (Results 1 – 25 of 84) sorted by relevance

1234

/art/runtime/verifier/
Dregister_line.cc27 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 …]
Dregister_line-inl.h26 namespace verifier {
32 inline const RegType& RegisterLine::GetRegisterType(MethodVerifier* verifier, uint32_t vsrc) const { in GetRegisterType() argument
35 return verifier->GetRegTypeCache()->GetFromId(line_[vsrc]); in GetRegisterType()
39 inline bool RegisterLine::SetRegisterType(MethodVerifier* verifier, uint32_t vdst, in SetRegisterType() argument
43 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Expected category1 register type not '" in SetRegisterType()
64 inline bool RegisterLine::SetRegisterTypeWide(MethodVerifier* verifier, uint32_t vdst, in SetRegisterTypeWide() argument
69 verifier->Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "Invalid wide pair '" in SetRegisterTypeWide()
82 inline void RegisterLine::SetResultTypeToUnknown(MethodVerifier* verifier) { in SetResultTypeToUnknown() argument
83 result_[0] = verifier->GetRegTypeCache()->Undefined().GetId(); in SetResultTypeToUnknown()
87 inline void RegisterLine::SetResultRegisterType(MethodVerifier* verifier, const RegType& new_type) { in SetResultRegisterType() argument
[all …]
Dregister_line.h30 namespace verifier {
66 static RegisterLine* Create(size_t num_regs, MethodVerifier* verifier);
69 void CopyRegister1(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc, TypeCategory cat)
74 void CopyRegister2(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc)
79 void CopyResultRegister1(MethodVerifier* verifier, uint32_t vdst, bool is_reference)
84 void CopyResultRegister2(MethodVerifier* verifier, uint32_t vdst)
88 void SetResultTypeToUnknown(MethodVerifier* verifier) REQUIRES_SHARED(Locks::mutator_lock_);
102 ALWAYS_INLINE bool SetRegisterType(MethodVerifier* verifier,
107 bool SetRegisterTypeWide(MethodVerifier* verifier,
114 void SetResultRegisterType(MethodVerifier* verifier, const RegType& new_type)
[all …]
Dverifier_compiler_binding.h26 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()
Dreg_type-inl.h29 namespace verifier {
70 MethodVerifier* verifier) { in AssignableFrom() argument
115 if (verifier != nullptr) { in AssignableFrom()
117 verifier->GetDexFile(), lhs.GetClass(), rhs.GetClass(), strict, result); in AssignableFrom()
133 inline bool RegType::IsAssignableFrom(const RegType& src, MethodVerifier* verifier) const { in IsAssignableFrom() argument
134 return AssignableFrom(*this, src, false, verifier); in IsAssignableFrom()
137 inline bool RegType::IsStrictlyAssignableFrom(const RegType& src, MethodVerifier* verifier) const { in IsStrictlyAssignableFrom() argument
138 return AssignableFrom(*this, src, true, verifier); in IsStrictlyAssignableFrom()
/art/runtime/
Dcompiler_callbacks.h27 namespace verifier {
43 virtual void MethodVerified(verifier::MethodVerifier* verifier)
51 virtual verifier::VerifierDeps* GetVerifierDeps() const = 0;
52 virtual void SetVerifierDeps(verifier::VerifierDeps* deps ATTRIBUTE_UNUSED) {} in SetVerifierDeps()
Dnoop_compiler_callbacks.h29 void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) OVERRIDE { in MethodVerified()
39 verifier::VerifierDeps* GetVerifierDeps() const OVERRIDE { return nullptr; } in GetVerifierDeps()
Daot_class_linker.cc32 verifier::FailureKind AotClassLinker::PerformClassVerification(Thread* self, in PerformClassVerification()
34 verifier::HardFailLogMode log_level, in PerformClassVerification()
40 return verifier::FailureKind::kNoFailure; in PerformClassVerification()
Daot_class_linker.h34 verifier::FailureKind PerformClassVerification(Thread* self,
36 verifier::HardFailLogMode log_level,
/art/compiler/dex/
Dquick_compiler_callbacks.h35 void MethodVerified(verifier::MethodVerifier* verifier)
45 verifier::VerifierDeps* GetVerifierDeps() const OVERRIDE { in GetVerifierDeps()
49 void SetVerifierDeps(verifier::VerifierDeps* deps) OVERRIDE { in SetVerifierDeps()
70 std::unique_ptr<verifier::VerifierDeps> verifier_deps_;
Dverified_method.cc38 const VerifiedMethod* VerifiedMethod::Create(verifier::MethodVerifier* method_verifier) { in Create()
58 void VerifiedMethod::GenerateSafeCastSet(verifier::MethodVerifier* method_verifier) { in GenerateSafeCastSet()
80 const verifier::RegisterLine* line = method_verifier->GetRegLine(dex_pc); in GenerateSafeCastSet()
81 const verifier::RegType& reg_type(line->GetRegisterType(method_verifier, in GenerateSafeCastSet()
83 const verifier::RegType& cast_type = in GenerateSafeCastSet()
94 verifier::VerifierDeps::MaybeRecordAssignability(method_verifier->GetDexFile(), in GenerateSafeCastSet()
Dquick_compiler_callbacks.cc25 void QuickCompilerCallbacks::MethodVerified(verifier::MethodVerifier* verifier) { in MethodVerified() argument
27 verification_results_->ProcessVerifiedMethod(verifier); in MethodVerified()
Dverified_method.h29 namespace verifier {
42 static const VerifiedMethod* Create(verifier::MethodVerifier* method_verifier)
69 void GenerateSafeCastSet(verifier::MethodVerifier* method_verifier)
Dverification_results.h33 namespace verifier {
47 void ProcessVerifiedMethod(verifier::MethodVerifier* method_verifier)
85 friend class verifier::VerifierDepsTest;
/art/test/076-boolean-put/
Dinfo.txt2 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/303-verification-stress/
Dinfo.txt1 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/
Dinfo.txt1 Regression test for verifier crash when processing a final abstract (erroneous) class.
/art/test/493-checker-inline-invoke-interface/
Dinfo.txt2 requiring the verifier to sharpen them.
/art/test/506-verify-aput/
Dinfo.txt2 by the verifier.
/art/test/088-monitor-verification/
Dinfo.txt2 lock checks in the bytecode verifier.
/art/test/954-invoke-polymorphic-verifier/
Dinfo.txt1 Test cases that should be rejected by the method verifier.
/art/test/974-verify-interface-super/
Dinfo.txt2 verifier errors.
/art/test/546-regression-simplify-catch/
Dinfo.txt2 that was not verified by the verifier.
/art/compiler/
Dverifier_deps_test.cc40 namespace verifier { namespace
48 void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) OVERRIDE {} in MethodVerified()
52 verifier::VerifierDeps* GetVerifierDeps() const OVERRIDE { return deps_; } in GetVerifierDeps()
53 void SetVerifierDeps(verifier::VerifierDeps* deps) { deps_ = deps; } in SetVerifierDeps()
56 verifier::VerifierDeps* deps_;
86 void VerifyWithCompilerDriver(verifier::VerifierDeps* deps) { in VerifyWithCompilerDriver()
92 deps = new verifier::VerifierDeps(dex_files_); in VerifyWithCompilerDriver()
109 verifier_deps_.reset(new verifier::VerifierDeps(dex_files)); in SetVerifierDeps()
177 MethodVerifier verifier(Thread::Current(), in VerifyMethod() local
191 verifier.Verify(); in VerifyMethod()
[all …]
/art/test/516-dead-move-result/
Dinfo.txt2 where a move-result was bogus, but it passed the verifier

1234