re PR libstdc++/59829 (Calling vector::data() occurs undefined behavior when the...
authorJonathan Wakely <jwakely@redhat.com>
Wed, 29 Jan 2014 14:57:42 +0000 (14:57 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 29 Jan 2014 14:57:42 +0000 (14:57 +0000)
commit8a972abdd98acac11c9882957ebf5e68d532948e
tree4382950e3b74baf8bcacd9f0099feaf5da63c35e
parent200674232e05d09888ff21965b0ed12c6f54f7ca
re PR libstdc++/59829 (Calling vector::data() occurs undefined behavior when the vector is empty)

PR libstdc++/59829
* include/bits/stl_vector.h (vector::data()): Call _M_data_ptr.
(vector::_M_data_ptr): New overloaded functions to ensure empty
vectors do not dereference the pointer.
* testsuite/23_containers/vector/59829.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.

From-SVN: r207241
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_vector.h
libstdc++-v3/testsuite/23_containers/vector/59829.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc