]> granicus.if.org Git - clang/commit
one piece of code is responsible for the lifetime of every aggregate
authorJohn McCall <rjmccall@apple.com>
Wed, 15 Sep 2010 10:14:12 +0000 (10:14 +0000)
committerJohn McCall <rjmccall@apple.com>
Wed, 15 Sep 2010 10:14:12 +0000 (10:14 +0000)
commit558d2abc7f9fd6801cc7677200992313ae90b5d8
tree7624495cd37a259daceff9065f500f9522cbd775
parent8f3b834471b158d65d490e3458fa16ba659ec105
one piece of code is responsible for the lifetime of every aggregate
slot.  The easiest way to do that was to bundle up the information
we care about for aggregate slots into a new structure which demands
that its creators at least consider the question.

I could probably be convinced that the ObjC 'needs GC' bit should
be rolled into this structure.
Implement generalized copy elision.  The main obstacle here is that
IR-generation must be much more careful about making sure that exactly

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113962 91177308-0d34-0410-b5e6-96231b3b80d8
20 files changed:
include/clang/AST/Expr.h
lib/AST/Expr.cpp
lib/CodeGen/CGBlocks.cpp
lib/CodeGen/CGClass.cpp
lib/CodeGen/CGDecl.cpp
lib/CodeGen/CGDeclCXX.cpp
lib/CodeGen/CGException.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGExprAgg.cpp
lib/CodeGen/CGExprCXX.cpp
lib/CodeGen/CGExprScalar.cpp
lib/CodeGen/CGObjC.cpp
lib/CodeGen/CGStmt.cpp
lib/CodeGen/CGTemporaries.cpp
lib/CodeGen/CGValue.h
lib/CodeGen/CodeGenFunction.h
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaInit.cpp
test/CodeGenCXX/temporaries.cpp
test/SemaCXX/warn-global-constructors.cpp