Web lists-archives.com

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

On 2018-06-06 09:00, Marco Atzeri wrote:
On 6/5/2018 10:32 PM, Ivan Shynkarenka wrote:

I use x64 bit Cygwin and it failed in my home, work and Appveyor.  I add
cygcheck.out with my environment.

I'm sorry about misspell prefix space in my prev example. Please try the
following one:

#include <fstream>
#include <iostream>

int main(int argc, char** argv)
     std::string line;
     std::ifstream stream("test.cpp");
     while (getline(stream, line))
         std::cout << line << std::endl;
     return 0;

g++ -std=gnu++17 test.cpp

works fine on 32 bit and 64 bit on my W7

I'm having the same problem. My test program:

#include <fstream>
#include <iostream>
int main() {
    std::ifstream in("demo.cpp");
    std::string line;
    for (;;) {
        std::getline(in, line);
        if (! in && line.empty())
        std::cout << line << "\n";

$ g++ demo.cpp -std=c++17 -o demo && ./demo
Aborted (core dumped)

It's crashing on the call to std::getline(). It only happens in
-std=gnu++17 mode (or the equivalent gnu++1z, or c++17/1z). If I
compile with -std=gnu++14 or lower it works. I'm using 64-bit
Cygwin, everything updated to the current release, on Windows 8.1.

Ross Smith

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