diff --git a/llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp b/llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp --- a/llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp +++ b/llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp @@ -13,6 +13,7 @@ #include "ReduceFunctionBodies.h" #include "Delta.h" +#include "llvm/IR/GlobalValue.h" using namespace llvm; @@ -26,8 +27,11 @@ // Delete out-of-chunk function bodies std::vector FuncDefsToReduce; for (auto &F : *Program) - if (!F.isDeclaration() && !O.shouldKeep()) + if (!F.isDeclaration() && !O.shouldKeep()) { F.deleteBody(); + F.setComdat(nullptr); + F.setLinkage(llvm::GlobalValue::ExternalLinkage); + } } /// Counts the amount of non-declaration functions and prints their