From 927da43ade12fffc8077c248e0243711071b2094 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Fri, 21 Aug 2020 04:25:57 +0000 Subject: [PATCH] Allow multiple calls to InitLLVM() (NFC) In e99dee82b0, the "out_of_memory_new_handler" was changed to be explicitly initialized instead of relying on a global static constructor. However before this change, install_out_of_memory_new_handler could be called multiple times while it asserts right now. We can be more tolerant to calling multiple time InitLLVM without reintroducing a global constructor for this handler. Differential Revision: https://reviews.llvm.org/D86330 --- llvm/lib/Support/ErrorHandling.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Support/ErrorHandling.cpp b/llvm/lib/Support/ErrorHandling.cpp index f70a6921a41a..e962657730fe 100644 --- a/llvm/lib/Support/ErrorHandling.cpp +++ b/llvm/lib/Support/ErrorHandling.cpp @@ -192,7 +192,8 @@ static void out_of_memory_new_handler() { void llvm::install_out_of_memory_new_handler() { std::new_handler old = std::set_new_handler(out_of_memory_new_handler); (void)old; - assert(old == nullptr && "new-handler already installed"); + assert((old == nullptr || old == out_of_memory_new_handler) && + "new-handler already installed"); } #endif