]> granicus.if.org Git - clang/commit
Do not use CXXZeroValueInitExpr for class types. Instead, use
authorDouglas Gregor <dgregor@apple.com>
Wed, 7 Jul 2010 22:35:13 +0000 (22:35 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 7 Jul 2010 22:35:13 +0000 (22:35 +0000)
commit63ef464c3fad1e8b9f9360baa6c81f974b712e90
tree3809b571133d9e4388993f282855661001978e9d
parent3e31552aed7c6e9c915bbc8d457ec84bb4a8d7e9
Do not use CXXZeroValueInitExpr for class types. Instead, use
CXXConstructExpr/CXXTemporaryObjectExpr/CXXNewExpr as
appropriate. Fixes PR7556, and provides a slide codegen improvement
when copy-initializing a POD class type from a value-initialized
temporary. Previously, we weren't eliding the copy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107827 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/ExprCXX.h
include/clang/Basic/DiagnosticSemaKinds.td
lib/CodeGen/CGExprCXX.cpp
lib/Sema/SemaExprCXX.cpp
lib/Sema/SemaInit.cpp
lib/Sema/SemaStmt.cpp
test/CXX/class.access/p4.cpp
test/CodeGenCXX/default-arg-temps.cpp
test/CodeGenCXX/temporaries.cpp
test/SemaCXX/warn-unused-variables.cpp