From: H.J. Lu Date: Mon, 6 Apr 2009 23:07:51 +0000 (-0700) Subject: re PR libfortran/39664 (Revision 145571 breaks stdio) X-Git-Tag: releases/gcc-4.5.0~6861 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4197c13d08d5f8984eab7e6f615ca605c0a6ad13;p=thirdparty%2Fgcc.git re PR libfortran/39664 (Revision 145571 breaks stdio) 2009-04-06 H.J. Lu PR libgfortran/39664 * io/unix.c (raw_close): Don't close STDOUT_FILENO, STDERR_FILENO nor STDIN_FILENO. From-SVN: r145636 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index f2cf22265ffb..b1a4e19f052b 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2009-04-06 H.J. Lu + + PR libgfortran/39664 + * io/unix.c (raw_close): Don't close STDOUT_FILENO, + STDERR_FILENO nor STDIN_FILENO. + 2009-04-06 David Edelsohn * io/io.h (struct stream): Rename truncate to trunc. @@ -14,7 +20,7 @@ 2009-04-05 Jerry DeLisle - PR libfortran/37754 + PR libfortran/37754 * io/io.h (format_hash_entry): New structure for hash table. (format_hash_table): The hash table itself. (free_format_data): Revise function prototype. @@ -47,7 +53,7 @@ 2009-04-05 Jerry DeLisle - PR libfortran/37754 + PR libfortran/37754 * io/transfer.c (formatted_transfer_scalar): Remove this function by factoring it into two new functions, one for read and one for write, eliminating all the conditionals for read or write mode. @@ -57,7 +63,7 @@ 2009-04-05 Janne Blomqvist - PR libfortran/25561 libfortran/37754 + PR libfortran/25561 libfortran/37754 * io/io.h (struct stream): Define new stream interface function pointers, and inline functions for accessing it. (struct fbuf): Use int instead of size_t, remove flushed element. @@ -79,7 +85,7 @@ (fbuf_read): New prototype. (fbuf_getc_refill): New prototype. (fbuf_getc): New inline function. - * io/fbuf.c (fbuf_init): Use int, get rid of flushed. + * io/fbuf.c (fbuf_init): Use int, get rid of flushed. (fbuf_debug): New function. (fbuf_reset): Flush, and return position offset. (fbuf_alloc): Simplify, don't flush, just realloc. @@ -515,18 +521,18 @@ PR libfortran/34670 * intrinsics/reshape_generic.c: Add bounds checking. * m4/reshape.m4: Likewise. - * generated/reshape_c10.c: Regenerated. - * generated/reshape_c16.c: Regenerated. - * generated/reshape_c4.c: Regenerated. - * generated/reshape_c8.c: Regenerated. - * generated/reshape_i16.c: Regenerated. - * generated/reshape_i4.c: Regenerated. - * generated/reshape_i8.c: Regenerated. - * generated/reshape_r10.c: Regenerated. - * generated/reshape_r16.c: Regenerated. - * generated/reshape_r4.c: Regenerated. - * generated/reshape_r8.c: Regenerated. - * generated/spread_r4.c: Regenerated. + * generated/reshape_c10.c: Regenerated. + * generated/reshape_c16.c: Regenerated. + * generated/reshape_c4.c: Regenerated. + * generated/reshape_c8.c: Regenerated. + * generated/reshape_i16.c: Regenerated. + * generated/reshape_i4.c: Regenerated. + * generated/reshape_i8.c: Regenerated. + * generated/reshape_r10.c: Regenerated. + * generated/reshape_r16.c: Regenerated. + * generated/reshape_r4.c: Regenerated. + * generated/reshape_r8.c: Regenerated. + * generated/spread_r4.c: Regenerated. 2008-10-13 Jerry DeLisle - Steve Ellcey + Steve Ellcey * configure: Regenerate for new libtool. * Makefile.in: Ditto. diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c index 0d2650b50faf..4f8cbb535c42 100644 --- a/libgfortran/io/unix.c +++ b/libgfortran/io/unix.c @@ -344,7 +344,12 @@ raw_close (unix_stream * s) { int retval; - retval = close (s->fd); + if (s->fd != STDOUT_FILENO + && s->fd != STDERR_FILENO + && s->fd != STDIN_FILENO) + retval = close (s->fd); + else + retval = SUCCESS; free_mem (s); return retval; }