summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
author Calin Juravle <calin@google.com> 2016-03-31 11:56:29 +0100
committer Calin Juravle <calin@google.com> 2016-03-31 13:38:00 +0000
commitc0b2763154e4219e65bb3f827e783512c962364d (patch)
tree1720e1991c7b41bb9cf743871291361c3538e9e2 /compiler/driver/compiler_driver.cc
parent6d1b2472155335ef4e53af01543f9b208bf98dca (diff)
parent268abb5acc99461b3cd93e60991ec004191f1354 (diff)
Merge remote-tracking branch 'goog/master' into nyc-dev
Bug: 27616343 Bug: 27851582 Bug: 27693977 Bug: 27690481 Bug: 27799205 Bug: 27683071 Bug: 27625564 Change-Id: I261eb9f3e8144e85233dc4313e674e75f812003c
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r--compiler/driver/compiler_driver.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index 5c1c92b712..5bfd5f3189 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -2210,7 +2210,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();
@@ -2248,7 +2249,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)
@@ -2257,7 +2258,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.
@@ -2280,6 +2281,7 @@ class VerifyClassVisitor : public CompilationVisitor {
private:
const ParallelCompilationManager* const manager_;
+ const LogSeverity log_level_;
};
void CompilerDriver::VerifyDexFile(jobject class_loader,
@@ -2292,7 +2294,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);
}