llvm-project/clang/tools/libclang
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
..
ARCMigrate.cpp libclang: introduce cxstring::{createRef,createDup} for StringRefs 2013-02-02 02:19:29 +00:00
CIndex.cpp [libclang] When annotating tokens, don't override a property annotation with a getter/setter method annotation. 2013-06-04 18:24:30 +00:00
CIndexCXX.cpp [libclang] Have clang_getCXXAccessSpecifier() also return the access control of a C++ declaration within its parent scope. 2013-04-11 17:02:10 +00:00
CIndexCodeCompletion.cpp libclang: reduce CXString abuse 2013-02-07 19:09:22 +00:00
CIndexDiagnostic.cpp libclang: remove 'using namespace cxstring' 2013-02-03 13:52:47 +00:00
CIndexDiagnostic.h Implement clang_getDiagnosticCategoryText() to provide a way for a client of libclang to accurately 2012-04-12 00:03:31 +00:00
CIndexHigh.cpp [libclang] Change clang_findReferencesInFile and clang_findIncludesInFile to return an enum, 2013-03-08 22:47:41 +00:00
CIndexInclusionStack.cpp libclang: factor out the frequent pattern static_cast<ASTUnit *>(TU->TUData) 2013-01-26 18:53:38 +00:00
CIndexUSRs.cpp Provide operator<< for stream output of DeclarationNames 2013-05-14 21:04:00 +00:00
CIndexer.cpp Sort #include lines for tools/... 2012-12-04 09:25:21 +00:00
CIndexer.h Include PathV1.h in files that use it. 2013-06-11 19:59:07 +00:00
CLog.h [libclang] Add Logger::operator<< overloads for CXCursor and FileEntry. 2013-03-08 02:32:26 +00:00
CMakeLists.txt [libclang] CMake: add an option to control building libclang as a static library (off by default) 2013-06-06 19:51:37 +00:00
CXComment.cpp doxygen command. Add 'attention' command to list of similar 2013-02-26 22:12:16 +00:00
CXComment.h libclang: factor out the frequent pattern static_cast<ASTUnit *>(TU->TUData) 2013-01-26 18:53:38 +00:00
CXCompilationDatabase.cpp libclang: remove 'using namespace cxstring' 2013-02-03 13:52:47 +00:00
CXCursor.cpp PR12086, PR15117 2013-06-12 22:31:48 +00:00
CXCursor.h libclang: make getCursorParentDecl() return 'const Decl *' 2013-01-26 18:12:08 +00:00
CXLoadedDiagnostic.cpp Fix typos: [Dd]iagnosic -> [Dd]iagnostic 2013-03-01 21:41:22 +00:00
CXLoadedDiagnostic.h libclang: don't store nul-terminated strings as StringRefs, 2013-02-18 19:50:38 +00:00
CXSourceLocation.cpp [libclang] Introduce clang_Location_isInSystemHeader to check if a location resides in a system header. 2013-04-12 17:06:51 +00:00
CXSourceLocation.h [libclang] Add some constness in CXSourceLocation and CXSourceRange. 2013-01-11 22:29:47 +00:00
CXStoredDiagnostic.cpp libclang: remove 'using namespace cxstring' 2013-02-03 13:52:47 +00:00
CXString.cpp libclang: wrap CXString implementation into 'namespace cxstring' 2013-02-03 13:54:26 +00:00
CXString.h libclang: introduce cxstring::{createRef,createDup} for StringRefs 2013-02-02 02:19:29 +00:00
CXTranslationUnit.h [libclang] In cxtu::getASTUnit(), check for a null CXTranslationUnit. 2013-04-09 20:03:03 +00:00
CXType.cpp [libclang] Report parameter array types as written in source, not decayed to pointer types. 2013-04-18 16:41:15 +00:00
CXType.h Change CXTranslationUnit to not directly cast to an ASTUnit*, 2010-11-16 08:15:36 +00:00
CursorVisitor.h [libclang] Modify clang_findReferencesInFile and clang_findIncludesInFile to return a value. 2013-03-08 20:42:33 +00:00
IndexBody.cpp First pass of semantic analysis for init-captures: check the initializer, build 2013-05-16 06:20:58 +00:00
IndexDecl.cpp [libclang] When indexing a @synthesize, don't consider that it defines a getter/setter if one is already defined by the user. 2013-05-29 23:58:31 +00:00
IndexTypeSourceInfo.cpp Sort #include lines for tools/... 2012-12-04 09:25:21 +00:00
Index_Internal.h [libclang] Move CursorVisitor to its own header. 2011-11-03 19:02:34 +00:00
Indexing.cpp Remove DiagnosticConsumer::clone(), a bad idea that is now unused. 2013-05-03 23:07:45 +00:00
IndexingContext.cpp Fix linkage computation for derived types in inline functions. 2013-05-25 17:16:20 +00:00
IndexingContext.h Basic support for Microsoft property declarations and 2013-04-16 07:28:30 +00:00
Makefile Remove redundant flag. 2013-05-02 22:53:00 +00:00
RecursiveASTVisitor.h PR12086, PR15117 2013-06-12 22:31:48 +00:00
SimpleFormatContext.h Remove useless 'llvm::' qualifier from names like StringRef and others that are 2013-01-12 19:30:44 +00:00
libclang.exports libclang: add a function to check whether a member function is pure virtual 2013-05-17 18:38:35 +00:00