diff --git a/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h b/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h index 81c71fb5ef6..526851ba448 100644 --- a/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h +++ b/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h @@ -38,10 +38,16 @@ public: BasicBlock *getUnreachableBlock() const { return UnreachableBlock; } virtual bool runOnFunction(Function &F); + + // Force linking the impl of this class into anything that uses this header. + static int stub; }; Pass *createUnifyFunctionExitNodesPass(); +static IncludeFile +UNIFY_FUNCTION_EXIT_NODES_INCLUDE_FILE(&UnifyFunctionExitNodes::stub); + } // End llvm namespace #endif diff --git a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp index d3c7b328958..fa4e38660f8 100644 --- a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp +++ b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp @@ -25,6 +25,8 @@ using namespace llvm; static RegisterOpt X("mergereturn", "Unify function exit nodes"); +int UnifyFunctionExitNodes::stub; + Pass *llvm::createUnifyFunctionExitNodesPass() { return new UnifyFunctionExitNodes(); }