http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59700

--- Comment #14 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
The item_count variable serves two purposes.  This was done because we were
trying to preserve dtp space and ABI compatibility. I dont remember all the
details of why.  At any rate, when reading logicals we have to scan ahead to
confirm a valid read, so we created the infamous line_buffer.  The variable
item_count related to the line_buffer is just a pointer into the line_buffer,
it contains the current position in that scan ahead process.  The error
messages just need to change and not refer to the item in the read list.
Instead, they should refer to the location in the line where the error
occurred.

642      dtp->u.p.line_buffer[dtp->u.p.item_count++] = c;

is simply getting the next character in the line.  We probably could have used
some sort of substructure union like u.p.uu.place and u.p.uu.item_count to
avoid the confusion. Unrelated to this PR.

Reply via email to