diff options
author | Serge Pavlov <sepavloff@gmail.com> | 2018-02-15 09:45:59 +0000 |
---|---|---|
committer | Serge Pavlov <sepavloff@gmail.com> | 2018-02-15 09:45:59 +0000 |
commit | 4500001905805be5437cfe21e9f65820202c8966 (patch) | |
tree | 93ba69588b99c6008de5d6306d91c0a9ddf0feae /llvm/lib/Support | |
parent | ce719a0def0054c03a9787ddb5a1e0235bbea103 (diff) | |
download | bcm5719-llvm-4500001905805be5437cfe21e9f65820202c8966.tar.gz bcm5719-llvm-4500001905805be5437cfe21e9f65820202c8966.zip |
Revert r325224 "Report fatal error in the case of out of memory"
It caused fails on some buildbots.
llvm-svn: 325227
Diffstat (limited to 'llvm/lib/Support')
-rw-r--r-- | llvm/lib/Support/ErrorHandling.cpp | 33 | ||||
-rw-r--r-- | llvm/lib/Support/FoldingSet.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Support/RWMutex.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Support/StringMap.cpp | 13 | ||||
-rw-r--r-- | llvm/lib/Support/Unix/Signals.inc | 2 | ||||
-rw-r--r-- | llvm/lib/Support/Windows/RWMutex.inc | 4 |
6 files changed, 13 insertions, 45 deletions
diff --git a/llvm/lib/Support/ErrorHandling.cpp b/llvm/lib/Support/ErrorHandling.cpp index cb14749cc42..fb8ae4c1cd5 100644 --- a/llvm/lib/Support/ErrorHandling.cpp +++ b/llvm/lib/Support/ErrorHandling.cpp @@ -175,39 +175,6 @@ void llvm::report_bad_alloc_error(const char *Reason, bool GenCrashDiag) { #endif } -#ifdef LLVM_ENABLE_EXCEPTIONS -// Do not set custom new handler if exceptions are enabled. In this case OOM -// errors are handled by throwing 'std::bad_alloc'. -void llvm::install_out_of_memory_new_handler() { -} -#else -// Causes crash on allocation failure. It is called prior to the handler set by -// 'install_bad_alloc_error_handler'. -static void out_of_memory_new_handler() { - llvm::report_bad_alloc_error("Allocation failed"); -} - -// Installs new handler that causes crash on allocation failure. It does not -// need to be called explicitly, if this file is linked to application, because -// in this case it is called during construction of 'new_handler_installer'. -void llvm::install_out_of_memory_new_handler() { - static bool out_of_memory_new_handler_installed = false; - if (!out_of_memory_new_handler_installed) { - std::set_new_handler(out_of_memory_new_handler); - out_of_memory_new_handler_installed = true; - } -} - -// Static object that causes installation of 'out_of_memory_new_handler' before -// execution of 'main'. -static class NewHandlerInstaller { -public: - NewHandlerInstaller() { - install_out_of_memory_new_handler(); - } -} new_handler_installer; -#endif - void llvm::llvm_unreachable_internal(const char *msg, const char *file, unsigned line) { // This code intentionally doesn't call the ErrorHandler callback, because diff --git a/llvm/lib/Support/FoldingSet.cpp b/llvm/lib/Support/FoldingSet.cpp index 7b1da136b9b..94237954903 100644 --- a/llvm/lib/Support/FoldingSet.cpp +++ b/llvm/lib/Support/FoldingSet.cpp @@ -214,8 +214,7 @@ static void **GetBucketFor(unsigned Hash, void **Buckets, unsigned NumBuckets) { /// AllocateBuckets - Allocated initialized bucket memory. static void **AllocateBuckets(unsigned NumBuckets) { - void **Buckets = static_cast<void**>( - llvm::calloc(NumBuckets+1, sizeof(void*))); + void **Buckets = static_cast<void**>(calloc(NumBuckets+1, sizeof(void*))); if (Buckets == nullptr) report_bad_alloc_error("Allocation of Buckets failed."); diff --git a/llvm/lib/Support/RWMutex.cpp b/llvm/lib/Support/RWMutex.cpp index 48866e336b5..83c6d1d52b4 100644 --- a/llvm/lib/Support/RWMutex.cpp +++ b/llvm/lib/Support/RWMutex.cpp @@ -11,7 +11,6 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Support/Allocator.h" #include "llvm/Support/RWMutex.h" #include "llvm/Config/config.h" @@ -50,7 +49,7 @@ RWMutexImpl::RWMutexImpl() { // Declare the pthread_rwlock data structures pthread_rwlock_t* rwlock = - static_cast<pthread_rwlock_t*>(llvm::malloc(sizeof(pthread_rwlock_t))); + static_cast<pthread_rwlock_t*>(malloc(sizeof(pthread_rwlock_t))); #ifdef __APPLE__ // Workaround a bug/mis-feature in Darwin's pthread_rwlock_init. diff --git a/llvm/lib/Support/StringMap.cpp b/llvm/lib/Support/StringMap.cpp index 4a985b06838..4341da2d97b 100644 --- a/llvm/lib/Support/StringMap.cpp +++ b/llvm/lib/Support/StringMap.cpp @@ -57,9 +57,10 @@ void StringMapImpl::init(unsigned InitSize) { NumItems = 0; NumTombstones = 0; - TheTable = static_cast<StringMapEntryBase **>( - std::calloc(NewNumBuckets+1, - sizeof(StringMapEntryBase **) + sizeof(unsigned))); + TheTable = (StringMapEntryBase **)calloc(NewNumBuckets+1, + sizeof(StringMapEntryBase **) + + sizeof(unsigned)); + if (TheTable == nullptr) report_bad_alloc_error("Allocation of StringMap table failed."); @@ -218,8 +219,10 @@ unsigned StringMapImpl::RehashTable(unsigned BucketNo) { unsigned NewBucketNo = BucketNo; // Allocate one extra bucket which will always be non-empty. This allows the // iterators to stop at end. - StringMapEntryBase **NewTableArray = static_cast<StringMapEntryBase **>( - std::calloc(NewSize+1, sizeof(StringMapEntryBase *) + sizeof(unsigned))); + StringMapEntryBase **NewTableArray = + (StringMapEntryBase **)calloc(NewSize+1, sizeof(StringMapEntryBase *) + + sizeof(unsigned)); + if (NewTableArray == nullptr) report_bad_alloc_error("Allocation of StringMap hash table failed."); diff --git a/llvm/lib/Support/Unix/Signals.inc b/llvm/lib/Support/Unix/Signals.inc index 12b84fa4861..aaf760c5b61 100644 --- a/llvm/lib/Support/Unix/Signals.inc +++ b/llvm/lib/Support/Unix/Signals.inc @@ -138,7 +138,7 @@ static void CreateSigAltStack() { return; stack_t AltStack = {}; - AltStack.ss_sp = static_cast<char *>(llvm::malloc(AltStackSize)); + AltStack.ss_sp = reinterpret_cast<char *>(malloc(AltStackSize)); NewAltStackPointer = AltStack.ss_sp; // Save to avoid reporting a leak. AltStack.ss_size = AltStackSize; if (sigaltstack(&AltStack, &OldAltStack) != 0) diff --git a/llvm/lib/Support/Windows/RWMutex.inc b/llvm/lib/Support/Windows/RWMutex.inc index 6f99f591322..ac60c2fc05b 100644 --- a/llvm/lib/Support/Windows/RWMutex.inc +++ b/llvm/lib/Support/Windows/RWMutex.inc @@ -74,10 +74,10 @@ static bool loadSRW() { sys::RWMutexImpl::RWMutexImpl() { if (loadSRW()) { - data_ = llvm::calloc(1, sizeof(SRWLOCK)); + data_ = calloc(1, sizeof(SRWLOCK)); fpInitializeSRWLock(static_cast<PSRWLOCK>(data_)); } else { - data_ = llvm::calloc(1, sizeof(CRITICAL_SECTION)); + data_ = calloc(1, sizeof(CRITICAL_SECTION)); InitializeCriticalSection(static_cast<LPCRITICAL_SECTION>(data_)); } } |