-
- Downloads
N3639 C++1y VLA support
gcc/ * gimplify.c (gimplify_vla_decl): Don't touch an existing DECL_VALUE_EXPR. gcc/cp/ * decl.c (compute_array_index_type): Allow VLAs in C++1y mode. (check_array_initializer): Allow VLA init. (reshape_init_array_1): Adjust. (cp_finish_decl): Check for invalid VLA length. * typeck2.c (process_init_constructor_array): Adjust. (store_init_value): Use build_vec_init for VLAs. * semantics.c (add_capture): Capture VLA as ptr+len. (vla_capture_type): New. (build_capture_proxy): Rebuild the VLA. * typeck.c (build_simple_component_ref): Split out from... (build_ptrmemfunc_access_expr): ...here. * tree.c (array_of_runtime_bound_p): New. * init.c (throw_bad_array_length): New. (build_vec_init): Use it. * parser.c (cp_convert_range_for): When iterating over a VLA, use it directly rather than bind a reference. * cp-tree.h: Declare new functions. libstdc++-v3/ * libsupc++/new: Add std::bad_array_length. * libsupc++/bad_array_length.cc: New. * libsupc++/eh_aux_runtime.cc: Add __cxa_bad_array_length. * libsupc++/Makefile.in: Build them. * config/abi/pre/gnu.ver: Add new symbols. * config/abi/pre/gnu-versioned-namespace.ver: Add new symbols. From-SVN: r198745
Showing
- gcc/ChangeLog 4 additions, 0 deletionsgcc/ChangeLog
- gcc/cp/ChangeLog 21 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/cp-tree.h 3 additions, 0 deletionsgcc/cp/cp-tree.h
- gcc/cp/decl.c 20 additions, 8 deletionsgcc/cp/decl.c
- gcc/cp/init.c 21 additions, 0 deletionsgcc/cp/init.c
- gcc/cp/parser.c 14 additions, 6 deletionsgcc/cp/parser.c
- gcc/cp/semantics.c 53 additions, 1 deletiongcc/cp/semantics.c
- gcc/cp/tree.c 15 additions, 0 deletionsgcc/cp/tree.c
- gcc/cp/typeck.c 14 additions, 6 deletionsgcc/cp/typeck.c
- gcc/cp/typeck2.c 4 additions, 2 deletionsgcc/cp/typeck2.c
- gcc/gimplify.c 4 additions, 0 deletionsgcc/gimplify.c
- gcc/testsuite/g++.dg/cpp1y/vla2.C 15 additions, 0 deletionsgcc/testsuite/g++.dg/cpp1y/vla2.C
- gcc/testsuite/g++.dg/cpp1y/vla3.C 30 additions, 0 deletionsgcc/testsuite/g++.dg/cpp1y/vla3.C
- gcc/testsuite/g++.dg/cpp1y/vla4.C 24 additions, 0 deletionsgcc/testsuite/g++.dg/cpp1y/vla4.C
- gcc/testsuite/g++.dg/init/array24.C 2 additions, 2 deletionsgcc/testsuite/g++.dg/init/array24.C
- libstdc++-v3/ChangeLog 10 additions, 0 deletionslibstdc++-v3/ChangeLog
- libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver 3 additions, 0 deletionslibstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
- libstdc++-v3/config/abi/pre/gnu.ver 3 additions, 0 deletionslibstdc++-v3/config/abi/pre/gnu.ver
- libstdc++-v3/libsupc++/Makefile.in 12 additions, 5 deletionslibstdc++-v3/libsupc++/Makefile.in
- libstdc++-v3/libsupc++/bad_array_length.cc 36 additions, 0 deletionslibstdc++-v3/libsupc++/bad_array_length.cc
Loading
Please register or sign in to comment