diff --git a/libstdc++/std/bastring.h b/libstdc++/std/bastring.h index 5e334e666ff..f188628cc77 100644 --- a/libstdc++/std/bastring.h +++ b/libstdc++/std/bastring.h @@ -213,9 +213,13 @@ public: basic_string& insert (size_type pos, size_type n, charT c) { return replace (pos, 0, n, c); } iterator insert(iterator p, charT c) - { insert (p - ibegin (), 1, c); selfish (); return p; } + { size_type __o = p - ibegin (); + insert (p - ibegin (), 1, c); selfish (); + return ibegin () + __o; } iterator insert(iterator p, size_type n, charT c) - { insert (p - ibegin (), n, c); selfish (); return p; } + { size_type __o = p - ibegin (); + insert (p - ibegin (), n, c); selfish (); + return ibegin () + __o; } #ifdef __STL_MEMBER_TEMPLATES template void insert(iterator p, InputIterator first, InputIterator last)