Fix handling of missing DataLayout in sanitizers.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 23 Apr 2014 12:51:32 +0000 (12:51 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 23 Apr 2014 12:51:32 +0000 (12:51 +0000)
Pass::doInitialization is supposed to return False when it did not
change the program, not when a fatal error occurs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206975 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/AddressSanitizer.cpp
lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
lib/Transforms/Instrumentation/MemorySanitizer.cpp
lib/Transforms/Instrumentation/ThreadSanitizer.cpp

index 00c7e746768c4912a1f243cbcb4a576025bab8ca..ed4f999b88317bbd8639072e8e720418ba0eb89b 100644 (file)
@@ -1164,7 +1164,7 @@ bool AddressSanitizer::doInitialization(Module &M) {
   // Initialize the private fields. No one has accessed them before.
   DataLayoutPass *DLP = getAnalysisIfAvailable<DataLayoutPass>();
   if (!DLP)
-    return false;
+    report_fatal_error("data layout missing");
   DL = &DLP->getDataLayout();
 
   BL.reset(SpecialCaseList::createOrDie(BlacklistFile));
index 61edb7b05447a740aa3a7f73bd4782d517f522d3..b90c7b74a6377dbde73970ecc9648555ddd6e95a 100644 (file)
@@ -345,7 +345,7 @@ FunctionType *DataFlowSanitizer::getCustomFunctionType(FunctionType *T) {
 bool DataFlowSanitizer::doInitialization(Module &M) {
   DataLayoutPass *DLP = getAnalysisIfAvailable<DataLayoutPass>();
   if (!DLP)
-    return false;
+    report_fatal_error("data layout missing");
   DL = &DLP->getDataLayout();
 
   Mod = &M;
index 5c9d6fd2c907dbd7c34fbc36ab3327f0cbcde897..f3a8bf7a3ad06c110de330bcc1fc11c6d10672f9 100644 (file)
@@ -427,7 +427,7 @@ void MemorySanitizer::initializeCallbacks(Module &M) {
 bool MemorySanitizer::doInitialization(Module &M) {
   DataLayoutPass *DLP = getAnalysisIfAvailable<DataLayoutPass>();
   if (!DLP)
-    return false;
+    report_fatal_error("data layout missing");
   DL = &DLP->getDataLayout();
 
   BL.reset(SpecialCaseList::createOrDie(BlacklistFile));
index ddc175b17599af56568426ed345e890c5e6fad2d..a2b24e54b473d0a302ca44b30d23e177bbf52667 100644 (file)
@@ -226,7 +226,7 @@ void ThreadSanitizer::initializeCallbacks(Module &M) {
 bool ThreadSanitizer::doInitialization(Module &M) {
   DataLayoutPass *DLP = getAnalysisIfAvailable<DataLayoutPass>();
   if (!DLP)
-    return false;
+    report_fatal_error("data layout missing");
   DL = &DLP->getDataLayout();
   BL.reset(SpecialCaseList::createOrDie(BlacklistFile));