llvm-project/clang/lib/Serialization
Richard Smith cc1b96d356 PR12086, PR15117
Introduce CXXStdInitializerListExpr node, representing the implicit
construction of a std::initializer_list<T> object from its underlying array.
The AST representation of such an expression goes from an InitListExpr with a
flag set, to a CXXStdInitializerListExpr containing a MaterializeTemporaryExpr
containing an InitListExpr (possibly wrapped in a CXXBindTemporaryExpr).

This more detailed representation has several advantages, the most important of
which is that the new MaterializeTemporaryExpr allows us to directly model
lifetime extension of the underlying temporary array. Using that, this patch
*drastically* simplifies the IR generation of this construct, provides IR
generation support for nested global initializer_list objects, fixes several
bugs where the destructors for the underlying array would accidentally not get
invoked, and provides constant expression evaluation support for
std::initializer_list objects.

llvm-svn: 183872
2013-06-12 22:31:48 +00:00
..
ASTCommon.cpp Sema for Captured Statements 2013-04-16 19:37:38 +00:00
ASTCommon.h C++1y deduced return types: when we deduce a return type for a function which 2013-05-11 05:45:24 +00:00
ASTReader.cpp Loosen r178109 even further, to assume that all redefined macros in system headers and system modules are equivalent. 2013-06-07 22:56:11 +00:00
ASTReaderDecl.cpp Fix linkage computation for derived types in inline functions. 2013-05-25 17:16:20 +00:00
ASTReaderInternals.h Enhance the ObjC global method pool to record whether there were 0, 1, or >= 2 methods (with a particular selector) inside categories. 2013-04-17 00:08:58 +00:00
ASTReaderStmt.cpp PR12086, PR15117 2013-06-12 22:31:48 +00:00
ASTWriter.cpp PR12086, PR15117 2013-06-12 22:31:48 +00:00
ASTWriterDecl.cpp Fix linkage computation for derived types in inline functions. 2013-05-25 17:16:20 +00:00
ASTWriterStmt.cpp PR12086, PR15117 2013-06-12 22:31:48 +00:00
CMakeLists.txt Implement the writer side of the global module index. 2013-01-23 22:38:11 +00:00
GeneratePCH.cpp [libclang] Allow building a precompiled preamble with compiler errors 2013-06-11 00:36:55 +00:00
GlobalModuleIndex.cpp Include Path.h instead of PathV2.h. 2013-06-11 22:15:02 +00:00
Makefile Reintroduce the serialization library, with fixed dependencies. 2010-08-17 20:43:28 +00:00
Module.cpp [PCH] We don't need to instantiate HeaderFileInfoTrait in ASTReader more than once. 2013-03-06 18:12:44 +00:00
ModuleManager.cpp Include Path.h instead of PathV2.h. 2013-06-11 22:15:02 +00:00