From a13d14a1290bc2c8b2e25a51ec4ae4e9bc8cd215 Mon Sep 17 00:00:00 2001 From: NAKAMURA Takumi Date: Fri, 22 Oct 2010 14:53:59 +0000 Subject: [PATCH] lli: On Cygwin-1.5, lli crashes at invoking destructors in atexit handler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117095 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/lli/lli.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/lli/lli.cpp b/tools/lli/lli.cpp index 4c377805e6a..adc6e90eb99 100644 --- a/tools/lli/lli.cpp +++ b/tools/lli/lli.cpp @@ -33,6 +33,14 @@ #include "llvm/System/Signals.h" #include "llvm/Target/TargetSelect.h" #include + +#ifdef __CYGWIN__ +#include +#if defined(CYGWIN_VERSION_DLL_MAJOR) && CYGWIN_VERSION_DLL_MAJOR<1007 +#define DO_NOTHING_ATEXIT 1 +#endif +#endif + using namespace llvm; namespace { @@ -99,8 +107,11 @@ namespace { static ExecutionEngine *EE = 0; static void do_shutdown() { + // Cygwin-1.5 invokes DLL's dtors before atexit handler. +#ifndef DO_NOTHING_ATEXIT delete EE; llvm_shutdown(); +#endif } //===----------------------------------------------------------------------===//