+2006-03-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/26554
+ * io/list_read.c (read_logical): Return the value if not in namelist
+ mode.
+
2006-03-03 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/25031
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;
}
}
dtp->u.p.item_count = 0;
return;
}
- }
+
+ }
bad_logical:
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);
}