diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-05-17 18:52:50 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-05-17 18:52:50 +0000 |
commit | 424aa2e72ee59d51914201ce184b585410e1a5fa (patch) | |
tree | c26a7cc35f31d43371dc2b9fdd659d318f801878 /include | |
parent | f081e973301d3ddc1e39b146a0e3710180f2890c (diff) |
Merging r182072:
------------------------------------------------------------------------
r182072 | rsmith | 2013-05-16 19:19:35 -0700 (Thu, 16 May 2013) | 6 lines
PR15757: When we instantiate an inheriting constructor template, also
instantiate the inherited constructor template and mark that as the constructor
which the instantiated specialization is inheriting. This fixes a
crash-on-valid when trying to compute the exception specification of a
specialization of the inheriting constructor.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_33@182150 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/Sema/Template.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/include/clang/Sema/Template.h b/include/clang/Sema/Template.h index 6e054c463a..f9481c6c0c 100644 --- a/include/clang/Sema/Template.h +++ b/include/clang/Sema/Template.h @@ -94,17 +94,23 @@ namespace clang { /// \brief Add a new outermost level to the multi-level template argument /// list. void addOuterTemplateArguments(const TemplateArgumentList *TemplateArgs) { - TemplateArgumentLists.push_back(ArgList(TemplateArgs->data(), - TemplateArgs->size())); + addOuterTemplateArguments(ArgList(TemplateArgs->data(), + TemplateArgs->size())); } /// \brief Add a new outmost level to the multi-level template argument /// list. void addOuterTemplateArguments(const TemplateArgument *Args, unsigned NumArgs) { - TemplateArgumentLists.push_back(ArgList(Args, NumArgs)); + addOuterTemplateArguments(ArgList(Args, NumArgs)); } - + + /// \brief Add a new outmost level to the multi-level template argument + /// list. + void addOuterTemplateArguments(ArgList Args) { + TemplateArgumentLists.push_back(Args); + } + /// \brief Retrieve the innermost template argument list. const ArgList &getInnermost() const { return TemplateArgumentLists.front(); |