llvm-project/clang/lib
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
..
ARCMigrate Fix Clang-tidy readability-redundant-string-cstr warnings 2016-11-02 10:39:27 +00:00
AST Add two new AST nodes to represent initialization of an array in terms of 2016-12-12 02:53:20 +00:00
ASTMatchers [ASTMatcher] Add hasReplacementType matcher for SubstTemplateTypeParmType 2016-12-08 11:46:22 +00:00
Analysis DR1295 and cleanup for P0135R1: Make our initialization code more directly 2016-12-09 18:49:13 +00:00
Basic Add support for non-zero null pointer for C and OpenCL 2016-12-09 19:01:11 +00:00
CodeGen Add two new AST nodes to represent initialization of an array in terms of 2016-12-12 02:53:20 +00:00
Driver [CUDA,Driver] Added --no-cuda-gpu-arch= option. 2016-12-09 22:59:17 +00:00
Edit [OpenCL] Generate opaque type for sampler_t and function call for the initializer 2016-07-28 19:26:30 +00:00
Format [clang-format] calculate MaxInsertOffset in the original code correctly. 2016-12-09 11:45:50 +00:00
Frontend [CrashReproducer] Setup a module collector callback for HeaderInclude 2016-12-11 04:27:31 +00:00
FrontendTool C++ Modules TS: add frontend support for building pcm files from module 2016-08-26 00:14:38 +00:00
Headers [AVX-512] Remove masking from 512-bit vpermil builtins. The backend now has versions without masking so wrap it with select. 2016-12-11 01:26:52 +00:00
Index [index] Rename SymbolSubKind -> SymbolProperty, NFC. 2016-11-11 23:49:55 +00:00
Lex [CrashReproducer] Collect headermap files 2016-12-11 04:27:28 +00:00
Parse Remove special error recovery for ::(id) 2016-12-09 21:10:43 +00:00
Rewrite [analyzer] Re-apply r283092, attempt no.4, chunk no.4 (last) 2016-10-07 19:25:10 +00:00
Sema Add two new AST nodes to represent initialization of an array in terms of 2016-12-12 02:53:20 +00:00
Serialization Add two new AST nodes to represent initialization of an array in terms of 2016-12-12 02:53:20 +00:00
StaticAnalyzer Add two new AST nodes to represent initialization of an array in terms of 2016-12-12 02:53:20 +00:00
Tooling Extend CompilationDatabase by a field for the output filename 2016-12-01 23:37:45 +00:00
CMakeLists.txt