https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65392

            Bug ID: 65392
           Summary: Bad mangled names in Debug Mode assertions
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org

#include <deque>

int main()
{
    std::deque<int> d;
    auto it = d.begin();
    it - 2;
}



/usr/include/c++/4.8.3/debug/safe_iterator.h:378:error: attempt to retreat 
    a past-the-end iterator 2 steps, which falls outside its valid range.

Objects involved in the operation:
iterator @ 0x0x7fff3e6b1930 {
type =
N11__gnu_debug14_Safe_iteratorINSt9__cxx199815_Deque_iteratorIiRiPiEENSt7__debug5dequeIiSaIiEEEEE
(mutable iterator);
  state = past-the-end;
  references sequence with type `NSt7__debug5dequeIiSaIiEEE' @ 0x0x7fff3e6b1930
}
Aborted (core dumped)

The types shown are not valid symbol names and cannot be demangled. They are
missing the _Z prefix.

We should not bother printing out mangled names if users can't demangle them to
get something meaningful. Ideally we should be demangling them automatically.

Reply via email to