diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 3e146215f487..dd46f91d743a 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -72,6 +72,12 @@ void CodeGenModule::BindRuntimeFunctions() { llvm::Function *Fn = RuntimeFunctions[i].first; const std::string &Name = RuntimeFunctions[i].second; + // Discard unused runtime functions. + if (Fn->use_empty()) { + Fn->eraseFromParent(); + continue; + } + // See if there is a conflict against a function. llvm::Function *Conflict = TheModule.getFunction(Name); if (Conflict) {