OSDN Git Service

Fix PR c++/42260
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
index 932c85e..1629152 100644 (file)
@@ -1,3 +1,915 @@
+2009-12-19  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * intrinsics/system_clock.c: Fix library name in comment, move TCK
+       definition into functions.
+       (system_clock_4): Remove unused struct timezone.
+       (system_clock_8): Remove unused struct timezone, increase TCK.
+
+2009-12-08  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/41711
+       * io/read.c (set_integer): Support kind=10 for reading
+       real/complex BOZ.
+
+2009-12-06  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/41478
+       PR fortran/42268
+       * intrinsics/pack_generic.c (pack): Add safety checks for the case that
+       'vector' is NULL.
+
+2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * Makefile.in: Regenerate.
+       * configure: Regenerate.
+
+2009-12-04  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/40812
+       * libgfortran.h: typedef gfc_offset differently for MinGW.
+       * io/unix.h (struct stream): Change function pointers to use
+       gfc_offset instead of off_t.
+       (sseek): Change prototype to use gfc_offset instead of off_t.
+       (stell): Likewise.
+       (struncate): Likewise.
+       * io/unix.c: Redefine lseek() for mingw.
+       (raw_seek): Use gfc_offset instead of off_t.
+       (raw_tell): Likewise.
+       (buf_seek): Likewise.
+       (buf_tell): Likewise.
+       (buf_truncate): Likewise.
+       (mem_seek): Likewise.
+       (mem_tell): Likewise.
+       (mem_truncate): Likewise.
+       (fd_to_stream): Likewise.
+       (file_length): Likewise.
+       (raw_truncate): Use gfc_offset instead of off_t, add large file
+       capable implementation for MinGW.
+
+2009-11-30  Janus Weil  <janus@gcc.gnu.org>
+
+       * gfortran.map: Add _gfortran_is_extension_of.
+       * Makefile.am: Add intrinsics/extends_type_of.c.
+       * Makefile.in: Regenerated.
+       * intrinsics/extends_type_of.c: New file. 
+
+2009-11-30  Kai Tietz  <Kai.Tietz@onevision.com>
+
+       * io/unix.c (find_file): Add variable id conditionally for
+       mingw targets.
+
+2009-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * intrinsics/pack_generic.c (pack_internal): Remove unused
+       zero_sized variable.
+       * intrinsics/unpack_generic.c (unpack0): Remove unused size
+       variable.
+       * io/write.c (namelist_write_newline): Remove unused length
+       variable.
+       * io/unix.c (find_file): Remove unused id variable.
+       * m4/ifunction.m4 (SCALAR_ARRAY_FUNCTION): Remove unused sstride
+       variable.
+       * 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.
+
+2009-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * io/fbuf.h: Move includes after include guard.
+       * io/format.h: Likewise.
+       * io/unix.h: Likewise.
+
+2009-11-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/42090
+       * io/transfer.c (skip_record): Set bytes_left_subrecord to zero after
+       skipping the remaining bytes in the record.
+       (next_record_r): Call skip_record with the number of bytes_left to be
+       skipped.
+
+2009-11-02  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * Makefile.am (gfor_io_headers): Add fbuf.h, format.h, unix.h.
+       * Makefile.in: Regenerated.
+       * io/fbuf.h: New file.
+       * io/format.h: New file.
+       * io/unix.h: New file.
+       * io/io.h (struct stream): Move to unix.h, add forward declaration.
+       (sread): Likewise.
+       (swrite): Likewise.
+       (sseek): Likewise.
+       (stell): Likewise.
+       (struncate): Likewise.
+       (sflush): Likewise.
+       (sflush): Likewise.
+       (sclose): Likewise.
+       (compared_files): Move prototype to unix.h.
+       (open_external): Likewise.
+       (open_internal): Likewise.
+       (mem_alloc_w): Likewise.
+       (mem_alloc_r): Likewise.
+       (input_stream): Likewise.
+       (output_stream): Likewise.
+       (error_stream): Likewise.
+       (compare_file_filename): Likewise.
+       (find_file): Likewise.
+       (delete_file): Likewise.
+       (file_exists): Likewise.
+       (inquire_sequential): Likewise.
+       (inquire_direct): Likewise.
+       (inquire_formatted): Likewise.
+       (inquire_unformatted): Likewise.
+       (inquire_read): Likewise.
+       (inquire_write): Likewise.
+       (inquire_readwrite): Likewise.
+       (file_length): Likewise.
+       (is_seekable): Likewise.
+       (is_special): Likewise.
+       (flush_if_preconnected): Likewise.
+       (empty_internal_buffer): Likewise.
+       (stream_isatty): Likewise.
+       (stream_ttyname): Likewise.
+       (unpack_filename): Likewise.
+       (struct fbuf): Move to fbuf.h, add forward declaration.
+       (fbuf_init): Move prototype to fbuf.h.
+       (fbuf_destroy): Likewise.
+       (fbuf_reset): Likewise.
+       (fbuf_alloc): Likewise.
+       (fbuf_flush): Likewise.
+       (fbuf_seek): Likewise.
+       (fbuf_read): Likewise.
+       (fbuf_getc_refill): Likewise.
+       (fbuf_getc): Move inline function to fbuf.h.
+       (enum format_token): Move to format.h.
+       (struct fnode): Move to format.h, add forward declaration.
+       (parse_format): Move prototype to format.h.
+       (next_format): Likewise.
+       (unget_format): Likewise.
+       (format_error): Likewise.
+       (free_format_data): Likewise.
+       (free_format_hash_table): Likewise.
+       (init_format_hash): Likewise.
+       (free_format_hash): Likewise.
+       * io/close.c: Include unix.h.
+       * io/fbuf.c: Include fbuf.h and unix.h.
+       * io/file_pos.c: Include fbuf.h and unix.h.
+       * io/format.c: Include format.h.
+       * io/inquire.c: Include unix.h.
+       * io/intrinsics.c: Include fbuf.h and unix.h.
+       * io/list_read.c: Include fbuf.h and unix.h.
+       * io/open.c: Include fbuf.h and unix.h.
+       * io/read.c: Include format.h.
+       * io/transfer.c: Include fbuf.h, format.h, and unix.h.
+       * io/unit.c: Likewise.
+       * io/unix.c: Include unix.h.
+       * io/write.c: Include format.h and unix.h.
+
+2009-10-31  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/41219
+       * intrinsics/unpack_generic.c (unpack_internal): Remove unused
+       argument from prototype.
+       (unpack1): Update unpack_internal call.
+       (unpack1_char): Likewise.
+       (unpack1_char4): Likewise.
+       (unpack0): Likewise.
+       (unpack0_char): Likewise.
+       (unpack0_char4): Likewise.
+       * intrinsics/iso_c_binding.c (c_f_pointer_u0): Get rid of
+       uninitialized variable warning.
+
+2009-10-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/41711
+       * libgfortran.h: Define larger sizes for BOZ conversion buffers.
+       * io/write.c (extract_uint): Include case where size is 10 if integer
+       is large enough. (write_int): Rename to write_boz. (write_boz): Factor
+       out extract_uint and delete the conversion function.
+       (btoa_big): New binary conversion function.
+       (otoa_big): New octal conversion function.
+       (ztoa_big): New hexidecimal conversion function.
+       (write_b): Modify to use new function.
+       (write_o): Likewise.
+       (write_z): Likewise.
+
+2009-10-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/41683
+       * io/format.c (parse_format_list): Allow a repeat specifier immediately
+       after a P specifier.
+       
+2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/38439
+       * io/format.c (parse_format_list): Correct logic for FMT_F reading vs
+       writing. Code clean-up.
+
+2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/38439
+       * io/format.c (parse_format_list): Add check for tokens not allowed
+       after P specifier. Fix comments.  Remove un-needed code. Fix the
+       default exponent list. Correct pointer assignment error.
+
+2009-10-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/35862
+       * write_float.def (outout_float): Fix handling of special case where no
+       digits after the decimal point and values less than 1.0. Adjust index
+       into digits string. (WRITE_FLOAT): Remove special case code from macro.
+
+2009-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/35862
+       * io.h (gfc_unit): Add round_status.
+       (format_token): Add enumerators for rounding format specifiers.
+       * transfer.c (round_opt): New options table.
+       (formatted_transfer_scalar_read): Add set round_status for each rounding
+       format token. (formatted_transfer_scalar_write): Likewise.
+       * format.c (format_lex): Tokenize the rounding format specifiers.
+       (parse_format_list): Parse the rounding format specifiers.
+       * write_float.def (outout_float): Modify rounding code to use new
+       variable rchar to set the appropriate rounding. Fix some whitespace.
+       * unit.c (get_internal_unit): Initialize rounding mode for internal
+       units. (init_units): Likewise.
+
+2009-09-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
+
+       * configure.ac: Check for GFORTRAN_C99_1.1 funcs in OS libm.
+        * configure: Regenerate.
+        * config.h.in: Ditto.
+
+2009-09-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/41328
+       * io/transfer.c (read_sf): Set at_eof flag on short read if any
+       characters were successfully read so that EOF condition with no EOR
+       marker succeeds.
+
+2009-09-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/41328
+       * io/transfer.c (read_sf): Adjust fbuf position and do proper
+       fbuf reads to traverse CR, CR-LF, and LF style line ends.
+
+2009-09-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/41219
+       * io/write.c (write_a_char4): Use correct type for crlf constant.
+
+2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * Makefile.am (libgfortranbegin_la_LINK): New.
+       * Makefile.in: Regenerate.
+
+2009-09-09  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure: Regenerate.
+
+2009-09-08  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure: Regenerate.
+
+2009-09-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/41192
+       * io/list_read.c (eat_line): Enable eat_line to function on
+       internal units.
+
+       PR libgfortran/41219
+       * io/list_read.c (nml_read_obj): Replace GFC_DTYPE_UNKNOWN with
+       BT_NULL to get rid of warning.
+       
+2009-09-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/41219
+       * intrinsics/getlog.c: Define _POSIX for MINGW32.
+
+2009-09-03  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/41219
+       * intrinsics/iso_c_binding.c (c_f_pointer_u0): Move variable
+       declaration out of the loop.
+
+2009-08-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * m4/pack.m4 (pack_'rtype_code`): Use count_0 for counting true
+       values in a logical array.  Mark bounds checking tests as
+       unlikely.
+       * intrinsics/pack_generic.c (pack_internal): Likewise.
+       * runtime/bounds.c (count_0):  Fix off-by-one error in detecting
+       empty arrays.
+       * generated/pack_c4.c: Regenerated.
+       * generated/pack_c8.c: Regenerated.
+       * generated/pack_c10.c: Regenerated.
+       * generated/pack_c16.c: Regenerated.
+       * generated/pack_i1.c: Regenerated.
+       * generated/pack_i16.c: Regenerated.
+       * generated/pack_i2.c: Regenerated.
+       * generated/pack_i4.c: Regenerated.
+       * generated/pack_i8.c: Regenerated.
+       * generated/pack_r4.c: Regenerated.
+       * generated/pack_r8.c: Regenerated.
+       * generated/pack_r10.c: Regenerated.
+       * generated/pack_r16.c: Regenerated.
+
+2009-08-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/34670
+       * runtime/bounds.c (count_0):  New function.
+       * intrinsics/unpack_generic (unpack_bounds):  New function.
+       (unpack_internal):  Remove zero stride checks.
+       (unpack1):  Use unpack_bounds.
+       (unpack1_char):  Likeweise.
+       (unpack1_char4):  Likewise
+       (unpack0):  Likewise.
+       (unpack0_char):  Likewise.
+       (unpack0_char4):  Likewise.
+
+2009-08-24  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/41157
+       * dtime.c (dtime_sub): Fix computing time increment.
+       * time_1.h: Add <sys/types.h> header.  Use RUSAGE_SELF macro instead
+       of a hardcoded 0.
+
+2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * configure.ac (AC_PREREQ): Bump to 2.64.
+
+2009-08-23  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * intrinsics/cshift0.c: Update license to GPL3+exception.
+       * runtime/fpu.c: Add a GPL3+exception statement.
+
+2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * Makefile.am (install-html, install-pdf): Remove.
+       * Makefile.in: Regenerate.
+
+       * Makefile.in: Regenerate.
+       * aclocal.m4: Regenerate.
+       * config.h.in: Regenerate.
+       * configure: Regenerate.
+
+2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
+       * Makefile.in: Regenerate.
+
+2009-08-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/40962
+       * iso_c_binding.c (c_f_pointer_u0):  Multiply stride by
+       previous stride.
+
+2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * Makefile.am (LTLDFLAGS): Add -bindir flag.
+       * Makefile.in: Regenerate.
+
+2009-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/41075
+       * io/io.h (enum format_token): Add FMT_STAR.
+       * io/format.c (format_lex): Add case for FMT_STAR.
+       (parse_format_list): Parse FMT_STAR and check for left paren
+       after. (next_format0): Modify helper function to check for
+       unimited format and return the repeated format node.  Update
+       comments to clarify.
+       
+2009-08-15  Kai Tietz  <kai.tietz@onevision.com>
+
+       * intrinsics/string_intrinsics_inc.c (string_len_trim): Use
+       __INTPTR_TYPE__ to cast from pointer to scalar integer, if
+       __INTPTR_TYPE is defined.
+
+2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * fmain.c: Add comment saying file is deprecated.
+
+2009-08-14  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/40863
+       * gfortran.map: Move new symbols to GFORTRAN_C99_1.1 version node.
+
+2009-08-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+       PR libfortran/40549
+       * Makefile.in (LTLDFLAGS): Add -no-undefined.
+       * Makefile.am: Regenerate.
+       * libgfortran.h: Remove unused block of code.
+
+2009-08-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/40853
+       * io/list_read.c (nml_get_obj_data): Do not set nl
+       pointer to first_nl if nl->next is NULL.
+
+2009-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * Makefile.am: Don't set SECTION_FLAGS with @SECTION_FLAGS@.
+       Don't set IEEE_FLAGS with @IEEE_FLAGS@.
+       * Makefile.in: Regenerate.
+
+2009-07-30  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * configure.host: Define ieee_flags and set it to -mieee for sh.
+       * configure.ac: Set IEEE_FLAGS with ieee_flags.
+       * Makefile.am: Add IEEE_FLAGS to AM_CFLAGS.
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+
+2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
+
+2009-07-27  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40863
+       * c99_functions.c: Define complex I, if not defined.
+       Create prototypes for C99 functions to silence warnings.
+       * gfortran.map: Add missing functions to GFORTRAN_C99_1.0
+       and new GFORTRAN_C99_1.1.
+
+2009-07-25  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/33197
+       * intrinsics/c99_functions.c (cacosf,cacos,cacosl,casinf,
+       casin,casind,catanf,catan,catanl,cacoshf,cacosh,cacoshl,
+       casinhf,casinh,casinhf,catanhf,catanh,catanhl): New functions.
+       * c99_protos.h: Add prototypes for those.
+
+2009-07-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/40643
+       PR fortran/31067
+       * libgfortran.h (GFC_REAL_4_INFINITY, GFC_REAL_8_INFINITY,
+       GFC_REAL_10_INFINITY, GFC_REAL_16_INFINITY, GFC_REAL_4_QUIET_NAN,
+       GFC_REAL_8_QUIET_NAN, GFC_REAL_10_QUIET_NAN, GFC_REAL_16_QUIET_NAN):
+       Define.
+       * m4/iparm.m4 (atype_inf, atype_nan): Define.
+       * m4/ifunction.m4: Formatting.
+       * m4/iforeach.m4: Likewise.
+       (START_FOREACH_FUNCTION): Initialize dest to all 1s, not all 0s.
+       (START_FOREACH_BLOCK, FINISH_FOREACH_FUNCTION,
+       FINISH_MASKED_FOREACH_FUNCTION): Run foreach block inside a loop
+       until count[0] == extent[0].
+       * m4/minval.m4: Formatting.  Handle NaNs and infinities.  Optimize.
+       * m4/maxval.m4: Likewise.
+       * m4/minloc0.m4: Likewise.
+       * m4/maxloc0.m4: Likewise.
+       * m4/minloc1.m4: Likewise.
+       * m4/maxloc1.m4: Likewise.
+       * generated/maxloc0_16_i16.c: Regenerated.
+       * generated/maxloc0_16_i1.c: Likewise.
+       * generated/maxloc0_16_i2.c: Likewise.
+       * generated/maxloc0_16_i4.c: Likewise.
+       * generated/maxloc0_16_i8.c: Likewise.
+       * generated/maxloc0_16_r10.c: Likewise.
+       * generated/maxloc0_16_r16.c: Likewise.
+       * generated/maxloc0_16_r4.c: Likewise.
+       * generated/maxloc0_16_r8.c: Likewise.
+       * generated/maxloc0_4_i16.c: Likewise.
+       * generated/maxloc0_4_i1.c: Likewise.
+       * generated/maxloc0_4_i2.c: Likewise.
+       * generated/maxloc0_4_i4.c: Likewise.
+       * generated/maxloc0_4_i8.c: Likewise.
+       * generated/maxloc0_4_r10.c: Likewise.
+       * generated/maxloc0_4_r16.c: Likewise.
+       * generated/maxloc0_4_r4.c: Likewise.
+       * generated/maxloc0_4_r8.c: Likewise.
+       * generated/maxloc0_8_i16.c: Likewise.
+       * generated/maxloc0_8_i1.c: Likewise.
+       * generated/maxloc0_8_i2.c: Likewise.
+       * generated/maxloc0_8_i4.c: Likewise.
+       * generated/maxloc0_8_i8.c: Likewise.
+       * generated/maxloc0_8_r10.c: Likewise.
+       * generated/maxloc0_8_r16.c: Likewise.
+       * generated/maxloc0_8_r4.c: Likewise.
+       * generated/maxloc0_8_r8.c: Likewise.
+       * generated/maxloc1_16_i16.c: Likewise.
+       * generated/maxloc1_16_i1.c: Likewise.
+       * generated/maxloc1_16_i2.c: Likewise.
+       * generated/maxloc1_16_i4.c: Likewise.
+       * generated/maxloc1_16_i8.c: Likewise.
+       * generated/maxloc1_16_r10.c: Likewise.
+       * generated/maxloc1_16_r16.c: Likewise.
+       * generated/maxloc1_16_r4.c: Likewise.
+       * generated/maxloc1_16_r8.c: Likewise.
+       * generated/maxloc1_4_i16.c: Likewise.
+       * generated/maxloc1_4_i1.c: Likewise.
+       * generated/maxloc1_4_i2.c: Likewise.
+       * generated/maxloc1_4_i4.c: Likewise.
+       * generated/maxloc1_4_i8.c: Likewise.
+       * generated/maxloc1_4_r10.c: Likewise.
+       * generated/maxloc1_4_r16.c: Likewise.
+       * generated/maxloc1_4_r4.c: Likewise.
+       * generated/maxloc1_4_r8.c: Likewise.
+       * generated/maxloc1_8_i16.c: Likewise.
+       * generated/maxloc1_8_i1.c: Likewise.
+       * generated/maxloc1_8_i2.c: Likewise.
+       * generated/maxloc1_8_i4.c: Likewise.
+       * generated/maxloc1_8_i8.c: Likewise.
+       * generated/maxloc1_8_r10.c: Likewise.
+       * generated/maxloc1_8_r16.c: Likewise.
+       * generated/maxloc1_8_r4.c: Likewise.
+       * generated/maxloc1_8_r8.c: Likewise.
+       * generated/maxval_i16.c: Likewise.
+       * generated/maxval_i1.c: Likewise.
+       * generated/maxval_i2.c: Likewise.
+       * generated/maxval_i4.c: Likewise.
+       * generated/maxval_i8.c: Likewise.
+       * generated/maxval_r10.c: Likewise.
+       * generated/maxval_r16.c: Likewise.
+       * generated/maxval_r4.c: Likewise.
+       * generated/maxval_r8.c: Likewise.
+       * generated/minloc0_16_i16.c: Likewise.
+       * generated/minloc0_16_i1.c: Likewise.
+       * generated/minloc0_16_i2.c: Likewise.
+       * generated/minloc0_16_i4.c: Likewise.
+       * generated/minloc0_16_i8.c: Likewise.
+       * generated/minloc0_16_r10.c: Likewise.
+       * generated/minloc0_16_r16.c: Likewise.
+       * generated/minloc0_16_r4.c: Likewise.
+       * generated/minloc0_16_r8.c: Likewise.
+       * generated/minloc0_4_i16.c: Likewise.
+       * generated/minloc0_4_i1.c: Likewise.
+       * generated/minloc0_4_i2.c: Likewise.
+       * generated/minloc0_4_i4.c: Likewise.
+       * generated/minloc0_4_i8.c: Likewise.
+       * generated/minloc0_4_r10.c: Likewise.
+       * generated/minloc0_4_r16.c: Likewise.
+       * generated/minloc0_4_r4.c: Likewise.
+       * generated/minloc0_4_r8.c: Likewise.
+       * generated/minloc0_8_i16.c: Likewise.
+       * generated/minloc0_8_i1.c: Likewise.
+       * generated/minloc0_8_i2.c: Likewise.
+       * generated/minloc0_8_i4.c: Likewise.
+       * generated/minloc0_8_i8.c: Likewise.
+       * generated/minloc0_8_r10.c: Likewise.
+       * generated/minloc0_8_r16.c: Likewise.
+       * generated/minloc0_8_r4.c: Likewise.
+       * generated/minloc0_8_r8.c: Likewise.
+       * generated/minloc1_16_i16.c: Likewise.
+       * generated/minloc1_16_i1.c: Likewise.
+       * generated/minloc1_16_i2.c: Likewise.
+       * generated/minloc1_16_i4.c: Likewise.
+       * generated/minloc1_16_i8.c: Likewise.
+       * generated/minloc1_16_r10.c: Likewise.
+       * generated/minloc1_16_r16.c: Likewise.
+       * generated/minloc1_16_r4.c: Likewise.
+       * generated/minloc1_16_r8.c: Likewise.
+       * generated/minloc1_4_i16.c: Likewise.
+       * generated/minloc1_4_i1.c: Likewise.
+       * generated/minloc1_4_i2.c: Likewise.
+       * generated/minloc1_4_i4.c: Likewise.
+       * generated/minloc1_4_i8.c: Likewise.
+       * generated/minloc1_4_r10.c: Likewise.
+       * generated/minloc1_4_r16.c: Likewise.
+       * generated/minloc1_4_r4.c: Likewise.
+       * generated/minloc1_4_r8.c: Likewise.
+       * generated/minloc1_8_i16.c: Likewise.
+       * generated/minloc1_8_i1.c: Likewise.
+       * generated/minloc1_8_i2.c: Likewise.
+       * generated/minloc1_8_i4.c: Likewise.
+       * generated/minloc1_8_i8.c: Likewise.
+       * generated/minloc1_8_r10.c: Likewise.
+       * generated/minloc1_8_r16.c: Likewise.
+       * generated/minloc1_8_r4.c: Likewise.
+       * generated/minloc1_8_r8.c: Likewise.
+       * generated/minval_i16.c: Likewise.
+       * generated/minval_i1.c: Likewise.
+       * generated/minval_i2.c: Likewise.
+       * generated/minval_i4.c: Likewise.
+       * generated/minval_i8.c: Likewise.
+       * generated/minval_r10.c: Likewise.
+       * generated/minval_r16.c: Likewise.
+       * generated/minval_r4.c: Likewise.
+       * generated/minval_r8.c: Likewise.
+       * generated/product_c10.c: Likewise.
+       * generated/product_c16.c: Likewise.
+       * generated/product_c4.c: Likewise.
+       * generated/product_c8.c: Likewise.
+       * generated/product_i16.c: Likewise.
+       * generated/product_i1.c: Likewise.
+       * generated/product_i2.c: Likewise.
+       * generated/product_i4.c: Likewise.
+       * generated/product_i8.c: Likewise.
+       * generated/product_r10.c: Likewise.
+       * generated/product_r16.c: Likewise.
+       * generated/product_r4.c: Likewise.
+       * generated/product_r8.c: Likewise.
+       * generated/sum_c10.c: Likewise.
+       * generated/sum_c16.c: Likewise.
+       * generated/sum_c4.c: Likewise.
+       * generated/sum_c8.c: Likewise.
+       * generated/sum_i16.c: Likewise.
+       * generated/sum_i1.c: Likewise.
+       * generated/sum_i2.c: Likewise.
+       * generated/sum_i4.c: Likewise.
+       * generated/sum_i8.c: Likewise.
+       * generated/sum_r10.c: Likewise.
+       * generated/sum_r16.c: Likewise.
+       * generated/sum_r4.c: Likewise.
+       * generated/sum_r8.c: Likewise.
+
+2009-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/32784
+       * unix.c (regular_file): Check for CONIN$ CONOUT$, and CONERR$ and open
+       the respective /dev/conin or /dev/conout devices.  This is Cygwin
+       specific.
+
+2009-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR libfortran/34670
+       PR libfortran/36874
+       * Makefile.am:  Add bounds.c
+       * libgfortran.h (bounds_equal_extents):  Add prototype.
+       (bounds_iforeach_return):  Likewise.
+       (bounds_ifunction_return):  Likewise.
+       (bounds_reduced_extents):  Likewise.
+       * runtime/bounds.c:  New file.
+       (bounds_iforeach_return):  New function; correct typo in
+       error message.
+       (bounds_ifunction_return):  New function.
+       (bounds_equal_extents):  New function.
+       (bounds_reduced_extents):  Likewise.
+       * intrinsics/cshift0.c (cshift0):  Use new functions
+       for bounds checking.
+       * intrinsics/eoshift0.c (eoshift0):  Likewise.
+       * intrinsics/eoshift2.c (eoshift2):  Likewise.
+       * m4/iforeach.m4:  Likewise.
+       * m4/eoshift1.m4:  Likewise.
+       * m4/eoshift3.m4:  Likewise.
+       * m4/cshift1.m4:  Likewise.
+       * m4/ifunction.m4:  Likewise.
+       * Makefile.in:  Regenerated.
+       * generated/cshift1_16.c: Regenerated.
+       * generated/cshift1_4.c: Regenerated.
+       * generated/cshift1_8.c: Regenerated.
+       * generated/eoshift1_16.c: Regenerated.
+       * generated/eoshift1_4.c: Regenerated.
+       * generated/eoshift1_8.c: Regenerated.
+       * generated/eoshift3_16.c: Regenerated.
+       * generated/eoshift3_4.c: Regenerated.
+       * generated/eoshift3_8.c: Regenerated.
+       * generated/maxloc0_16_i1.c: Regenerated.
+       * generated/maxloc0_16_i16.c: Regenerated.
+       * generated/maxloc0_16_i2.c: Regenerated.
+       * generated/maxloc0_16_i4.c: Regenerated.
+       * generated/maxloc0_16_i8.c: Regenerated.
+       * generated/maxloc0_16_r10.c: Regenerated.
+       * generated/maxloc0_16_r16.c: Regenerated.
+       * generated/maxloc0_16_r4.c: Regenerated.
+       * generated/maxloc0_16_r8.c: Regenerated.
+       * generated/maxloc0_4_i1.c: Regenerated.
+       * generated/maxloc0_4_i16.c: Regenerated.
+       * generated/maxloc0_4_i2.c: Regenerated.
+       * generated/maxloc0_4_i4.c: Regenerated.
+       * generated/maxloc0_4_i8.c: Regenerated.
+       * generated/maxloc0_4_r10.c: Regenerated.
+       * generated/maxloc0_4_r16.c: Regenerated.
+       * generated/maxloc0_4_r4.c: Regenerated.
+       * generated/maxloc0_4_r8.c: Regenerated.
+       * generated/maxloc0_8_i1.c: Regenerated.
+       * generated/maxloc0_8_i16.c: Regenerated.
+       * generated/maxloc0_8_i2.c: Regenerated.
+       * generated/maxloc0_8_i4.c: Regenerated.
+       * generated/maxloc0_8_i8.c: Regenerated.
+       * generated/maxloc0_8_r10.c: Regenerated.
+       * generated/maxloc0_8_r16.c: Regenerated.
+       * generated/maxloc0_8_r4.c: Regenerated.
+       * generated/maxloc0_8_r8.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/minloc0_16_i1.c: Regenerated.
+       * generated/minloc0_16_i16.c: Regenerated.
+       * generated/minloc0_16_i2.c: Regenerated.
+       * generated/minloc0_16_i4.c: Regenerated.
+       * generated/minloc0_16_i8.c: Regenerated.
+       * generated/minloc0_16_r10.c: Regenerated.
+       * generated/minloc0_16_r16.c: Regenerated.
+       * generated/minloc0_16_r4.c: Regenerated.
+       * generated/minloc0_16_r8.c: Regenerated.
+       * generated/minloc0_4_i1.c: Regenerated.
+       * generated/minloc0_4_i16.c: Regenerated.
+       * generated/minloc0_4_i2.c: Regenerated.
+       * generated/minloc0_4_i4.c: Regenerated.
+       * generated/minloc0_4_i8.c: Regenerated.
+       * generated/minloc0_4_r10.c: Regenerated.
+       * generated/minloc0_4_r16.c: Regenerated.
+       * generated/minloc0_4_r4.c: Regenerated.
+       * generated/minloc0_4_r8.c: Regenerated.
+       * generated/minloc0_8_i1.c: Regenerated.
+       * generated/minloc0_8_i16.c: Regenerated.
+       * generated/minloc0_8_i2.c: Regenerated.
+       * generated/minloc0_8_i4.c: Regenerated.
+       * generated/minloc0_8_i8.c: Regenerated.
+       * generated/minloc0_8_r10.c: Regenerated.
+       * generated/minloc0_8_r16.c: Regenerated.
+       * generated/minloc0_8_r4.c: Regenerated.
+       * generated/minloc0_8_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.
+
+2009-07-17  Janne Blomqvist  <jb@gcc.gnu.org>
+           Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+               
+       PR libfortran/40714
+       * io/transfer.c (finalize_transfer): Set current_record to 0
+       before returning in case of error.
+
 2009-07-12  Tobias Burnus  <burnus@net-b.de>
 
        PR libfortran/22423