Home
last modified time | relevance | path

Searched refs:verifier (Results 1 – 25 of 96) 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.h28 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 …]
Dregister_line.h34 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 …]
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 {
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/
Dcompiler_callbacks.h34 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()
Dnoop_compiler_callbacks.h29 void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) override { in MethodVerified()
34 verifier::VerifierDeps* GetVerifierDeps() const override { return nullptr; } in GetVerifierDeps()
Daot_class_linker.h43 verifier::FailureKind PerformClassVerification(Thread* self,
45 verifier::HardFailLogMode log_level,
Daot_class_linker.cc106 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/
Dverified_method.cc40 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()
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/dex2oat/dex/
Dquick_compiler_callbacks.h36 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_;
Dquick_compiler_callbacks.cc25 void QuickCompilerCallbacks::MethodVerified(verifier::MethodVerifier* verifier) { in MethodVerified() argument
27 verification_results_->ProcessVerifiedMethod(verifier); in MethodVerified()
/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/664-aget-verifier/
Dinfo.txt1 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/
Dinfo.txt1 Codifies that the verifier should reject type-unsafe
8 ensure verifier strictness and help the compilers see more
/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/676-resolve-field-type/
Dinfo.txt1 Test trying to reproduce class loader issues with the verifier.

1234