]> granicus.if.org Git - clang/commit
PODness and Type Traits
authorSebastian Redl <sebastian.redl@getdesigned.at>
Mon, 5 Jan 2009 20:52:13 +0000 (20:52 +0000)
committerSebastian Redl <sebastian.redl@getdesigned.at>
Mon, 5 Jan 2009 20:52:13 +0000 (20:52 +0000)
commit64b45f7e0d3167f040841ac2920aead7f080730d
tree0b003e97e87dbd53cce77cf6476cd72427fa6d6c
parenta5677511d14bbe6181de423fb5f3cafacbdbe87c
PODness and Type Traits

Make C++ classes track the POD property (C++ [class]p4)
Track the existence of a copy assignment operator.
Implicitly declare the copy assignment operator if none is provided.
Implement most of the parsing job for the G++ type traits extension.
Fully implement the low-hanging fruit of the type traits:
__is_pod: Whether a type is a POD.
__is_class: Whether a type is a (non-union) class.
__is_union: Whether a type is a union.
__is_enum: Whether a type is an enum.
__is_polymorphic: Whether a type is polymorphic (C++ [class.virtual]p1).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61746 91177308-0d34-0410-b5e6-96231b3b80d8
22 files changed:
include/clang/AST/DeclCXX.h
include/clang/AST/ExprCXX.h
include/clang/AST/StmtNodes.def
include/clang/AST/Type.h
include/clang/Basic/TokenKinds.def
include/clang/Basic/TypeTraits.h [new file with mode: 0644]
include/clang/Parse/Action.h
include/clang/Parse/Parser.h
lib/AST/DeclCXX.cpp
lib/AST/Expr.cpp
lib/AST/ExprCXX.cpp
lib/AST/ExprConstant.cpp
lib/AST/StmtPrinter.cpp
lib/AST/StmtSerialization.cpp
lib/AST/Type.cpp
lib/Parse/ParseExpr.cpp
lib/Parse/ParseExprCXX.cpp
lib/Sema/Sema.h
lib/Sema/SemaDecl.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExprCXX.cpp
test/SemaCXX/type-traits.cpp [new file with mode: 0644]