OSDN Git Service

* runtime/select.c: Moved content to select_inc.c. Include it.
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
index d3ace3f..a384e6a 100644 (file)
@@ -1,3 +1,857 @@
+2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * runtime/select.c: Moved content to select_inc.c. Include it. 
+       Add macros for different character types.
+       * runtime/select_inc.c: New file.
+       * runtime/convert_char.c: New file.
+       * intrinsics/pack_generic.c (pack_char4, pack_s_char4): New
+       functions.
+       * intrinsics/transpose_generic.c (transpose_char4): New function.
+       * intrinsics/spread_generic.c (spread_char4, spread_char4_scalar):
+       New functions.
+       * intrinsics/unpack_generic.c (unpack1_char4, unpack0_char4): 
+       New functions.
+       * intrinsics/reshape_generic.c (reshape_char): Use
+       gfc_charlen_type as type for length variables.
+       (reshape_char4): New function.
+       * gfortran.map (GFORTRAN_1.1): Add _gfortran_select_string_char4,
+       _gfortran_convert_char1_to_char4, _gfortran_convert_char4_to_char1,
+       _gfortran_transpose_char4, _gfortran_spread_char4,
+       _gfortran_spread_char4_scalar, _gfortran_reshape_char4,
+       _gfortran_pack_char4, _gfortran_pack_s_char4,
+       _gfortran_unpack0_char4 and _gfortran_unpack1_char4.
+       * Makefile.am: Add runtime/convert_char.c.
+       * Makefile.in: Regenerate.
+
+2008-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * io/list_read.c (list_formatted_read_scalar):  Declare
+       type as volatile to shut up compiler warning.
+
+2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/25561
+       * io/io.h (struct fbuf): Change pointer to position offset.
+       * io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=>pos
+       changes.
+       (fbuf_reset): ptr=>pos changes.
+       (fbuf_alloc): If the request doesn't fit, don't waste memory by
+       keeping flushed bytes. ptr=>pos changes.
+       (fbuf_flush): ptr=>pos changes.
+       (fbuf_seek): Don't seek past the left tab limit, don't update active
+       byte count.
+       * io/open.c (new_unit): If RECL has been specified, used that as
+       initial buffer size.
+
+2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/35632
+       * io/open.c (new_unit): Set stream position to correct value.
+
+2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/25561
+       * Makefile.am: Add fbuf.c to gfor_io_src.
+       * Makefile.in: Regenerate.
+       * io/io.h (read_block): Remove.
+       (struct stream): Remove alloc_r_at function pointer.
+       (salloc_r): Remove.
+       (salloc_r_at): Remove.
+       (salloc_w_at): Remove.
+       (salloc_w): Remove offset argument.
+       (struct fbuf): New struct for format buffer.
+       (struct gfc_unit): Add fbuf.
+       (read_block_form): New prototype.
+       (fbuf_init): Likewise.
+       (fbuf_destroy): Likewise.
+       (fbuf_reset): Likewise.
+       (fbuf_alloc): Likewise.
+       (fbuf_flush): Likewise.
+       (fbuf_seek): Likewise.
+       * io/file_pos.c (formatted_backspace): Change to use sread.
+       (unformatted_backspace): Likewise.
+       (st_backspace): Flush format buffer.
+       (st_rewind): Likewise.
+       * io/list_read.c (next_char): Likewise.
+       (nml_query): Tidying, flush format buffer.
+       * io/open.c (new_unit): Init format buffer.
+       * io/read.c (read_l): Change to use read_block_form.
+       (read_a): Likewise.
+       (read_decimal): Likewise.
+       (read_radix): Likewise.
+       (read_f): Likewise.
+       (read_x): Empty reads also for stream I/O.
+       * io/transfer.c (read_sf): Change to use sread.
+       (read_block): Rename to read_block_form, change prototype, use sread.
+       (read_block_direct): Don't seek stream files.
+       (write_block): Change to use fbuf if external file, don't seek stream
+       files.
+       (write_buf): Don't seek stream files.
+       (formatted_transfer_scalar): Use fbuf for external files.
+       (us_read): Change to use sread.
+       (pre_position): Do nothing for stream I/O.
+       (data_transfer_init): Flush fbuf when switching from write to read, if
+       POS is specified, seek stream file to correct offset.
+       (skip_record): Change to use sread.
+       (min_off): New function.
+       (next_record_r): Change to use sread.
+       (next_record_w): Change to use sset/sseek, flush fbuf.
+       (finalize_transfer): Flush fbuf.
+       * io/unit.c (init_units): Init fbuf for stdout, stderr.
+       (close_unit_1): Destroy fbuf.
+       (finish_last_advance_record): Flush fbuf, no need to seek.
+       * io/unix.c (fd_alloc_r_at): Remove unused where argument.
+       (fd_alloc_w_at): Likewise.
+       (fd_read): Remove third argument to fd_alloc_r_at.
+       (fd_write): Remove third argument to fd_alloc_w_at.
+       (fd_sset): Likewise.
+       (fd_open): Don't set alloc_r_at.
+       (mem_alloc_r_at): Remove unused where argument.
+       (mem_alloc_w_at): Likewise.
+       (mem_read): Don't incorrectly return previous errno, remove unused
+       third argument to alloc function.
+       (mem_write): Likewise.
+       (mem_set): Likewise.
+       (open_internal): Don't set alloc_r_at pointer.
+       * io/fbuf.c: New file.
+
+2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * libgfortran.h (gfc_char4_t): New type.
+       (GFC_SIZE_OF_CHAR_KIND): New macro.
+       (compare_string): Adjust prototype.
+       (compare_string_char4): New prototype.
+       * gfortran.map (GFORTRAN_1.1): Add _gfortran_adjustl_char4,
+       _gfortran_adjustr_char4, _gfortran_compare_string_char4,
+       _gfortran_concat_string_char4, _gfortran_string_index_char4,
+       _gfortran_string_len_trim_char4, _gfortran_string_minmax_char4,
+       _gfortran_string_scan_char4, _gfortran_string_trim_char4 and
+       _gfortran_string_verify_char4.
+       * intrinsics/string_intrinsics_inc.c: New file from content of
+       string_intrinsics.c with types replaced by macros.
+       * intrinsics/string_intrinsics.c: Move content to
+       string_intrinsics_inc.c.
+
+2008-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/36202
+       * io/list_read (eat_separator): Handle the CR-LF case correctly.
+
+2008-05-09  Julian Brown  <julian@codesourcery.com>
+
+       * Makefile.am (LTLDFLAGS): New.
+       (libgfortran_la_LDFLAGS): Use above.
+       * Makefile.in: Regenerate.
+
+2008-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/36131
+       * io/transfer.c (formatted_transfer_scalar): Revert patch for PR34974.
+       (next_record_w): Likewise.
+
+2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35995
+       * m4/ifunction_logical.m4:  If the extent of "array"
+       is less than zero, set it to zero.  Use an explicit
+       flag for breaking out of the main loop to avoid, because
+       the data pointer for "array" may be NULL for an empty
+       array.
+       * m4/ifunction.m4:  Likewise.
+       * generated/all_l1.c: Regenerated.
+       * generated/all_l16.c: Regenerated.
+       * generated/all_l2.c: Regenerated.
+       * generated/all_l4.c: Regenerated.
+       * generated/all_l8.c: Regenerated.
+       * generated/any_l1.c: Regenerated.
+       * generated/any_l16.c: Regenerated.
+       * generated/any_l2.c: Regenerated.
+       * generated/any_l4.c: Regenerated.
+       * generated/any_l8.c: Regenerated.
+       * generated/count_16_l.c: Regenerated.
+       * generated/count_1_l.c: Regenerated.
+       * generated/count_2_l.c: Regenerated.
+       * generated/count_4_l.c: Regenerated.
+       * generated/count_8_l.c: Regenerated.
+       * generated/maxloc1_16_i1.c: Regenerated.
+       * generated/maxloc1_16_i16.c: Regenerated.
+       * generated/maxloc1_16_i2.c: Regenerated.
+       * generated/maxloc1_16_i4.c: Regenerated.
+       * generated/maxloc1_16_i8.c: Regenerated.
+       * generated/maxloc1_16_r10.c: Regenerated.
+       * generated/maxloc1_16_r16.c: Regenerated.
+       * generated/maxloc1_16_r4.c: Regenerated.
+       * generated/maxloc1_16_r8.c: Regenerated.
+       * generated/maxloc1_4_i1.c: Regenerated.
+       * generated/maxloc1_4_i16.c: Regenerated.
+       * generated/maxloc1_4_i2.c: Regenerated.
+       * generated/maxloc1_4_i4.c: Regenerated.
+       * generated/maxloc1_4_i8.c: Regenerated.
+       * generated/maxloc1_4_r10.c: Regenerated.
+       * generated/maxloc1_4_r16.c: Regenerated.
+       * generated/maxloc1_4_r4.c: Regenerated.
+       * generated/maxloc1_4_r8.c: Regenerated.
+       * generated/maxloc1_8_i1.c: Regenerated.
+       * generated/maxloc1_8_i16.c: Regenerated.
+       * generated/maxloc1_8_i2.c: Regenerated.
+       * generated/maxloc1_8_i4.c: Regenerated.
+       * generated/maxloc1_8_i8.c: Regenerated.
+       * generated/maxloc1_8_r10.c: Regenerated.
+       * generated/maxloc1_8_r16.c: Regenerated.
+       * generated/maxloc1_8_r4.c: Regenerated.
+       * generated/maxloc1_8_r8.c: Regenerated.
+       * generated/maxval_i1.c: Regenerated.
+       * generated/maxval_i16.c: Regenerated.
+       * generated/maxval_i2.c: Regenerated.
+       * generated/maxval_i4.c: Regenerated.
+       * generated/maxval_i8.c: Regenerated.
+       * generated/maxval_r10.c: Regenerated.
+       * generated/maxval_r16.c: Regenerated.
+       * generated/maxval_r4.c: Regenerated.
+       * generated/maxval_r8.c: Regenerated.
+       * generated/minloc1_16_i1.c: Regenerated.
+       * generated/minloc1_16_i16.c: Regenerated.
+       * generated/minloc1_16_i2.c: Regenerated.
+       * generated/minloc1_16_i4.c: Regenerated.
+       * generated/minloc1_16_i8.c: Regenerated.
+       * generated/minloc1_16_r10.c: Regenerated.
+       * generated/minloc1_16_r16.c: Regenerated.
+       * generated/minloc1_16_r4.c: Regenerated.
+       * generated/minloc1_16_r8.c: Regenerated.
+       * generated/minloc1_4_i1.c: Regenerated.
+       * generated/minloc1_4_i16.c: Regenerated.
+       * generated/minloc1_4_i2.c: Regenerated.
+       * generated/minloc1_4_i4.c: Regenerated.
+       * generated/minloc1_4_i8.c: Regenerated.
+       * generated/minloc1_4_r10.c: Regenerated.
+       * generated/minloc1_4_r16.c: Regenerated.
+       * generated/minloc1_4_r4.c: Regenerated.
+       * generated/minloc1_4_r8.c: Regenerated.
+       * generated/minloc1_8_i1.c: Regenerated.
+       * generated/minloc1_8_i16.c: Regenerated.
+       * generated/minloc1_8_i2.c: Regenerated.
+       * generated/minloc1_8_i4.c: Regenerated.
+       * generated/minloc1_8_i8.c: Regenerated.
+       * generated/minloc1_8_r10.c: Regenerated.
+       * generated/minloc1_8_r16.c: Regenerated.
+       * generated/minloc1_8_r4.c: Regenerated.
+       * generated/minloc1_8_r8.c: Regenerated.
+       * generated/minval_i1.c: Regenerated.
+       * generated/minval_i16.c: Regenerated.
+       * generated/minval_i2.c: Regenerated.
+       * generated/minval_i4.c: Regenerated.
+       * generated/minval_i8.c: Regenerated.
+       * generated/minval_r10.c: Regenerated.
+       * generated/minval_r16.c: Regenerated.
+       * generated/minval_r4.c: Regenerated.
+       * generated/minval_r8.c: Regenerated.
+       * generated/product_c10.c: Regenerated.
+       * generated/product_c16.c: Regenerated.
+       * generated/product_c4.c: Regenerated.
+       * generated/product_c8.c: Regenerated.
+       * generated/product_i1.c: Regenerated.
+       * generated/product_i16.c: Regenerated.
+       * generated/product_i2.c: Regenerated.
+       * generated/product_i4.c: Regenerated.
+       * generated/product_i8.c: Regenerated.
+       * generated/product_r10.c: Regenerated.
+       * generated/product_r16.c: Regenerated.
+       * generated/product_r4.c: Regenerated.
+       * generated/product_r8.c: Regenerated.
+       * generated/sum_c10.c: Regenerated.
+       * generated/sum_c16.c: Regenerated.
+       * generated/sum_c4.c: Regenerated.
+       * generated/sum_c8.c: Regenerated.
+       * generated/sum_i1.c: Regenerated.
+       * generated/sum_i16.c: Regenerated.
+       * generated/sum_i2.c: Regenerated.
+       * generated/sum_i4.c: Regenerated.
+       * generated/sum_i8.c: Regenerated.
+       * generated/sum_r10.c: Regenerated.
+       * generated/sum_r16.c: Regenerated.
+       * generated/sum_r4.c: Regenerated.
+       * generated/sum_r8.c: Regenerated.
+
+2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35990
+       * intrinsics/pack_generic.c:  Really commit.
+
+2008-05-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35990
+       * intrinsics/pack_generic.c:  If an extent of the source
+       array is less then zero, set it to zero.  Set the source
+       pointer to NULL if the source size is zero.  Set the total
+       number of elements to zero if the vector has an extent
+       less or equal to zero.
+       * m4/pack.m4:  Set the source pointer to NULL if the
+       source array is zero-sized.  Set the total number of
+       elemements to zero if the vector has an extent less or
+       equal to zero.
+       * generated/pack_i1.c:  Regenerated.
+       * generated/pack_i2.c:  Regenerated.
+       * generated/pack_i4.c:  Regenerated.
+       * generated/pack_i8.c:  Regenerated.
+       * generated/pack_i16.c:  Regenerated.
+       * generated/pack_r4.c:  Regenerated.
+       * generated/pack_r8.c:  Regenerated.
+       * generated/pack_r10.c:  Regenerated.
+       * generated/pack_r16.c:  Regenerated.
+       * generated/pack_c4.c:  Regenerated.
+       * generated/pack_c8.c:  Regenerated.
+       * generated/pack_c10.c:  Regenerated.
+       * generated/pack_c16.c:  Regenerated.
+
+2008-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/36094
+       * runtime/error.c (show_locus): Provide modified error message when
+       filename has not yet been associated with a unit number.
+       * io/open.c (encoding_opt[]): Comment out "utf-8" option and add TODO.
+
+2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * intrinsics/selected_char_kind.c: New file.
+       * gfortran.map (GFORTRAN_1.1): Add _gfortran_selected_char_kind.
+       * Makefile.am: Add intrinsics/selected_char_kind.c.
+       * Makefile.in: Regenerate.
+
+2008-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35993
+       * ifunction.m4 (SCALAR_ARRAY_FUNCTION):  Use correct
+       implementation for multi-dimensional return arrays when
+       the mask is .false.
+       * generated/maxloc1_16_i1.c: Regenerated.
+       * generated/maxloc1_16_i16.c: Regenerated.
+       * generated/maxloc1_16_i2.c: Regenerated.
+       * generated/maxloc1_16_i4.c: Regenerated.
+       * generated/maxloc1_16_i8.c: Regenerated.
+       * generated/maxloc1_16_r10.c: Regenerated.
+       * generated/maxloc1_16_r16.c: Regenerated.
+       * generated/maxloc1_16_r4.c: Regenerated.
+       * generated/maxloc1_16_r8.c: Regenerated.
+       * generated/maxloc1_4_i1.c: Regenerated.
+       * generated/maxloc1_4_i16.c: Regenerated.
+       * generated/maxloc1_4_i2.c: Regenerated.
+       * generated/maxloc1_4_i4.c: Regenerated.
+       * generated/maxloc1_4_i8.c: Regenerated.
+       * generated/maxloc1_4_r10.c: Regenerated.
+       * generated/maxloc1_4_r16.c: Regenerated.
+       * generated/maxloc1_4_r4.c: Regenerated.
+       * generated/maxloc1_4_r8.c: Regenerated.
+       * generated/maxloc1_8_i1.c: Regenerated.
+       * generated/maxloc1_8_i16.c: Regenerated.
+       * generated/maxloc1_8_i2.c: Regenerated.
+       * generated/maxloc1_8_i4.c: Regenerated.
+       * generated/maxloc1_8_i8.c: Regenerated.
+       * generated/maxloc1_8_r10.c: Regenerated.
+       * generated/maxloc1_8_r16.c: Regenerated.
+       * generated/maxloc1_8_r4.c: Regenerated.
+       * generated/maxloc1_8_r8.c: Regenerated.
+       * generated/maxval_i1.c: Regenerated.
+       * generated/maxval_i16.c: Regenerated.
+       * generated/maxval_i2.c: Regenerated.
+       * generated/maxval_i4.c: Regenerated.
+       * generated/maxval_i8.c: Regenerated.
+       * generated/maxval_r10.c: Regenerated.
+       * generated/maxval_r16.c: Regenerated.
+       * generated/maxval_r4.c: Regenerated.
+       * generated/maxval_r8.c: Regenerated.
+       * generated/minloc1_16_i1.c: Regenerated.
+       * generated/minloc1_16_i16.c: Regenerated.
+       * generated/minloc1_16_i2.c: Regenerated.
+       * generated/minloc1_16_i4.c: Regenerated.
+       * generated/minloc1_16_i8.c: Regenerated.
+       * generated/minloc1_16_r10.c: Regenerated.
+       * generated/minloc1_16_r16.c: Regenerated.
+       * generated/minloc1_16_r4.c: Regenerated.
+       * generated/minloc1_16_r8.c: Regenerated.
+       * generated/minloc1_4_i1.c: Regenerated.
+       * generated/minloc1_4_i16.c: Regenerated.
+       * generated/minloc1_4_i2.c: Regenerated.
+       * generated/minloc1_4_i4.c: Regenerated.
+       * generated/minloc1_4_i8.c: Regenerated.
+       * generated/minloc1_4_r10.c: Regenerated.
+       * generated/minloc1_4_r16.c: Regenerated.
+       * generated/minloc1_4_r4.c: Regenerated.
+       * generated/minloc1_4_r8.c: Regenerated.
+       * generated/minloc1_8_i1.c: Regenerated.
+       * generated/minloc1_8_i16.c: Regenerated.
+       * generated/minloc1_8_i2.c: Regenerated.
+       * generated/minloc1_8_i4.c: Regenerated.
+       * generated/minloc1_8_i8.c: Regenerated.
+       * generated/minloc1_8_r10.c: Regenerated.
+       * generated/minloc1_8_r16.c: Regenerated.
+       * generated/minloc1_8_r4.c: Regenerated.
+       * generated/minloc1_8_r8.c: Regenerated.
+       * generated/minval_i1.c: Regenerated.
+       * generated/minval_i16.c: Regenerated.
+       * generated/minval_i2.c: Regenerated.
+       * generated/minval_i4.c: Regenerated.
+       * generated/minval_i8.c: Regenerated.
+       * generated/minval_r10.c: Regenerated.
+       * generated/minval_r16.c: Regenerated.
+       * generated/minval_r4.c: Regenerated.
+       * generated/minval_r8.c: Regenerated.
+       * generated/product_c10.c: Regenerated.
+       * generated/product_c16.c: Regenerated.
+       * generated/product_c4.c: Regenerated.
+       * generated/product_c8.c: Regenerated.
+       * generated/product_i1.c: Regenerated.
+       * generated/product_i16.c: Regenerated.
+       * generated/product_i2.c: Regenerated.
+       * generated/product_i4.c: Regenerated.
+       * generated/product_i8.c: Regenerated.
+       * generated/product_r10.c: Regenerated.
+       * generated/product_r16.c: Regenerated.
+       * generated/product_r4.c: Regenerated.
+       * generated/product_r8.c: Regenerated.
+       * generated/sum_c10.c: Regenerated.
+       * generated/sum_c16.c: Regenerated.
+       * generated/sum_c4.c: Regenerated.
+       * generated/sum_c8.c: Regenerated.
+       * generated/sum_i1.c: Regenerated.
+       * generated/sum_i16.c: Regenerated.
+       * generated/sum_i2.c: Regenerated.
+       * generated/sum_i4.c: Regenerated.
+       * generated/sum_i8.c: Regenerated.
+       * generated/sum_r10.c: Regenerated.
+       * generated/sum_r16.c: Regenerated.
+       * generated/sum_r4.c: Regenerated.
+       * generated/sum_r8.c: Regenerated.
+
+2008-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35960
+       * m4/reshape.m4:  Fix typo in last commit.
+       * generated/reshape_i4.c:  Regererated.
+       * generated/reshape_i8.c:  Regenerated.
+       * generated/reshape_i16.c:  Regenerated.
+       * generated/reshape_r4.c:  Regenerated.
+       * generated/reshape_r8.c:  Regenerated.
+       * generated/reshape_r10.c:  Regenerated.
+       * generated/reshape_r16.c:  Regenerated.
+       * generated/reshape_c4.c:  Regenerated.
+       * generated/reshape_c8.c:  Regenerated.
+       * generated/reshape_c10.c:  Regenerated.
+       * generated/reshape_c16.c:  Regenerated.
+
+2008-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * intrinsics/time_1.h (__time_1): Remove unused variable.
+
+2008-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35988
+       * m4/matmul.m4:  Only issue a runtime error if extents are
+       non-zero.
+       * generated/matmul_i1.c:  Regenerated.
+       * generated/matmul_i2.c:  Regenerated.
+       * generated/matmul_i4.c:  Regenerated.
+       * generated/matmul_i8.c:  Regenerated.
+       * generated/matmul_i16.c:  Regenerated.
+       * generated/matmul_r4.c:  Regenerated.
+       * generated/matmul_r8.c:  Regenerated.
+       * generated/matmul_r10.c:  Regenerated.
+       * generated/matmul_r16.c:  Regenerated.
+       * generated/matmul_c4.c:  Regenerated.
+       * generated/matmul_c8.c:  Regenerated.
+       * generated/matmul_c10.c:  Regenerated.
+       * generated/matmul_c16.c:  Regenerated.
+
+2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * acinclude.m4 (LIBGFOR_CHECK_ATTRIBUTE_VISIBILITY)
+       (LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT)
+       (LIBGFOR_CHECK_ATTRIBUTE_ALIAS, LIBGFOR_CHECK_SYNC_FETCH_AND_ADD)
+       (LIBGFOR_GTHREAD_WEAK, LIBGFOR_CHECK_UNLINK_OPEN_FILE)
+       (LIBGFOR_CHECK_CRLF, LIBGFOR_CHECK_FOR_BROKEN_ISFINITE)
+       (LIBGFOR_CHECK_FOR_BROKEN_ISNAN)
+       (LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY, LIBGFOR_CHECK_WORKING_STAT)
+       (LIBGFOR_CHECK_FPSETMASK, LIBGFOR_CHECK_MINGW_SNPRINTF):
+       Fix cache variable names.
+       * configure, Makefile.in: Regenerate.
+
+2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/35991
+       * intrinsics/cshift0.c (cshift0): Avoid divide by zero.
+
+2008-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/35960
+       * intrinsics/reshape_generic.c (reshape_internal): If the size
+       of the resized array is zero, as determined by the SHAPE
+       argument, return early.
+       * m4/reshape.m4:  Likewise.
+       * generated/reshape_i4.c:  Regererated.
+       * generated/reshape_i8.c:  Regenerated.
+       * generated/reshape_i16.c:  Regenerated.
+       * generated/reshape_r4.c:  Regenerated.
+       * generated/reshape_r8.c:  Regenerated.
+       * generated/reshape_r10.c:  Regenerated.
+       * generated/reshape_r16.c:  Regenerated.
+       * generated/reshape_c4.c:  Regenerated.
+       * generated/reshape_c8.c:  Regenerated.
+       * generated/reshape_c10.c:  Regenerated.
+       * generated/reshape_c16.c:  Regenerated.
+
+2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/35457
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2008-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/32972
+       * intrinsics/spread_generic.c (spread):  Use spread_i2()
+       for GFC_DTYPE_DERIVED_2 (fix typo from previous commit).
+
+2008-04-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
+       Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR libfortran/32972
+       PR libfortran/32512
+       configure.ac:  Add test for uintptr_t.
+       configure:  Regenerated.
+       config.h.in:  Regenerated.
+       * libgfortran.h: GFC_DTYPE_DERIVED_1:  New macro.
+       GFC_DTYPE_DERIVED_2:  New macro.
+       GFC_DTYPE_DERIVED_4:  New macro.
+       GFC_DTYPE_DERIVED_8:  New macro.
+       GFC_DTYPE_DERIVED_16:  New macro.
+       GFC_UNALIGNED_2:  New macro.
+       GFC_UNALIGNED_4:  New macro.
+       GFC_UNALIGNED_8:  New macro.
+       GFC_UNALIGNED_16:  New macro.
+       intptr_t:  Define if we don't have it.
+       uintptr_t:  Likewise.
+       * runtime/backtrace.c (show_backtrace):  Use intptr_t.
+       * intrinsics/signal.c (signal_sub):  Likewise.
+       (signal_sub_int):  Likewise.
+       (alarm_sub_int_i4):  Likewise.
+       * intrinsics/spread_generic.c (spread):  Use the integer
+       routines for handling derived types of sizes 1, 2, 4, 8 and 16
+       if the alignment of all pointers is correct.
+       (spread_scalar):  Likewise.
+       * intrinsics/pack_generic.c (pack):  Likewise.
+       Use GFD_DTYPE_TYPE_SIZE to avoid nested switch statements.
+       * intrinsics/unpack_generic.c (unpack1):  Likewise.
+       (unpack0):  Likewise.
+       * runtime/in_pack_generic.c (internal_pack):  Likewise.
+       * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
+
+2008-04-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * io/list_read.c (snprintf): Define if HAVE_SNPRINTF isn't defined.
+       (nml_read_obj): Add nml_err_msg_size argument.  Pass it down to
+       recursive call.  Use snprintf instead of sprintf when %s nl->var_name
+       is used.
+       (nml_get_obj_data): Add nml_err_msg_size argument.  Pass it down to
+       nml_read_obj call.  Use snprintf instead of sprintf when %s
+       nl->var_name is used.  Pass nml_err_msg to nml_parse_qualifier instead
+       of parse_err_msg array.  Append " for namelist variable " and
+       nl->var_name to it.
+       (namelist_read): Increase size of nml_err_msg array to 200.  Pass
+       sizeof nml_err_msg as extra argument to nml_get_obj_data.
+
+2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/25829 28655
+       * io/open.c (edit_modes): Set flags.async. (new_unit) Set flags.async
+       and flags.status. (st_open): Initialize flags.async.
+       * io/list_read.c (read_charactor): Use delim_status instead of
+       flags.delim.
+       * io/read.c (read_x): Use pad_status instead of flags.pad.
+       * io/inquire.c (inquire_via_unit): Add new checks.
+       (inquire_via_filename): Likewise.
+       * io/io.h (st_parameter_inquire): Add new flags.
+       (st_parameter_dt): Likewise.
+       * io/unit.c (get_internal_unit): Set flags.async. (init_units): Set
+       flags.async.
+       * io/transfer.c: Add delim and pad option arrays. (read_sf): Use
+       pad_status instead of flags.pad. (read_block): Likewise.
+       (data_transfer_init): Set flags.async and add checks.
+       * io/write.c (write_character): Use delim_status.
+       (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise.
+       (namelist_write): Likewise.
+
+2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/25829 28655
+       * gfortran.map: Add new symbol, _gfortran_st_wait.
+       * libgfortran.h (st_paramter_common): Add new I/O parameters.
+       * open.c (st_option decimal_opt[], st_option encoding_opt[],
+       st_option round_opt[], st_option sign_opt[], st_option async_opt[]): New
+       parameter option arrays. (edit_modes): Add checks for new parameters.
+       (new_unit): Likewise. (st_open): Likewise.
+       * list_read.c (CASE_SEPERATORS): Add ';' as a valid separator.
+       (eat_separator): Handle deimal comma. (read_logical): Fix whitespace.
+       (parse_real): Handle decimal comma. (read_real): Handle decimal comma.
+       * read.c (read_a): Use decimal status flag to allow comma in place of a
+       decimal point. (read_f): Allow comma as acceptable character in float.
+       According to decimal flag, substitute a period for a comma.
+       (read_x): If decimal status flag is comma, disable the read_comma flag,
+       not allowing comma as a delimiter, an extension otherwise.
+       * io.h: (unit_decimal, unit_encoding, unit_round, unit_sign,
+       unit_async): New enumerators. Add all new I/O parameters.
+       * unix.c (unix_stream, int_stream): Add io_mode asychronous I/O control.
+       (move_pos_offset, fd_alloc_w_at): Fix some whitespace.
+       (fd_sfree): Use new enumerator. (fd_read): Likewise.
+       (fd_write): Likewise. (fd_close): Fix whitespace.
+       (fd_open): Use new enumertors. (tempfile, regular_file,
+       open_external): Fix whitespace. (output_stream, error_stream): Set
+       method. (stream_offset): Fix whitespace.
+       * transfer.c: (st_option decimal_opt[], sign_opt[], blank_opt[]): New
+       option arrays.  (formatted_transfer_scalar): Set sf_read_comma flag
+       based on new decimal_status flag. (data_transfer_init): Initialize new
+       parameters. Add checks for decimal, sign, and blank. (st_wait): New stub.
+       * format.c: (format_lex): Add format specifiers DP, DC, and D.
+       (parse_format_list): Parse the new specifiers.
+       * write.c (write_decimal): Use new sign enumerators to set the sign.
+       (write_complex): Handle decimal comma and semi-colon separator.
+       (nml_write_obj): Likewise.
+       * write_float.def: Revise sign enumerators. (calculate_sign): Use new
+       sign enumerators. (output_float): Likewise. Use new decimal_status flag
+       to set the decimal character to a point or a comma.
+       
+2008-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/32972
+       PR libfortran/32512
+       * Makefile.am:  Add new variable, i_spread_c, containing
+       pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, spread_i16.c,
+       spread_r4.c, spread_r8.c, spread_r10.c, spread_r16.c,
+       spread_c4.c, spread_c8.c, spread_c10.c, spread_c16.c.
+       * Makefile.in:  Regenerated.
+       * libgfortran.h:  Add prototypes for spread_i1, spread_i2,
+       spread_i4, spread_i8, spread_i16, spread_r4, spread_r8,
+       spread_c4, spread_c8, spread_c10, spread_c16,
+       spread_scalar_i1, spread_scalar_i2, spread_scalar_i4,
+       spread_scalar_i8, spread_scalar_i16, spread_scalar_r4
+       spread_scalar_r8, spread_scalar_c4, spread_scalar_c8,
+       spread_scalar_c10 and spread_scalar_c16.
+       Add macros to isolate both type and size information
+       from array descriptors with a single mask operation.
+       * intrinsics/spread_generic.c:  Add calls to specific
+       spread functions.
+       * m4/spread.m4:  New file.
+       * generated/spread_i1.c:  New file.
+       * generated/spread_i2.c:  New file.
+       * generated/spread_i4.c:  New file.
+       * generated/spread_i8.c:  New file.
+       * generated/spread_i16.c:  New file.
+       * generated/spread_r4.c:  New file.
+       * generated/spread_r8.c:  New file.
+       * generated/spread_r10.c:  New file.
+       * generated/spread_r16.c:  New file.
+       * generated/spread_c4.c:  New file.
+       * generated/spread_c8.c:  New file.
+       * generated/spread_c10.c:  New file.
+       * generated/spread_c16.c:  New file.
+
+2008-03-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/35699
+       * io/transfer.c (write_buf):  Don't pad the record, just return if the
+       data is NULL.  (next_record_w): If there are bytes left in the record
+       for unformatted direct I/O, pad out the record with zero bytes.
+
+2008-03-28  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/35721
+       * intrinsics/associated.c (associated): Ignore different
+       stride of pointer vs. target if only one element is referred.
+
+2008-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       * io/unix.c (fd_close):  Do not close STDIN.
+
+2007-03-23  Thomas Koenig  <tkoenig@gcc.gnu.org
+
+       PR libfortran/32972
+       * Makefile.am:  Add new variable, i_unpack_c, containing
+       unpack_i1.c, unpack_i2.c, unpack_i4.c, unpack_i8.c,
+       unpack_i16.c, unpack_r4.c, unpack_r8.c, unpack_r10.c,
+       unpack_r16.c, unpack_c4.c, unpack_c8.c, unpack_c10.c
+       and unpack_c16.c
+       Add i_unpack_c to gfor_built_src.
+       Add rule to generate i_unpack_c from m4/unpack.m4.
+       * Makefile.in:  Regenerated.
+       * libgfortran.h: Add prototypes for unpack0_i1, unpack0_i2,
+       unpack0_i4, unpack0_i8, unpack0_i16, unpack0_r4, unpack0_r8,
+       unpack0_r10, unpack0_r16, unpack0_c4, unpack0_c8, unpack0_c10,
+       unpack0_c16, unpack1_i1, unpack1_i2, unpack1_i4, unpack1_i8,
+       unpack1_i16, unpack1_r4, unpack1_r8, unpack1_r10, unpack1_r16,
+       unpack1_c4, unpack1_c8, unpack1_c10 and unpack1_c16.
+       * intrinsics/pack_generic.c (unpack1):  Add calls to specific
+       unpack1 functions.
+       (unpack0):  Add calls to specific unpack0 functions.
+       * m4/unpack.m4:  New file.
+       * generated/unpack_i1.c:  New file.
+       * generated/unpack_i2.c:  New file.
+       * generated/unpack_i4.c:  New file.
+       * generated/unpack_i8.c:  New file.
+       * generated/unpack_i16.c:  New file.
+       * generated/unpack_r4.c:  New file.
+       * generated/unpack_r8.c:  New file.
+       * generated/unpack_r10.c:  New file.
+       * generated/unpack_r16.c:  New file.
+       * generated/unpack_c4.c:  New file.
+       * generated/unpack_c8.c:  New file.
+       * generated/unpack_c10.c:  New file.
+       * generated/unpack_c16.c:  New file.
+
+2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/35632
+       * io/transfer.c (data_transfer_init):  Fix whitespace.
+       (next_record_w): Truncate the file only if the stream
+       position is short of the file end.
+
+2008-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       * intrinsics/pack_generic.c:  Fix typo.
+
+2008-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * gfortran.map: Move erfc_scaled symbols to new symbol node
+       GFORTRAN_1.1, thereby fixing ABI bug introduced in r132846.
+
+2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/32972
+       * runtime/in_pack_generic.c (internal_pack):  Call correct
+       function, pack_i16, for GFC_INTEGER_16.
+
+2008-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/32972
+       * Makefile.am:  Add new variable, i_pack_c, containing
+       pack_i1.c, pack_i2.c, pack_i4.c, pack_i8.c, pack_i16.c,
+       pack_r4.c, pack_r8.c, pack_r10.c, pack_r16.c, pack_c4.c,
+       pack_c8.c, pack_c10.c, pack_c16.c.
+       Add m4/pack.m4 to m4_files.
+       Add i_pack_c to gfor_built_src.
+       Add rule to generate i_pack_c from m4/pack.m4.
+       * Makefile.in:  Regenerated.
+       * libgfortran.h: Add prototypes for pack_i1, pack_i2, pack_i4,
+       pack_i8, pack_i16, pack_r4, pack_r8, pack_c4, pack_c8,
+       pack_c10, pack_c16.
+       * intrinsics/pack_generic.c:  Add calls to specific
+       pack functions.
+       * m4/pack.m4:  New file.
+       * generated/pack_i1.c:  New file.
+       * generated/pack_i2.c:  New file.
+       * generated/pack_i4.c:  New file.
+       * generated/pack_i8.c:  New file.
+       * generated/pack_i16.c:  New file.
+       * generated/pack_r4.c:  New file.
+       * generated/pack_r8.c:  New file.
+       * generated/pack_r10.c:  New file.
+       * generated/pack_r16.c:  New file.
+       * generated/pack_c4.c:  New file.
+       * generated/pack_c8.c:  New file.
+       * generated/pack_c10.c:  New file.
+       * generated/pack_c16.c:  New file.
+
+2008-03-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/35627
+       * io/list_read.c (free_line): Clear the line buffer enable flag and
+       reset the index into line_buffer, aka item_count.
+       (next_char): Cleanup whitespace.
+       (read_logical): Use unget_char to assure that the first character of the
+       bad logical is saved in case it is part of an object name. Remove the
+       clearing of index and flag that is now in free_line.
+       (read_real): Likewise.
+
+2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/32972
+       * runtime/in_pack_generic.c (internal_pack):  Fix typo in
+       last commit.
+
+2008-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/32972
+       * Makefile.am (in_pack_c): Add in_pack_i1.c, in_pack_i2.c,
+       in_pack_r4.c, in_pack_r8.c, in_pack_r10.c and in_pack_r16.c.
+       (in_unpack_c): Add in_unpack_i1.c, in_unpack_i2.c,
+       in_unpack_r4.c, in_unpack_r8.c, in_unpack_r10.c and
+       in_unpack_r16.c.
+       * Makefile.in: Regenerate.
+       * libgfortran.h:  Add prototypes for internal_pack_1,
+       internal_pack_2, internal_pack_16, internal_pack_r4,
+       internal_pack_r8, internal_pack_r10, internal_pack_r16,
+       internal_pack_c10 and internal_pack_c16.  Add prototypes for
+       internal_unpack_1, internal_unpack_2, internal_unpack_16,
+       internal_unpack_r4, internal_unpack_r8, internal_unpack_r10,
+       internal_unpack_r16, internal_unpack_c10 and
+       internal_unpack_c16.
+       * runtime/in_pack_generic.c (internal_pack): Use sizeof instead
+       of hardwired sizes.
+       Add calls to internal_pack_1, internal_pack_2,
+       internal_pack_16, internal_pack_r4, internal_pack_r8,
+       internal_pack_r10, internal_pack_r16, internal_pack_c10 and
+       internal_pack_c16.
+       * runtime/in_unpack_generic.c (internal_unpack):  Use sizeof
+       instead of hardwired sizes.
+       Add calls to internal_unpack_1, internal_unpack_2,
+       internal_unpack_16, internal_unpack_r4, internal_unpack_r8,
+       internal_unpack_r10, internal_unpack_r16, internal_unpack_c10
+       and internal_unpack_c16.
+       * generated/in_pack_r4.c:  New file.
+       * generated/in_pack_i2.c:  New file.
+       * generated/in_unpack_i1.c:  New file.
+       * generated/in_pack_r10.c:  New file.
+       * generated/in_unpack_r4.c:  New file.
+       * generated/in_unpack_i2.c:  New file.
+       * generated/in_unpack_r16.c:  New file.
+       * generated/in_pack_r8.c:  New file.
+       * generated/in_unpack_r10.c:  New file.
+       * generated/in_unpack_r8.c:  New file.
+       * generated/in_pack_r16.c:  New file.
+       * generated/in_pack_i1.c:  New file.
+
+2008-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/35617
+       * io/list_read.c (eat_separator): If next character after eatline is '!'
+       then eatline again. 
+
+2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * aclocal.m4: Regenerate.
+       * configure: Likewise.
+       * Makefile.in: Likewise.
+
+2008-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR libfortran/35524
+       * intrinsics/erfc_scaled_inc.c: Only define the long double
+       variant of erfc_scaled if expl is available.
+
+2008-03-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR libfortran/32812
+       * intrinsics/random.c (scramble_seed, unscramble_seed): New
+       functions.
+       (random_seed_i4): Scramble the seed the user gives us before
+       storing it, and unscramble it when we return it back later.
+
+2008-03-05  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR libfortran/35293
+       * io/unix.c (fd_truncate): Fold s->special_file case into
+       success case of ftruncate/chsize call instead of the failure case.
+       Make failure case actually return failure.  Properly update stream
+       pointers on failure.  Call runtime_error for targets without
+       neither ftruncate nor chsize where such a call would be needed.
+
 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        PR fortran/33197