https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82172
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEW CC| |marxin at gcc dot gnu.org Component|libstdc++ |lto Assignee|redi at gcc dot gnu.org |unassigned at gcc dot gnu.org --- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> --- Reproducible for any version since 4.6.0, without C++17 or optimization, just LTO: #define _GLIBCXX_USE_CXX11_ABI 0 #include <bits/c++config.h> #undef _GLIBCXX_EXTERN_TEMPLATE #include <iostream> int main() { std::string s; std::cin >> s; } $ g++ os.cc -flto $ echo d | ./a.out *** Error in `./a.out': free(): invalid pointer: 0x00000000006021a0 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x7c8dc)[0x7fe1d6f188dc] /lib64/libc.so.6(+0x87789)[0x7fe1d6f23789] /lib64/libc.so.6(cfree+0x16e)[0x7fe1d6f290ee] /lib64/libstdc++.so.6(_ZNSs7reserveEm+0xa5)[0x7fe1d786e465] /lib64/libstdc++.so.6(_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RSbIS4_S5_T1_E+0x217)[0x7fe1d7844787] ./a.out[0x4008c2] /lib64/libc.so.6(__libc_start_main+0xea)[0x7fe1d6ebc50a] ./a.out[0x40074a] ======= Memory map: ======== 00400000-00402000 r-xp 00000000 00:29 43484686 /tmp/a.out 00601000-00602000 r--p 00001000 00:29 43484686 /tmp/a.out 00602000-00603000 rw-p 00002000 00:29 43484686 /tmp/a.out 0084d000-0087f000 rw-p 00000000 00:00 0 [heap] 7fe1d0000000-7fe1d0021000 rw-p 00000000 00:00 0 7fe1d0021000-7fe1d4000000 ---p 00000000 00:00 0 7fe1d6e9c000-7fe1d7063000 r-xp 00000000 fd:00 1971889 /usr/lib64/libc-2.25.so 7fe1d7063000-7fe1d7263000 ---p 001c7000 fd:00 1971889 /usr/lib64/libc-2.25.so 7fe1d7263000-7fe1d7267000 r--p 001c7000 fd:00 1971889 /usr/lib64/libc-2.25.so 7fe1d7267000-7fe1d7269000 rw-p 001cb000 fd:00 1971889 /usr/lib64/libc-2.25.so 7fe1d7269000-7fe1d726d000 rw-p 00000000 00:00 0 7fe1d726d000-7fe1d7283000 r-xp 00000000 fd:00 1977375 /usr/lib64/libgcc_s-7-20170915.so.1 7fe1d7283000-7fe1d7482000 ---p 00016000 fd:00 1977375 /usr/lib64/libgcc_s-7-20170915.so.1 7fe1d7482000-7fe1d7483000 r--p 00015000 fd:00 1977375 /usr/lib64/libgcc_s-7-20170915.so.1 7fe1d7483000-7fe1d7484000 rw-p 00016000 fd:00 1977375 /usr/lib64/libgcc_s-7-20170915.so.1 7fe1d7484000-7fe1d7599000 r-xp 00000000 fd:00 1971970 /usr/lib64/libm-2.25.so 7fe1d7599000-7fe1d7798000 ---p 00115000 fd:00 1971970 /usr/lib64/libm-2.25.so 7fe1d7798000-7fe1d7799000 r--p 00114000 fd:00 1971970 /usr/lib64/libm-2.25.so 7fe1d7799000-7fe1d779a000 rw-p 00115000 fd:00 1971970 /usr/lib64/libm-2.25.so 7fe1d779a000-7fe1d7914000 r-xp 00000000 fd:00 1977857 /usr/lib64/libstdc++.so.6.0.24 7fe1d7914000-7fe1d7b14000 ---p 0017a000 fd:00 1977857 /usr/lib64/libstdc++.so.6.0.24 7fe1d7b14000-7fe1d7b1e000 r--p 0017a000 fd:00 1977857 /usr/lib64/libstdc++.so.6.0.24 7fe1d7b1e000-7fe1d7b20000 rw-p 00184000 fd:00 1977857 /usr/lib64/libstdc++.so.6.0.24 7fe1d7b20000-7fe1d7b23000 rw-p 00000000 00:00 0 7fe1d7b23000-7fe1d7b4a000 r-xp 00000000 fd:00 1971811 /usr/lib64/ld-2.25.so 7fe1d7d0c000-7fe1d7d10000 rw-p 00000000 00:00 0 7fe1d7d46000-7fe1d7d49000 rw-p 00000000 00:00 0 7fe1d7d49000-7fe1d7d4a000 r--p 00026000 fd:00 1971811 /usr/lib64/ld-2.25.so 7fe1d7d4a000-7fe1d7d4c000 rw-p 00027000 fd:00 1971811 /usr/lib64/ld-2.25.so 7ffc25685000-7ffc256a7000 rw-p 00000000 00:00 0 [stack] 7ffc2576b000-7ffc2576d000 r--p 00000000 00:00 0 [vvar] 7ffc2576d000-7ffc2576f000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Aborted (core dumped)