On 31/05/17 13:45 +0100, Jonathan Wakely wrote: >vector does addressof(*ptr) where ptr is returned by >allocate(n), but if n==0 that pointer might not be dereferencable. > >While testing the fix I also found some bugs in the >__gnu_test::PointerBase helper that needed correcting. > > PR libstdc++/80893 > * include/bits/stl_bvector.h (vector::_M_initialize): Avoid > null pointer dereference when size is zero. > * testsuite/23_containers/vector/bool/80893.cc: New. > * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase): > Add non-explicit constructor from nullptr. > (PointerBase::derived() const): Add const-qualified overload. > >Tested powerpc64le-linux, committed to trunk. The new test fails in C++98 modes, as shown at https://gcc.gnu.org/ml/gcc-testresults/2017-06/msg01833.html Fixed like so, committed to trunk.