Don't reinsert the 'atexit' function if it already exists.
authorBill Wendling <isanbard@gmail.com>
Sat, 30 Jun 2012 20:21:19 +0000 (20:21 +0000)
committerBill Wendling <isanbard@gmail.com>
Sat, 30 Jun 2012 20:21:19 +0000 (20:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159491 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Instrumentation/GCOVProfiling.cpp

index dda92b18825cb7e1c7a790a23a5086dd2a314358..264a6a6153614c497d42790ad8462607ac8c13d1 100644 (file)
@@ -687,8 +687,7 @@ void GCOVProfiler::insertCounterWriteout(
 
   FTy = FunctionType::get(Type::getInt32Ty(*Ctx),
                           PointerType::get(FTy, 0), false);
-  Function *AtExitFn =
-    Function::Create(FTy, GlobalValue::ExternalLinkage, "atexit", M);
+  Constant *AtExitFn = M->getOrInsertFunction("atexit", FTy);
   Builder.CreateCall(AtExitFn, WriteoutF);
   Builder.CreateRetVoid();