MS ABI: Build C++ default argument exprs for exported template classes
This was an omission from r232229.
llvm-svn: 232554
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index 6417b87..b09d658 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -3411,8 +3411,11 @@
// Add the rest of the default arguments.
std::vector<Stmt *> ArgVec;
- for (unsigned I = IsCopy ? 1 : 0, E = CD->getNumParams(); I != E; ++I)
- ArgVec.push_back(getContext().getDefaultArgExprForConstructor(CD, I));
+ for (unsigned I = IsCopy ? 1 : 0, E = CD->getNumParams(); I != E; ++I) {
+ Stmt *DefaultArg = getContext().getDefaultArgExprForConstructor(CD, I);
+ assert(DefaultArg && "sema forgot to instantiate default args");
+ ArgVec.push_back(DefaultArg);
+ }
CodeGenFunction::RunCleanupsScope Cleanups(CGF);