Core 624/N2932: Throw bad_array_new_length on overflow
authorJason Merrill <jason@redhat.com>
Thu, 9 May 2013 03:58:00 +0000 (23:58 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 9 May 2013 03:58:00 +0000 (23:58 -0400)
commit7d5e76c8de1b6c4b2ae5576ab909dc9e580b216b
tree09467b7a6778576ce54cf16a985769ff3c2dacb8
parentb0f36e5ee07dd1fa2d8345bcb1751aab3e95f980
Core 624/N2932: Throw bad_array_new_length on overflow
in array new size calculation.

libstdc++-v3/
* libsupc++/new: Add std::bad_array_new_length.
* libsupc++/bad_array_new.cc: New.
* libsupc++/eh_aux_runtime.cc: Add __cxa_throw_bad_array_new_length.
* libsupc++/Makefile.in: Build them.
* config/abi/pre/gnu.ver: Add new symbols.
* config/abi/pre/gnu-versioned-namespace.ver: Add new symbols.
gcc/cp/
* init.c (throw_bad_array_new_length): New.
(build_new_1): Use it.  Don't warn about braced-init-list.
(build_vec_init): Use it.
* call.c (build_operator_new_call): Use it.

From-SVN: r198731
16 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/init.c
gcc/testsuite/g++.dg/cpp0x/bad_array_new1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/bad_array_new2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/initlist21.C
gcc/testsuite/g++.dg/init/new40.C
libstdc++-v3/ChangeLog
libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/libsupc++/Makefile.in
libstdc++-v3/libsupc++/bad_array_new.cc [new file with mode: 0644]
libstdc++-v3/libsupc++/cxxabi.h
libstdc++-v3/libsupc++/eh_aux_runtime.cc
libstdc++-v3/libsupc++/new