summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/StmtPrinter.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-04-23 10:47:28 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-04-23 10:47:28 +0000
commita3e1f9a02c6aeecb97009d5786713163f46cedce (patch)
tree1e2e67c6ec8f271b75b5600a36817a2ac8987eee /clang/lib/AST/StmtPrinter.cpp
parent7980348fcf3a0f1da7352728493f00ff78852afb (diff)
downloadbcm5719-llvm-a3e1f9a02c6aeecb97009d5786713163f46cedce.tar.gz
bcm5719-llvm-a3e1f9a02c6aeecb97009d5786713163f46cedce.zip
Implement basic __is_trivial type-trait support, enough to close PR9472.
This introduces a few APIs on the AST to bundle up the standard-based logic so that programmatic clients have access to exactly the same behavior. There is only one serious FIXME here: checking for non-trivial move constructors and move assignment operators. Those bits need to be added to the declaration and accessors provided. This implementation should be enough for the uses of __is_trivial in libstdc++ 4.6's C++98 library implementation. Ideas for more thorough test cases or any edge cases missing would be appreciated. =D llvm-svn: 130057
Diffstat (limited to 'clang/lib/AST/StmtPrinter.cpp')
-rw-r--r--clang/lib/AST/StmtPrinter.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp
index 89631261dcc..3591c32ad82 100644
--- a/clang/lib/AST/StmtPrinter.cpp
+++ b/clang/lib/AST/StmtPrinter.cpp
@@ -1266,6 +1266,7 @@ static const char *getTypeTraitName(UnaryTypeTrait UTT) {
case UTT_IsEnum: return "__is_enum";
case UTT_IsPOD: return "__is_pod";
case UTT_IsPolymorphic: return "__is_polymorphic";
+ case UTT_IsTrivial: return "__is_trivial";
case UTT_IsUnion: return "__is_union";
}
return "";
OpenPOWER on IntegriCloud