diff options
| author | Alexis Hunt <alercah@gmail.com> | 2011-05-09 18:22:59 +0000 |
|---|---|---|
| committer | Alexis Hunt <alercah@gmail.com> | 2011-05-09 18:22:59 +0000 |
| commit | f479f1b7e4102072e3c6899b4f9c9122543ae880 (patch) | |
| tree | 0bb3531526d9896503bd0d62943d339ce01b39cb /clang/lib/AST/ASTContext.cpp | |
| parent | 5dc19f916c2ceeb301ed145c7fbcf5f99b7a85c7 (diff) | |
| download | bcm5719-llvm-f479f1b7e4102072e3c6899b4f9c9122543ae880.tar.gz bcm5719-llvm-f479f1b7e4102072e3c6899b4f9c9122543ae880.zip | |
Rename "hasTrivialConstructor" to "hasTrivialDefaultConstructor" and
modify the semantics slightly to accomodate default constructors (I
hope).
llvm-svn: 131087
Diffstat (limited to 'clang/lib/AST/ASTContext.cpp')
| -rw-r--r-- | clang/lib/AST/ASTContext.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 5271c90bb89..379c13a9342 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -6149,10 +6149,13 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) { // Structs that have non-trivial constructors or destructors are required. // FIXME: Handle references. + // FIXME: Be more selective about which constructors we care about. if (const RecordType *RT = VD->getType()->getAs<RecordType>()) { if (const CXXRecordDecl *RD = dyn_cast<CXXRecordDecl>(RT->getDecl())) { - if (RD->hasDefinition() && - (!RD->hasTrivialConstructor() || !RD->hasTrivialDestructor())) + if (RD->hasDefinition() && !(RD->hasTrivialDefaultConstructor() && + RD->hasTrivialCopyConstructor() && + RD->hasTrivialMoveConstructor() && + RD->hasTrivialDestructor())) return true; } } |

