This is the mail archive of the
libstdc++-cvs@gcc.gnu.org
mailing list for the libstdc++ project.
r198745 - in /trunk: gcc/ChangeLog gcc/cp/Chang...
- From: jason at gcc dot gnu dot org
- To: libstdc++-cvs at gcc dot gnu dot org
- Date: Thu, 09 May 2013 16:43:36 -0000
- Subject: r198745 - in /trunk: gcc/ChangeLog gcc/cp/Chang...
Author: jason
Date: Thu May 9 16:43:36 2013
New Revision: 198745
URL: http://gcc.gnu.org/viewcvs?rev=198745&root=gcc&view=rev
Log:
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.
Added:
trunk/libstdc++-v3/libsupc++/bad_array_length.cc
- copied, changed from r198744, trunk/libstdc++-v3/libsupc++/eh_aux_runtime.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
trunk/libstdc++-v3/config/abi/pre/gnu.ver
trunk/libstdc++-v3/libsupc++/Makefile.in
trunk/libstdc++-v3/libsupc++/cxxabi.h
trunk/libstdc++-v3/libsupc++/eh_aux_runtime.cc
trunk/libstdc++-v3/libsupc++/new
Changes in other areas also in this revision:
Added:
trunk/gcc/testsuite/g++.dg/cpp1y/vla2.C
trunk/gcc/testsuite/g++.dg/cpp1y/vla3.C
trunk/gcc/testsuite/g++.dg/cpp1y/vla4.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/init.c
trunk/gcc/cp/parser.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/tree.c
trunk/gcc/cp/typeck.c
trunk/gcc/cp/typeck2.c
trunk/gcc/gimplify.c
trunk/gcc/testsuite/g++.dg/init/array24.C