diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-11-15 22:39:08 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-11-15 22:39:08 +0000 |
commit | 3bc451593fa44bfc45753e44e37cb4242e714f82 (patch) | |
tree | 2d71a64b8832a6d3dc95d8dd08991578fd8596d3 /lib/Sema/SemaTemplateInstantiateDecl.cpp | |
parent | b8691df825c99b0fc989fcd92a008d2500ff2e37 (diff) |
Compute whether a class is trivial correctly for template classes with an explicitly deleted or defaulted special member. PR11387.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144715 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaTemplateInstantiateDecl.cpp')
-rw-r--r-- | lib/Sema/SemaTemplateInstantiateDecl.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index ec5ccd3f8a..865d62e14b 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -1526,6 +1526,12 @@ TemplateDeclInstantiator::VisitCXXMethodDecl(CXXMethodDecl *D, SemaRef.CheckOverrideControl(Method); + // If a function is defined as defaulted or deleted, mark it as such now. + if (D->isDefaulted()) + Method->setDefaulted(); + if (D->isDeletedAsWritten()) + Method->setDeletedAsWritten(); + if (FunctionTemplate) { // If there's a function template, let our caller handle it. } else if (Method->isInvalidDecl() && !Previous.empty()) { |