summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ASTContext.cpp
diff options
context:
space:
mode:
authorAlexis Hunt <alercah@gmail.com>2011-05-09 18:22:59 +0000
committerAlexis Hunt <alercah@gmail.com>2011-05-09 18:22:59 +0000
commitf479f1b7e4102072e3c6899b4f9c9122543ae880 (patch)
tree0bb3531526d9896503bd0d62943d339ce01b39cb /clang/lib/AST/ASTContext.cpp
parent5dc19f916c2ceeb301ed145c7fbcf5f99b7a85c7 (diff)
downloadbcm5719-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.cpp7
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;
}
}
OpenPOWER on IntegriCloud