gcc/libstdc++-v3/testsuite/25_algorithms
Martin Sebor 342fac9537 PR c++/69517 - [5/6 regression] SEGV on a VLA with excess initializer elements
PR c++/69517 - [5/6 regression] SEGV on a VLA with excess initializer elements
PR c++/70019 - VLA size overflow not detected
PR c++/70588 - SIGBUS on a VLA larger than SIZE_MAX / 2

gcc/testsuite/ChangeLog:
2016-04-13  Martin Sebor  <msebor@redhat.com>

        PR c++/69517
        PR c++/70019
        PR c++/70588
        * c-c++-common/ubsan/vla-1.c (main): Catch exceptions.
        * g++.dg/cpp1y/vla11.C: New test.
        * g++.dg/cpp1y/vla12.C: New test.
        * g++.dg/cpp1y/vla13.C: New test.
        * g++.dg/cpp1y/vla14.C: New test.
        * g++.dg/cpp1y/vla3.C: Restore deleted test.
        * gcc/testsuite/g++.dg/init/array24.C: Fully brace VLA initializer.
        * g++.dg/ubsan/vla-1.C: Disable exceptions.

gcc/cp/ChangeLog:
2016-04-13  Martin Sebor  <msebor@redhat.com>

        PR c++/69517
        PR c++/70019
        PR c++/70588
        * cp-tree.h (throw_bad_array_length, build_vla_check): Declare new
        functions.
        * decl.c (check_initializer, cp_finish_decl): Call them.
        (reshape_init_r): Reject incompletely braced intializer-lists
        for VLAs.
        * init.c (throw_bad_array_length, build_vla_check)
        (build_vla_size_check, build_vla_init_check): Define new functions.
        * typeck2.c (split_nonconstant_init_1): Use variably_modified_type_p()
        to detect a VLA.
        (store_init_value): Same.

gcc/doc/ChangeLog:
2016-04-13  Martin Sebor  <msebor@redhat.com>

        PR c++/69517
        PR c++/70019
        PR c++/70588
        * extend.texi (Variable Length): Document C++ specifics.

libstdc++-v3/ChangeLog:
2016-04-13  Martin Sebor  <msebor@redhat.com>

        PR c++/69517
        * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
       upper bound is positive.

