From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1848 invoked by alias); 9 Apr 2002 15:16:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 1820 invoked by uid 71); 9 Apr 2002 15:16:01 -0000 Resent-Date: 9 Apr 2002 15:16:01 -0000 Resent-Message-ID: <20020409151601.1819.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, tabrunn@sandia.gov Received:(qmail 32015 invoked by uid 61); 9 Apr 2002 15:10:27 -0000 Message-Id:<20020409151027.32014.qmail@sources.redhat.com> Date: Tue, 09 Apr 2002 08:16:00 -0000 From: tabrunn@sandia.gov Reply-To: tabrunn@sandia.gov To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: libstdc++/6238: ifstream::getline(...) has problems reading file after long line. X-SW-Source: 2002-04/txt/msg00537.txt.bz2 List-Id: >Number: 6238 >Category: libstdc++ >Synopsis: ifstream::getline(...) has problems reading file after long line. >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Apr 09 08:16:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Tom Brunner >Release: all stdlib++'s that I've tested >Organization: >Environment: Redhat 7.2, gcc 2.96 20000731 (Red Hat Linux 7.1 2.96-98), gcc 3.0.2 20010905 (Red Hat Linux 7.1 3.0.1-3), gcc version 3.1 20020325 (prerelease) >Description: When attempting to read a long line with ifstream::getline(), the fist part of the line, up to the limit specified in the call, is correct. Subsequent calls to getline return nothing. The attached source code exposes this bug on all gcc versions that I have tried it on on my Linux box. On other compilers (on Irix, OSF1, HP-UX, and AIX), this program runs as expected. (Returns chunks of the line until the file is finished.) >How-To-Repeat: Compile the attached code with g++ (one of the versions listed above). Run the executable. The input file name can be changed to any file with long lines. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/x-c++src; name="ifstreamtest.C" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ifstreamtest.C" CiNpbmNsdWRlIDxmc3RyZWFtPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxpb21hbmlw Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gVGhpcyBsaW5lIHNob3VsZCBjYXVzZSBhbiBpbmZp bml0ZSBsb29wIHdoZW4gdGhpcyBjb21waWxlZCBwcm9ncmFtIGlzIHVzZWQgdG8gcmVhZCB0aGlz IHNvdXJjZSBmaWxlLi4gIEFueSBsb25nLWxpbmVkIGZpbGUgd2lsbCBkbywgbm90IGp1c3QgdGhp cyBvbmUuCgoKaW50IG1haW4oKXsKCiAgIGlmc3RyZWFtIGluZmlsZTsKICAgY29uc3QgY2hhciAq IGluZmlsZV9uYW1lID0gImlmc3RyZWFtdGVzdC5DIjsKICAgY29uc3QgdW5zaWduZWQgaW50IG1h eF9saW5lX2xlbmd0aCA9IDEwMDsKCiAgIGluZmlsZS5vcGVuKGluZmlsZV9uYW1lLCBpb3M6Omlu KTsKICAgY2hhciBpbmJ1ZlttYXhfbGluZV9sZW5ndGgrMV07CiAgIGludCByZWNvcmRfY291bnQg PSAwOwoKICAgLy8gUmVhZCB0aGUgaW5wdXQgZmlsZSB1bnRpbCBhbiBlb2YgaXMgZW5jb3VudGVy ZWQuCiAgIC8vIFRoZSByZWNvcmQgY291bnQgaXMgaGVyZSB0byB0ZXJtaW5hdGUgdGhlIGluZmlu aXRlIGxvb3AuCiAgIHdoaWxlKCFpbmZpbGUuZW9mKCkgJiYgcmVjb3JkX2NvdW50IDwgMjAwKQog ICB7CiAgICAgIC8vIEFmdGVyIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBsb25nIGxpbmUgaXMgcmVh ZCwgaXQgc2VlbXMgCiAgICAgIC8vIHRoYXQgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgc2hvdWxkIGJl IHJlYWQgdGhlIG5leHQgdGltZSAKICAgICAgLy8gdGhyb3VnaC4gIEluc3RlYWQsIGluZmlsZS5n ZXRsaW5lKCkgd2lsbCBhbHdheXMgcmV0dXJuIAogICAgICAvLyBhIG5ld2xpbmUgY2hhcmFjdGVy LiAgVGhpcyBjYXVzZXMgYW4gaW5maW5pdGUgbG9vcC4KICAgICAgaW5maWxlLmdldGxpbmUoaW5i dWYsbWF4X2xpbmVfbGVuZ3RoKTsKICAgICAgY291dCA8PCBpbmJ1ZiA8PCBlbmRsOwogICAgICBy ZWNvcmRfY291bnQrKzsKICAgfQoKICAgcmV0dXJuIDA7Cgp9Cg==