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.