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)

Reply via email to