llvm-project/clang/lib/Sema
Richard Smith 410306bf6e Add two new AST nodes to represent initialization of an array in terms of
initialization of each array element:

 * ArrayInitLoopExpr is a prvalue of array type with two subexpressions:
   a common expression (an OpaqueValueExpr) that represents the up-front
   computation of the source of the initialization, and a subexpression
   representing a per-element initializer
 * ArrayInitIndexExpr is a prvalue of type size_t representing the current
   position in the loop

This will be used to replace the creation of explicit index variables in lambda
capture of arrays and copy/move construction of classes with array elements,
and also C++17 structured bindings of arrays by value (which inexplicably allow
copying an array by value, unlike all of C++'s other array declarations).

No uses of these nodes are introduced by this change, however.

llvm-svn: 289413
2016-12-12 02:53:20 +00:00
..
AnalysisBasedWarnings.cpp [coroutines] Build fallthrough and set_exception statements. 2016-10-27 07:30:31 +00:00
AttributeList.cpp Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 14:27:22 +00:00
CMakeLists.txt It seems we need to add SemaExpr.cpp to the /bigobj list; I am getting consistent failures of hitting the section count limit. 2016-06-01 15:17:54 +00:00
CodeCompleteConsumer.cpp Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 14:27:22 +00:00
DeclSpec.cpp Store decls in prototypes on the declarator instead of in the AST 2016-12-09 17:14:05 +00:00
DelayedDiagnostic.cpp [Sema] Delay partial availability diagnostics, just like deprecated 2016-10-28 21:39:27 +00:00
IdentifierResolver.cpp [modules] Separately track whether an identifier's preprocessor information and 2016-02-05 19:03:40 +00:00
JumpDiagnostics.cpp [Sema] Handle CaseStmt and DefaultStmt as SwitchCase 2016-10-26 02:00:00 +00:00
MultiplexExternalSemaSource.cpp [Sema] Use unique_ptr instead of raw pointers in the late-parsed templates map. 2016-10-10 16:26:08 +00:00
Scope.cpp [Parser] Clear the TemplateParamScope bit of the current scope's flag 2016-04-29 02:24:14 +00:00
ScopeInfo.cpp [Sema][NFC] Reset HasFallthroughStmt when clearing FunctionScopeInfo 2016-11-09 22:52:23 +00:00
Sema.cpp DR1213: element access on an array xvalue or prvalue produces an xvalue. In the 2016-12-05 07:49:14 +00:00
SemaAccess.cpp P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991: 2016-06-28 19:03:57 +00:00
SemaAttr.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
SemaCUDA.cpp [CUDA] Ignore implicit target attributes during function template instantiation. 2016-12-08 19:38:13 +00:00
SemaCXXScopeSpec.cpp [ObjC++] Don't enter a C++ declarator scope when the current context is 2016-12-07 10:24:44 +00:00
SemaCast.cpp DR1295 and cleanup for P0135R1: Make our initialization code more directly 2016-12-09 18:49:13 +00:00
SemaChecking.cpp Clean up some Sema checking code. NFC 2016-12-06 01:42:28 +00:00
SemaCodeComplete.cpp [CodeCompletion][ObjC] Use a parameterized NSSet return type for 2016-12-08 16:49:05 +00:00
SemaConsumer.cpp
SemaCoroutine.cpp [coroutines] Add diagnostics for copy/move assignment operators and functions with deduced return types. 2016-10-27 18:43:28 +00:00
SemaDecl.cpp [c++17] P0490R0, NB comment FI 20: allow direct-initialization of decomposition declarations. 2016-12-09 22:56:20 +00:00
SemaDeclAttr.cpp [Sema] Range-ify for loop, add period to comment. NFC. 2016-11-10 21:47:12 +00:00
SemaDeclCXX.cpp [c++1z] P0490R0, NB comment GB 20: if std::tuple_size<T> is complete, use the 2016-12-08 03:24:55 +00:00
SemaDeclObjC.cpp Mass-rename the handful of error_* diagnostics to err_*. 2016-12-02 22:38:31 +00:00
SemaExceptionSpec.cpp Add two new AST nodes to represent initialization of an array in terms of 2016-12-12 02:53:20 +00:00
SemaExpr.cpp DR1213: element access on an array xvalue or prvalue produces an xvalue. In the 2016-12-05 07:49:14 +00:00
SemaExprCXX.cpp DR1295 and cleanup for P0135R1: Make our initialization code more directly 2016-12-09 18:49:13 +00:00
SemaExprMember.cpp DR616, and part of P0135R1: member access (or pointer-to-member access) on a 2016-12-03 01:14:32 +00:00
SemaExprObjC.cpp More diagnostic name fixups: w_ -> warn_, warning_ -> warn_, not_ -> note_. 2016-12-02 23:00:28 +00:00
SemaFixItUtils.cpp Wire a SourceLocation into IsDerivedFrom and move the RequireCompleteType call 2015-12-18 21:45:41 +00:00
SemaInit.cpp Add two new AST nodes to represent initialization of an array in terms of 2016-12-12 02:53:20 +00:00
SemaLambda.cpp [OPENMP] Fix for PR30632: Name mangling issue. 2016-11-15 13:15:20 +00:00
SemaLookup.cpp [Frontend] Allow attaching an external sema source to compiler instance and extra diags to TypoCorrections 2016-11-16 18:15:26 +00:00
SemaObjCProperty.cpp Mass-rename the handful of error_* diagnostics to err_*. 2016-12-02 22:38:31 +00:00
SemaOpenMP.cpp [OpenMP] Sema and parsing for 'teams distribute parallel for' pragma 2016-12-09 03:24:30 +00:00
SemaOverload.cpp DR1295 and cleanup for P0135R1: Make our initialization code more directly 2016-12-09 18:49:13 +00:00
SemaPseudoObject.cpp More diagnostic name fixups: w_ -> warn_, warning_ -> warn_, not_ -> note_. 2016-12-02 23:00:28 +00:00
SemaStmt.cpp [Sema] Avoid "case value not in enumerated type" warning for C++11 opaque enums 2016-12-08 14:46:05 +00:00
SemaStmtAsm.cpp Address review feedback by adding comments about ${:uid} 2016-12-07 00:17:18 +00:00
SemaStmtAttr.cpp Add loop pragma for Loop Distribution 2016-06-14 12:04:26 +00:00
SemaTemplate.cpp Improve error message when referencing a non-tag type with a tag 2016-12-09 19:47:58 +00:00
SemaTemplateDeduction.cpp PR31081: ignore exception specifications when deducing function template 2016-12-01 02:11:49 +00:00
SemaTemplateInstantiate.cpp Make diagnostic for use of default member initializer before enclosing class is 2016-11-22 22:55:12 +00:00
SemaTemplateInstantiateDecl.cpp [Sema] Set range end of constructors and destructors in template instantiations 2016-11-28 11:11:34 +00:00
SemaTemplateVariadic.cpp Store decls in prototypes on the declarator instead of in the AST 2016-12-09 17:14:05 +00:00
SemaType.cpp Store decls in prototypes on the declarator instead of in the AST 2016-12-09 17:14:05 +00:00
TreeTransform.h Add two new AST nodes to represent initialization of an array in terms of 2016-12-12 02:53:20 +00:00
TypeLocBuilder.cpp [Sema] Fix bug in TypeLocBuilder::pushImpl 2016-02-18 21:05:09 +00:00
TypeLocBuilder.h Retire llvm::alignOf in favor of C++11 alignof. 2016-10-20 14:27:22 +00:00