https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93960
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>: https://gcc.gnu.org/g:24fe8c8e338e1c820d942b9c7b997a37705eb29e commit r10-7533-g24fe8c8e338e1c820d942b9c7b997a37705eb29e Author: Jonathan Wakely <jwak...@redhat.com> Date: Fri Apr 3 10:42:20 2020 +0100 libstdc++: Fix std::to_address for debug iterators (PR 93960) It should be valid to use std::to_address on a past-the-end iterator, but the debug mode iterators do a check for dereferenceable in their operator->(). That check is generally useful, so rather than remove it this changes std::__to_address to identify a debug mode iterator and use base().operator->() to skip the check. PR libstdc++/93960 * include/bits/ptr_traits.h (__to_address): Add special case for debug iterators, to avoid dereferenceable check. * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number. * testsuite/20_util/to_address/debug.cc: New test.