From-SVN: r234966
2016-04-13 17:26:41 -06:00
..
adjacent_find Update copyright years. 2016-01-04 15:30:50 +01:00
all_of Update copyright years. 2016-01-04 15:30:50 +01:00
any_of Update copyright years. 2016-01-04 15:30:50 +01:00
binary_search Update copyright years. 2016-01-04 15:30:50 +01:00
copy Fix assertions for move assignment of trivial types 2016-01-26 19:38:20 +00:00
copy_backward Fix assertions for move assignment of trivial types 2016-01-26 19:38:20 +00:00
copy_if Update copyright years. 2016-01-04 15:30:50 +01:00
copy_n Update copyright years. 2016-01-04 15:30:50 +01:00
count Update copyright years. 2016-01-04 15:30:50 +01:00
count_if Update copyright years. 2016-01-04 15:30:50 +01:00
equal Update copyright years. 2016-01-04 15:30:50 +01:00
equal_range Update copyright years. 2016-01-04 15:30:50 +01:00
fill Update copyright years. 2016-01-04 15:30:50 +01:00
fill_n Update copyright years. 2016-01-04 15:30:50 +01:00
find Update copyright years. 2016-01-04 15:30:50 +01:00
find_end Update copyright years. 2016-01-04 15:30:50 +01:00
find_first_of Update copyright years. 2016-01-04 15:30:50 +01:00
find_if Update copyright years. 2016-01-04 15:30:50 +01:00
find_if_not Update copyright years. 2016-01-04 15:30:50 +01:00
for_each Update copyright years. 2016-01-04 15:30:50 +01:00
generate/requirements/explicit_instantiation Update copyright years. 2016-01-04 15:30:50 +01:00
generate_n Update copyright years. 2016-01-04 15:30:50 +01:00
headers Update copyright years. 2016-01-04 15:30:50 +01:00
heap Update copyright years. 2016-01-04 15:30:50 +01:00
includes Update copyright years. 2016-01-04 15:30:50 +01:00
inplace_merge Update copyright years. 2016-01-04 15:30:50 +01:00
is_heap Update copyright years. 2016-01-04 15:30:50 +01:00
is_heap_until Update copyright years. 2016-01-04 15:30:50 +01:00
is_partitioned Update copyright years. 2016-01-04 15:30:50 +01:00
is_permutation Update copyright years. 2016-01-04 15:30:50 +01:00
is_sorted Update copyright years. 2016-01-04 15:30:50 +01:00
is_sorted_until Update copyright years. 2016-01-04 15:30:50 +01:00
iter_swap Update copyright years. 2016-01-04 15:30:50 +01:00
lexicographical_compare Update copyright years. 2016-01-04 15:30:50 +01:00
lower_bound Update copyright years. 2016-01-04 15:30:50 +01:00
make_heap Update copyright years. 2016-01-04 15:30:50 +01:00
max Update copyright years. 2016-01-04 15:30:50 +01:00
max_element Update copyright years. 2016-01-04 15:30:50 +01:00
merge Update copyright years. 2016-01-04 15:30:50 +01:00
min Update copyright years. 2016-01-04 15:30:50 +01:00
min_element Update copyright years. 2016-01-04 15:30:50 +01:00
minmax Update copyright years. 2016-01-04 15:30:50 +01:00
minmax_element Update copyright years. 2016-01-04 15:30:50 +01:00
mismatch Update copyright years. 2016-01-04 15:30:50 +01:00
move Fix assertions for move assignment of trivial types 2016-01-26 19:38:20 +00:00
move_backward Fix assertions for move assignment of trivial types 2016-01-26 19:38:20 +00:00
next_permutation Update copyright years. 2016-01-04 15:30:50 +01:00
none_of Update copyright years. 2016-01-04 15:30:50 +01:00
nth_element Avoid including all of <random> in <algorithm> 2016-01-25 16:44:30 +00:00
partial_sort Update copyright years. 2016-01-04 15:30:50 +01:00
partial_sort_copy Update copyright years. 2016-01-04 15:30:50 +01:00
partition Update copyright years. 2016-01-04 15:30:50 +01:00
partition_copy Update copyright years. 2016-01-04 15:30:50 +01:00
partition_point Update copyright years. 2016-01-04 15:30:50 +01:00
pop_heap Update copyright years. 2016-01-04 15:30:50 +01:00
prev_permutation Update copyright years. 2016-01-04 15:30:50 +01:00
push_heap Update copyright years. 2016-01-04 15:30:50 +01:00
random_shuffle Update copyright years. 2016-01-04 15:30:50 +01:00
remove Update copyright years. 2016-01-04 15:30:50 +01:00
remove_copy/requirements/explicit_instantiation Update copyright years. 2016-01-04 15:30:50 +01:00
remove_copy_if Update copyright years. 2016-01-04 15:30:50 +01:00
remove_if Update copyright years. 2016-01-04 15:30:50 +01:00
replace Update copyright years. 2016-01-04 15:30:50 +01:00
replace_copy Update copyright years. 2016-01-04 15:30:50 +01:00
replace_copy_if Update copyright years. 2016-01-04 15:30:50 +01:00
replace_if Update copyright years. 2016-01-04 15:30:50 +01:00
reverse Update copyright years. 2016-01-04 15:30:50 +01:00
reverse_copy/explicit_instantiation Update copyright years. 2016-01-04 15:30:50 +01:00
rotate PR c++/69517 - [5/6 regression] SEGV on a VLA with excess initializer elements 2016-04-13 17:26:41 -06:00
rotate_copy/requirements/explicit_instantiation Update copyright years. 2016-01-04 15:30:50 +01:00
search Update copyright years. 2016-01-04 15:30:50 +01:00
search_n Update copyright years. 2016-01-04 15:30:50 +01:00
set_difference Update copyright years. 2016-01-04 15:30:50 +01:00
set_intersection Update copyright years. 2016-01-04 15:30:50 +01:00
set_symmetric_difference Update copyright years. 2016-01-04 15:30:50 +01:00
set_union Update copyright years. 2016-01-04 15:30:50 +01:00
shuffle Update copyright years. 2016-01-04 15:30:50 +01:00
sort Update copyright years. 2016-01-04 15:30:50 +01:00
sort_heap Update copyright years. 2016-01-04 15:30:50 +01:00
stable_partition Update copyright years. 2016-01-04 15:30:50 +01:00
stable_sort Update copyright years. 2016-01-04 15:30:50 +01:00
swap libstdc++/68877 Reimplement std::__is_swappable 2016-01-12 21:19:58 +00:00
swap_ranges Update copyright years. 2016-01-04 15:30:50 +01:00
transform/requirements/explicit_instantiation Update copyright years. 2016-01-04 15:30:50 +01:00
unique Update copyright years. 2016-01-04 15:30:50 +01:00
unique_copy Update copyright years. 2016-01-04 15:30:50 +01:00
upper_bound Update copyright years. 2016-01-04 15:30:50 +01:00