diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-04-16 00:08:20 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-04-16 00:08:20 +0000 |
| commit | fe63dc52f9f8f4a39222a541670d4aff326c45ad (patch) | |
| tree | 94fa3f48fec002d032ed66395bf7df084adca814 /clang/lib/AST/DeclCXX.cpp | |
| parent | a3c5590ec21c6c872ee366e4d2d6058607d5bfdc (diff) | |
| download | bcm5719-llvm-fe63dc52f9f8f4a39222a541670d4aff326c45ad.tar.gz bcm5719-llvm-fe63dc52f9f8f4a39222a541670d4aff326c45ad.zip | |
Add support for the __has_trivial_constructor type trait.
llvm-svn: 69245
Diffstat (limited to 'clang/lib/AST/DeclCXX.cpp')
| -rw-r--r-- | clang/lib/AST/DeclCXX.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp index ffc35fe1f74..78ed3fcf4d7 100644 --- a/clang/lib/AST/DeclCXX.cpp +++ b/clang/lib/AST/DeclCXX.cpp @@ -29,6 +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), Bases(0), NumBases(0), Conversions(DC, DeclarationName()), TemplateOrInstantiation() { } @@ -138,6 +139,11 @@ CXXRecordDecl::addedConstructor(ASTContext &Context, // A POD-struct is an aggregate class [...] PlainOldData = false; + // C++ [class.ctor]p5: + // A constructor is trivial if it is an implicitly-declared default + // constructor. + HasTrivialConstructor = false; + // Note when we have a user-declared copy constructor, which will // suppress the implicit declaration of a copy constructor. if (ConDecl->isCopyConstructor(Context)) |

