diff --git include/llvm/IR/LegacyPassNameParser.h include/llvm/IR/LegacyPassNameParser.h
index e2e4912..a07e3fd 100644
--- include/llvm/IR/LegacyPassNameParser.h
+++ include/llvm/IR/LegacyPassNameParser.h
@@ -95,6 +95,8 @@ private:
   }
 };
 
+EXTERN_TEMPLATE_INSTANTIATION(class cl::parser<const PassInfo *>);
+
 ///===----------------------------------------------------------------------===//
 /// FilteredPassNameParser class - Make use of the pass registration
 /// mechanism to automatically add a command line argument to opt for
diff --git lib/IR/Pass.cpp lib/IR/Pass.cpp
index 91d86ae..00ce223 100644
--- lib/IR/Pass.cpp
+++ lib/IR/Pass.cpp
@@ -234,6 +234,8 @@ PassNameParser::~PassNameParser() {
   // attempting to remove the registration listener is an error.
 }
 
+TEMPLATE_INSTANTIATION(class cl::parser<const PassInfo *>);
+
 //===----------------------------------------------------------------------===//
 //   AnalysisUsage Class Implementation
 //
