diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-03-17 21:51:43 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-03-17 21:51:43 +0000 |
commit | 93f661a1dadcdf8ab8af08661d6ea325a6da8ce0 (patch) | |
tree | bcdaf8bbf70c59b3b26993bcec8329290ab309f9 /clang/lib/CodeGen | |
parent | ae14e7bf998aefc1cdf2b22397839060bf736cc0 (diff) | |
download | bcm5719-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.cpp | 7 |
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); |