https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64064
LIU Hao <lh_mouse at 126 dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lh_mouse at 126 dot com --- Comment #1 from LIU Hao <lh_mouse at 126 dot com> --- AFAICT the only issue here is that one can't pass the result of `pubseekoff()` back to `pubseekpos()`. Both MSVCRT GCC and UCRT GCC are affected, but MSVC isn't. ``` #include <fstream> #include <iostream> int main(int, char* argv[]) { using traits = std::filebuf::traits_type; using int_type = std::filebuf::int_type; std::filebuf fb; fb.open(argv[1], std::ios::in); int_type c; while (!traits::eq_int_type(c = fb.sbumpc(), traits::eof())) { std::cout << static_cast<char>(c); auto pos = fb.pubseekoff(0, std::ios::cur, std::ios::in); fb.pubseekpos(pos, std::ios::in); } std::cout << '\n'; } ``` This outputs ``` hl ol ```