re PR fortran/67367 (Program crashes on READ(IOSTAT=IOS, ...) on directory OPEN()ed without error)
2015-08-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/67367 * io/unix.c (buf_read): Check for error condition and if found return the error code. From-SVN: r227320
This commit is contained in:
parent
4879fba998
commit
7c32549e57
@ -1,3 +1,9 @@
|
||||
2015-08-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libgfortran/67367
|
||||
* io/unix.c (buf_read): Check for error condition and if found
|
||||
return the error code.
|
||||
|
||||
2015-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||||
|
||||
* acinclude.m4: Remove LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT.
|
||||
|
@ -518,16 +518,26 @@ buf_read (unix_stream * s, void * buf, ssize_t nbyte)
|
||||
if (to_read <= BUFFER_SIZE/2)
|
||||
{
|
||||
did_read = raw_read (s, s->buffer, BUFFER_SIZE);
|
||||
s->physical_offset += did_read;
|
||||
s->active = did_read;
|
||||
did_read = (did_read > to_read) ? to_read : did_read;
|
||||
memcpy (p, s->buffer, did_read);
|
||||
if (likely (did_read >= 0))
|
||||
{
|
||||
s->physical_offset += did_read;
|
||||
s->active = did_read;
|
||||
did_read = (did_read > to_read) ? to_read : did_read;
|
||||
memcpy (p, s->buffer, did_read);
|
||||
}
|
||||
else
|
||||
return did_read;
|
||||
}
|
||||
else
|
||||
{
|
||||
did_read = raw_read (s, p, to_read);
|
||||
s->physical_offset += did_read;
|
||||
s->active = 0;
|
||||
if (likely (did_read >= 0))
|
||||
{
|
||||
s->physical_offset += did_read;
|
||||
s->active = 0;
|
||||
}
|
||||
else
|
||||
return did_read;
|
||||
}
|
||||
nbyte = did_read + nread;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user