From 5d243c2fa51490110bd105c1f5b6cfde9a3b8cc0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 26 Jun 2003 04:20:38 +0000 Subject: [PATCH] Don't register the destructors if the list is empty git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6909 91177308-0d34-0410-b5e6-96231b3b80d8 --- runtime/GCCLibraries/crtend/crtend.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/runtime/GCCLibraries/crtend/crtend.c b/runtime/GCCLibraries/crtend/crtend.c index 69eac4ff988..50bbdb70814 100644 --- a/runtime/GCCLibraries/crtend/crtend.c +++ b/runtime/GCCLibraries/crtend/crtend.c @@ -34,8 +34,12 @@ void __main(void) { /* Loop over all of the constructor records, calling each function pointer. */ TorRec *R = __llvm_getGlobalCtors(); - if (atexit(run_destructors)) - abort(); /* Should be able to install ONE atexit handler! */ + /* Only register the global dtor handler if there is at least one global + * dtor! + */ + if (__llvm_getGlobalDtors()[0].FP) + if (atexit(run_destructors)) + abort(); /* Should be able to install ONE atexit handler! */ /* FIXME: This should sort the list by priority! */ for (; R->FP; ++R) -- 2.34.1