#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.
Symbols are now automatically demangle, the issue doesn't appear anymore.