From: jvdelisle Date: Sun, 5 Mar 2006 17:54:07 +0000 (+0000) Subject: 2006-03-05 Jerry DeLisle X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=55a1fddd1700699181fc24d0fe7746817560c626 2006-03-05 Jerry DeLisle PR libgfortran/26554 * io/list_read.c (read_logical): Return the value if not in namelist mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111738 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index ff9e599edc5..5bfe9c36e10 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2006-03-05 Jerry DeLisle + + PR libgfortran/26554 + * io/list_read.c (read_logical): Return the value if not in namelist + mode. + 2006-03-03 Thomas Koenig PR fortran/25031 diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index 5ff4cbbc299..ab9b25d2ba4 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -647,18 +647,17 @@ read_logical (st_parameter_dt *dtp, int length) c = next_char (dtp); if (is_separator(c)) { + /* All done if this is not a namelist read. */ + if (!dtp->u.p.namelist_mode) + goto logical_done; + unget_char (dtp, c); eat_separator (dtp); c = next_char (dtp); if (c != '=') { unget_char (dtp, c); - dtp->u.p.item_count = 0; - dtp->u.p.line_buffer_enabled = 0; - dtp->u.p.saved_type = BT_LOGICAL; - dtp->u.p.saved_length = length; - set_integer ((int *) dtp->u.p.value, v, length); - return; + goto logical_done; } } @@ -670,7 +669,8 @@ read_logical (st_parameter_dt *dtp, int length) dtp->u.p.item_count = 0; return; } - } + + } bad_logical: @@ -681,6 +681,15 @@ read_logical (st_parameter_dt *dtp, int length) dtp->u.p.item_count); generate_error (&dtp->common, ERROR_READ_VALUE, message); + return; + + logical_done: + + dtp->u.p.item_count = 0; + dtp->u.p.line_buffer_enabled = 0; + dtp->u.p.saved_type = BT_LOGICAL; + dtp->u.p.saved_length = length; + set_integer ((int *) dtp->u.p.value, v, length); }