summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2015-03-17 21:51:43 +0000
committerReid Kleckner <reid@kleckner.net>2015-03-17 21:51:43 +0000
commit93f661a1dadcdf8ab8af08661d6ea325a6da8ce0 (patch)
treebcdaf8bbf70c59b3b26993bcec8329290ab309f9 /clang/lib/CodeGen
parentae14e7bf998aefc1cdf2b22397839060bf736cc0 (diff)
downloadbcm5719-llvm-93f661a1dadcdf8ab8af08661d6ea325a6da8ce0.tar.gz
bcm5719-llvm-93f661a1dadcdf8ab8af08661d6ea325a6da8ce0.zip
MS ABI: Build C++ default argument exprs for exported template classes
This was an omission from r232229. llvm-svn: 232554
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/MicrosoftCXXABI.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index 6417b87444d..b09d658c820 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -3411,8 +3411,11 @@ MicrosoftCXXABI::getAddrOfCXXCtorClosure(const CXXConstructorDecl *CD,
// 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);
OpenPOWER on IntegriCloud