summaryrefslogtreecommitdiffstats
path: root/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-03-12 01:41:32 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-03-12 01:41:33 +0000
commitd304629202eec2ab053a47fc7bcf10223b5ccea4 (patch)
tree68ad0acbae9d59e0a143c6b26a5a74879023db0f /compiler/driver/compiler_driver.cc
parent6b743b7b3a5cfbacca44cc65e1a4c138588889da (diff)
parent7ae063bf396534bc3022cbc3a681c5302e864db8 (diff)
downloadandroid_art-d304629202eec2ab053a47fc7bcf10223b5ccea4.tar.gz
android_art-d304629202eec2ab053a47fc7bcf10223b5ccea4.tar.bz2
android_art-d304629202eec2ab053a47fc7bcf10223b5ccea4.zip
Merge "ART: Check that boot image classes are verified"
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r--compiler/driver/compiler_driver.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index 78dd6cc29e..be6c41a834 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -1860,6 +1860,12 @@ static void VerifyClass(const ParallelCompilationManager* manager, size_t class_
CHECK(klass->IsCompileTimeVerified() || klass->IsErroneous())
<< PrettyDescriptor(klass.Get()) << ": state=" << klass->GetStatus();
+
+ // It is *very* problematic if there are verification errors in the boot classpath. For example,
+ // we rely on things working OK without verification when the decryption dialog is brought up.
+ // So abort in a debug build if we find this violated.
+ DCHECK(!manager->GetCompiler()->IsImage() || klass->IsVerified()) << "Boot classpath class " <<
+ PrettyClass(klass.Get()) << " failed to fully verify.";
}
soa.Self()->AssertNoPendingException();
}