diff options
author | Anders Carlsson <andersca@mac.com> | 2009-04-17 02:34:54 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-04-17 02:34:54 +0000 |
commit | 072abefcddea5fb65e435cea60921b3c21c1279d (patch) | |
tree | ccbbe619641b2fb59dd63d8bf4667eee5b349308 /lib/AST | |
parent | 27ae53665f8b00fe4ba21da0fa79a4ce6e0b6cd5 (diff) |
Add support for the __has_trivial_destructor type trait.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69345 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST')
-rw-r--r-- | lib/AST/DeclCXX.cpp | 2 | ||||
-rw-r--r-- | lib/AST/ExprCXX.cpp | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp index 78ed3fcf4d..a5d133c643 100644 --- a/lib/AST/DeclCXX.cpp +++ b/lib/AST/DeclCXX.cpp @@ -29,7 +29,7 @@ CXXRecordDecl::CXXRecordDecl(Kind K, TagKind TK, DeclContext *DC, UserDeclaredConstructor(false), UserDeclaredCopyConstructor(false), UserDeclaredCopyAssignment(false), UserDeclaredDestructor(false), Aggregate(true), PlainOldData(true), Polymorphic(false), Abstract(false), - HasTrivialConstructor(true), + HasTrivialConstructor(true), HasTrivialDestructor(true), Bases(0), NumBases(0), Conversions(DC, DeclarationName()), TemplateOrInstantiation() { } diff --git a/lib/AST/ExprCXX.cpp b/lib/AST/ExprCXX.cpp index 3634c20356..d73ea370cf 100644 --- a/lib/AST/ExprCXX.cpp +++ b/lib/AST/ExprCXX.cpp @@ -173,7 +173,11 @@ bool UnaryTypeTraitExpr::EvaluateTrait() const { case UTT_HasTrivialConstructor: if (const RecordType *RT = QueriedType->getAsRecordType()) return cast<CXXRecordDecl>(RT->getDecl())->hasTrivialConstructor(); - return false; + return false; + case UTT_HasTrivialDestructor: + if (const RecordType *RT = QueriedType->getAsRecordType()) + return cast<CXXRecordDecl>(RT->getDecl())->hasTrivialDestructor(); + return false; } } |