+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.