From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14087 invoked by alias); 9 Mar 2007 12:29:26 -0000 Received: (qmail 13657 invoked by uid 48); 9 Mar 2007 12:29:05 -0000 Date: Fri, 09 Mar 2007 12:29:00 -0000 Message-ID: <20070309122905.13656.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libfortran/31099] [4.3/4.2 regression] Runtime error on legal code using RECL In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "burnus at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-03/txt/msg00713.txt.bz2 ------- Comment #2 from burnus at gcc dot gnu dot org 2007-03-09 12:29 ------- The error setting happens in io/transfer.c's write_buf: -------------------- /* Unformatted sequential. */ have_written = 0; if (dtp->u.p.current_unit->flags.has_recl && (gfc_offset) nbytes > dtp->u.p.current_unit->bytes_left) { printf("write_buf: has_recl=%d, nbytes=%ld, bytes_left=%ld\n", dtp->u.p.current_unit->flags.has_recl, nbytes, dtp->u.p.current_unit->bytes_left); nbytes = dtp->u.p.current_unit->bytes_left; short_record = 1; } else short_record = 0; -------------------- My added printf shows: write_buf: has_recl=1, nbytes=4, bytes_left=0 The check was added in Thomas' record length patch PR 29568. http://gcc.gnu.org/viewcvs/trunk/libgfortran/io/transfer.c?r1=119087&r2=119412&diff_format=h -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu dot | |org, tkoenig at gcc dot gnu | |dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31099