]> granicus.if.org Git - clang/commit
Model temporary lifetime-extension explicitly in the AST. Use this model to
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 5 Jun 2013 00:46:14 +0000 (00:46 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 5 Jun 2013 00:46:14 +0000 (00:46 +0000)
commit211c8ddb5b500ed84833751363d0cfe1115f4dd3
tree5b0d083ceed44493f376a802f9406073a0bffe35
parent8c47432b747d51e40a1e23a99403e78c2c864bd1
Model temporary lifetime-extension explicitly in the AST. Use this model to
handle temporaries which have been lifetime-extended to static storage duration
within constant expressions. This correctly handles nested lifetime extension
(through reference members of aggregates in aggregate initializers) but
non-constant-expression emission hasn't yet been updated to do the same.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183283 91177308-0d34-0410-b5e6-96231b3b80d8
22 files changed:
include/clang/AST/ASTContext.h
include/clang/AST/Decl.h
include/clang/AST/ExprCXX.h
include/clang/AST/Stmt.h
include/clang/Basic/DiagnosticASTKinds.td
include/clang/Basic/Specifiers.h
include/clang/Sema/Initialization.h
lib/AST/ASTContext.cpp
lib/AST/ASTDumper.cpp
lib/AST/ExprConstant.cpp
lib/CodeGen/CGExprConstant.cpp
lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/CodeGenModule.h
lib/Sema/SemaExpr.cpp
lib/Sema/SemaInit.cpp
lib/Serialization/ASTReaderStmt.cpp
lib/Serialization/ASTWriterStmt.cpp
test/CodeGenCXX/const-init-cxx11.cpp
test/CodeGenCXX/const-init-cxx1y.cpp
test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
test/SemaCXX/constant-expression-cxx11.cpp
test/SemaCXX/constant-expression-cxx1y.cpp