GCC 7.3.0 -std=gnu++17 failed to getline() from std::ifstream

Christian Franke Christian.Franke@t-online.de
Fri Jun 22 11:20:00 GMT 2018


Christian Franke wrote:
> Marco Atzeri wrote:
>> On 6/12/2018 7:11 PM, Christian Franke wrote:
>>> ...
>>> The attached patch for
>>> /usr/lib/gcc/*-pc-cygwin/7.3.0/include/c++/bits/basic_string.h
>>> fixes this.
>>>

Please forget this patch. It was bases on a wrong assumption and only 
cures symptoms.


>>
>> It seems an upstream bug so could you report it there ?
>>
>
> Done:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86138
>

If build with -std=c++17, a duplicate _S_empty_rep_storage[] which 
already exists in the DLL is generated in the executable. This results 
in a false negative string.empty() test in the DLL. See:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86138#c6

Workarounds:
- Link with -static, or
- Compile with -D_GLIBCXX_USE_CXX11_ABI

Fix:
https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=261873

Regards,
Christian


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list