diff options
author | 2016-03-25 16:58:00 -0700 | |
---|---|---|
committer | 2016-03-28 16:57:30 -0700 | |
commit | 7fe30233d32a872f5349e921dba65bd767ad994b (patch) | |
tree | 6039f608c5753d549a30a07f4997cb8141eba970 /compiler | |
parent | bf9611f821697b14bf9e170f503c3f47613b046b (diff) |
ART: Make verifier fail log level adjustable
To help for build failures.
Change-Id: I6c94dfb50177daa7d89902d78715ccec31bf0e45
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/driver/compiler_driver.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index ea16cb2662..d29d528c27 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -2212,7 +2212,8 @@ void CompilerDriver::Verify(jobject class_loader, class VerifyClassVisitor : public CompilationVisitor { public: - explicit VerifyClassVisitor(const ParallelCompilationManager* manager) : manager_(manager) {} + VerifyClassVisitor(const ParallelCompilationManager* manager, LogSeverity log_level) + : manager_(manager), log_level_(log_level) {} virtual void Visit(size_t class_def_index) REQUIRES(!Locks::mutator_lock_) OVERRIDE { ATRACE_CALL(); @@ -2250,7 +2251,7 @@ class VerifyClassVisitor : public CompilationVisitor { &class_def, Runtime::Current()->GetCompilerCallbacks(), true /* allow soft failures */, - true /* log hard failures */, + log_level_, &error_msg) == verifier::MethodVerifier::kHardFailure) { LOG(ERROR) << "Verification failed on class " << PrettyDescriptor(descriptor) @@ -2259,7 +2260,7 @@ class VerifyClassVisitor : public CompilationVisitor { } } else if (!SkipClass(jclass_loader, dex_file, klass.Get())) { CHECK(klass->IsResolved()) << PrettyClass(klass.Get()); - class_linker->VerifyClass(soa.Self(), klass); + class_linker->VerifyClass(soa.Self(), klass, log_level_); if (klass->IsErroneous()) { // ClassLinker::VerifyClass throws, which isn't useful in the compiler. @@ -2282,6 +2283,7 @@ class VerifyClassVisitor : public CompilationVisitor { private: const ParallelCompilationManager* const manager_; + const LogSeverity log_level_; }; void CompilerDriver::VerifyDexFile(jobject class_loader, @@ -2294,7 +2296,10 @@ void CompilerDriver::VerifyDexFile(jobject class_loader, ClassLinker* class_linker = Runtime::Current()->GetClassLinker(); ParallelCompilationManager context(class_linker, class_loader, this, &dex_file, dex_files, thread_pool); - VerifyClassVisitor visitor(&context); + LogSeverity log_level = GetCompilerOptions().AbortOnHardVerifierFailure() + ? LogSeverity::INTERNAL_FATAL + : LogSeverity::WARNING; + VerifyClassVisitor visitor(&context, log_level); context.ForAll(0, dex_file.NumClassDefs(), &visitor, thread_count); } |