A step towards sorting out handling of triviality of special members in C++11.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 16 Nov 2012 00:53:38 +0000 (00:53 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 16 Nov 2012 00:53:38 +0000 (00:53 +0000)
commit1648847248699a6a3fd1ff29dc19834ae1d9299b
tree5269f184672d67d63dac0f8c02a9faae860d1519
parent28b907dcfab6bc672e942117e291b41057566ee0
A step towards sorting out handling of triviality of special members in C++11.

Separate out the notions of 'has a trivial special member' and 'has a
non-trivial special member', and use them appropriately. These are not
opposites of one another (there might be no special member, or in C++11 there
might be a trivial one and a non-trivial one). The CXXRecordDecl predicates
continue to produce incorrect results, but do so in fewer cases now, and
they document the cases where they might be wrong.

No functionality changes are intended here (they will come when the predicates
start producing the right answers...).

llvm-svn: 168119
clang/include/clang/AST/DeclCXX.h
clang/lib/AST/DeclCXX.cpp
clang/lib/AST/Type.cpp
clang/lib/CodeGen/CGBlocks.cpp
clang/lib/CodeGen/CGDebugInfo.cpp
clang/lib/CodeGen/CGExprAgg.cpp
clang/lib/CodeGen/TargetInfo.cpp
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaDeclCXX.cpp
clang/lib/Sema/SemaExpr.cpp