PR13470: Ensure that copy-list-initialization isntantiates as
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 19 Dec 2012 01:39:02 +0000 (01:39 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 19 Dec 2012 01:39:02 +0000 (01:39 +0000)
commitd59b8323203503ddef5f85ace351ab72d5f88398
tree3557c33b10ba6c6030a8288f083b053ccaae1b10
parent3a081a033926da9cdd68ccb8705ad882704f68b5
PR13470: Ensure that copy-list-initialization isntantiates as
copy-list-initialization (and doesn't add an additional copy step):

Fill in the ListInitialization bit when creating a CXXConstructExpr. Use it
when instantiating initializers in order to correctly handle instantiation of
copy-list-initialization. Teach TreeTransform that function arguments are
initializations, and so need this special treatment too. Finally, remove some
hacks which were working around SubstInitializer's shortcomings.

llvm-svn: 170489
14 files changed:
clang/include/clang/AST/ExprCXX.h
clang/include/clang/Sema/Sema.h
clang/lib/AST/ExprCXX.cpp
clang/lib/AST/StmtPrinter.cpp
clang/lib/Sema/SemaDeclCXX.cpp
clang/lib/Sema/SemaExprCXX.cpp
clang/lib/Sema/SemaInit.cpp
clang/lib/Sema/SemaTemplateInstantiate.cpp
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
clang/lib/Sema/TreeTransform.h
clang/lib/Serialization/ASTReaderStmt.cpp
clang/lib/Serialization/ASTWriterStmt.cpp
clang/test/Index/recursive-cxx-member-calls.cpp
clang/test/SemaCXX/cxx0x-initializer-constructor.cpp