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.

Reply via email to