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 | 4134073c4bd049226d9688b8ed3b985b3eb82f88 (patch) | |
| tree | 4a0971eea4384fff829a252d428c9d6c05e76b5d /clang/lib/Sema | |
| parent | f6b315c081de55043186816e1f479e647225dc8b (diff) | |
| download | bcm5719-llvm-4134073c4bd049226d9688b8ed3b985b3eb82f88.tar.gz bcm5719-llvm-4134073c4bd049226d9688b8ed3b985b3eb82f88.zip | |
Compute whether a class is trivial correctly for template classes with an explicitly deleted or defaulted special member. PR11387.
llvm-svn: 144715
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp index ec5ccd3f8a7..865d62e14b9 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/clang/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()) { |

