OSDN Git Service

2011-07-07 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / libgfortran / ChangeLog
index 8d53c6f..b7114e9 100644 (file)
@@ -1,3 +1,406 @@
+2011-07-07  Tobias Burnus  <burnus@net-b.de>
+
+       * libcaf.h (__attribute__, unlikely, likely): New macros.
+       (caf_register_t): Update comment.
+       (_gfortran_caf_register): Add stat, errmsg, errmsg_len arguments.
+       * single.c (_gfortran_caf_register): Ditto; add error diagnostics.
+       * mpi.c (_gfortran_caf_register): Ditto.
+       (caf_is_finalized): New global variable.
+       (_gfortran_caf_finalize): Use it.
+
+2011-07-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * runtime/memory.c (internal_malloc_size):  If size is zero,
+       allocate a single byte.
+       * m4/pack.m4 (pack_'rtype_code`):  Don't check for zero size
+       for the argument of internal_malloc_size.
+       * m4/spread.m4 (spread_'rtype_code`):  Likewise.
+       * m4/eoshift1.m4 (eoshift1):  Don't allocate twice.  Don't check
+       for zero size for the argument of internal_malloc_size.
+       * m4/eoshift3.m4: Don't check for zero size for the argument of
+       internal_malloc_size.
+       * intrinsics/pack_generic.c (pack_internal):  Likewise.
+       (pack_s_internal):  Likewise.
+       * intrinsics/cshift0.c (cshift0):  Likewise.
+       * intrinsics/spread_generic.c (spread_internal):  Likewise.
+       * intrinsics/eoshift0.c (eoshift0):  Likewise.
+       * intrinsics/eoshift2.c (eoshift2):  Likewise.
+       * 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/pack_c10.c: Regenerated.
+       * generated/pack_c16.c: Regenerated.
+       * generated/pack_c4.c: Regenerated.
+       * generated/pack_c8.c: Regenerated.
+       * generated/pack_i16.c: Regenerated.
+       * generated/pack_i1.c: Regenerated.
+       * generated/pack_i2.c: Regenerated.
+       * generated/pack_i4.c: Regenerated.
+       * generated/pack_i8.c: Regenerated.
+       * generated/pack_r10.c: Regenerated.
+       * generated/pack_r16.c: Regenerated.
+       * generated/pack_r4.c: Regenerated.
+       * generated/pack_r8.c: Regenerated.
+       * generated/spread_c10.c: Regenerated.
+       * generated/spread_c16.c: Regenerated.
+       * generated/spread_c4.c: Regenerated.
+       * generated/spread_c8.c: Regenerated.
+       * generated/spread_i16.c: Regenerated.
+       * generated/spread_i1.c: Regenerated.
+       * generated/spread_i2.c: Regenerated.
+       * generated/spread_i4.c: Regenerated.
+       * generated/spread_i8.c: Regenerated.
+       * generated/spread_r10.c: Regenerated.
+       * generated/spread_r16.c: Regenerated.
+       * generated/spread_r4.c: Regenerated.
+       * generated/spread_r8.c: Regenerated.
+
+2011-06-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/49479
+       * m4/reshape.m4: If source allocation is smaller than one, set it
+       to one.
+       * intrinsics/reshape_generic.c:  Likewise.
+       * generated/reshape_r16.c: Regenerated.
+       * generated/reshape_c4.c: Regenerated.
+       * generated/reshape_c16.c: Regenerated.
+       * generated/reshape_c8.c: Regenerated.
+       * generated/reshape_r4.c: Regenerated.
+       * generated/reshape_i4.c: Regenerated.
+       * generated/reshape_r10.c: Regenerated.
+       * generated/reshape_r8.c: Regenerated.
+       * generated/reshape_c10.c: Regenerated.
+       * generated/reshape_i8.c: Regenerated.
+       * generated/reshape_i16.c: Regenerated.
+
+2011-06-18  Janne Blomqvist  <jb@gcc.gnu.org>
+
+        PR libfortran/49296
+        * io/list_read.c (read_character): Accept EOF as a separator when
+        reading string.
+
+2011-06-17  Daniel Carrera  <dcarrera@gmail.com>
+
+       * caf/single.c (_gfortran_caf_register): Store the address
+       of all static coarrays in a linked list.
+       (_gfortran_caf_finalize): Free memory of staic coarrays.
+       * caf/mpi.c (_gfortran_caf_register): Store the address
+       of all static coarrays in a linked list. Initialize MPI
+       if necessary.
+       (_gfortran_caf_finalize): Free memory of staic coarrays.
+       (_gfortran_caf_init): Check if MPI is already initialized
+       before initializing again.
+       * caf/libcaf.h: Add a type to caf_register_t to distinguish
+       static coarrays and add the type caf_static_t to make the
+       linked list of static coarrays.
+
+2011-06-11  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * io/unix.c (buf_seek): Return error if file is not seekable.
+       (buf_tell): Call buf_seek.
+
+2011-06-11  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * io/unix.c (fd_to_stream): Figure out if a fd is seekable by
+       trying lseek().
+
+2011-06-10  Daniel Carrera  <dcarrera@gmail.com>
+
+       * caf/mpi.c (_gfortran_caf_sync_all,
+       _gfortran_caf_sync_images): Functions have void return type
+       and move status into parameter list.
+       * caf/single.c (_gfortran_caf_sync_all,
+       _gfortran_caf_sync_images): Functions have void return type
+       and move status into parameter list.
+       * caf/libcaf.h (_gfortran_caf_sync_all,
+       _gfortran_caf_sync_images): Functions have void return type
+       and move status into parameter list.
+
+2011-06-03  Richard Henderson  <rth@redhat.com>
+           Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/fpu-387.h [__sun__ && __svr4__] (sigill_hdlr): Correct
+       insn, insn size.
+       (has_sse) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
+
+2011-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/48931
+       * libgfortran.h (find_addr2line): New prototype.
+       * runtime/backtrace.c (show_backtrace): Use async-signal-safe
+       execve and stored path of addr2line.
+       * runtime/compile_options.c (maybe_find_addr2line): New function.
+       (set_options): Call maybe_find_addr2line if backtracing is enabled.
+       * runtime/main.c (find_addr2line): New function.
+       (init): Call find_addr2line if backtracing is enabled.
+       (cleanup): Free addr2line_path.
+
+2011-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/49214
+       * runtime/backtrace.c (fd_gets): Return NULL if nothing was read.
+
+2011-05-29  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/19155
+       * io/read.c (convert_real): Check for invalid input by comparing
+       endptr instead of EINVAL.
+       (read_f): Fixup floating point input without significand.
+
+2011-05-22  Tobias Burnus  <burnus@net-b.de>
+
+       * runtime/stop.c (stop_string,error_stop_string): Minor cleanup.
+
+2011-05-22  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/48931
+       * configure.ac: Check for backtrace_symbols_fd instead of
+       backtrace_symbols, check for readlink.
+       * config.h.in: Regenerated.
+       * configure: Regenerated.
+       * runtime/backtrace.c (local_strcasestr): Remove.
+       (bt_header): New function.
+       (dump_glibc_backtrace): Remove.
+       (fd_gets): New function.
+       (show_backtrace): Rework to use backtrace_symbols_fd and pipes
+       avoiding functions that are not async-signal-safe, reformat
+       output.
+       * runtime/main.c (store_exe_path): Try to check /proc/self/exe
+       first.
+
+2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
+           Uros Bizjak  <ubizjak@gmail.com>
+
+       PR libfortran/48977
+       * configure.host: Swap order of glibc and x86 tests.
+
+2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * config/fpu-387.h (set_fpu): Use renamed inexact macro.
+       * config/fpu-aix.h (set_fpu): Clarify error messages, use renamed
+       inexact macro, set TRP_INEXACT for inexact exception instead of
+       TRP_UNDERFLOW.
+       * config/fpu-generic.h (set_fpu): Clarify error messages, use
+       renamed inexact macro.
+       * config/fpu-glibc.h (set_fpu): Likewise.
+       * config/fpu-sysv.h (set_fpu): Likewise.
+
+2011-05-14  Tobias Burnus  <burnus@net-b.de>
+
+       * runtime/stop.c (error_stop_string, error_stop_numeric):
+       Do not backtrace for ERROR STOP.
+
+2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/48915
+       * intrinsics/abort.c (abort): Call sys_abort().
+       * io/unix.c (st_vprintf): Call sys_abort().
+       * libgfortran.h (options_t): Remove dump_core member.
+       (handler): Rename to backtrace_handler.
+       (compile_options_t): Remove dump_core member.
+       (sys_exit): Remove.
+       (sys_abort): New function.
+       * runtime/backtrace.c (show_backtrace): Print a message if
+       backtrace is not available on target, update filter symbol name
+       due to backtrace_handler renaming.
+       * runtime/compile_options.c (backtrace_handler): New
+       implementation based on example in Glibc manual.
+       (set_options): Remove dump_core handling, make signal handler
+       handle more signals.
+       (init_compile_options): Remove dump_core.
+       * runtime/environ.c (variable_table[]): Remove
+       GFORTRAN_ERROR_DUMPCORE element.
+       (show_variables): Update name, call exit().
+       * runtime/error.c (sys_exit): Remove.
+       (sys_abort): New function.
+       (recursion_check): Call sys_abort().
+       (os_error): Call exit().
+       (runtime_error): Likewise.
+       (runtime_error_at): Likewise.
+       (internal_error): Likewise.
+       (generate_error): Likewise.
+       (notify_std): Likewise.
+       * runtime/stop.c (stop_numeric): Call exit().
+       (stop_numeric_f08): Likewise.
+       (stop_string): Likewise.
+       (error_stop_string): Call sys_abort().
+       (error_stop_numeric): Print backtrace, exit with provided code.
+
+2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * io/unix.c (st_vprintf,st_printf): Move to runtime/error.c.
+       * libgfortran.h (struct options_t): Remove use_stderr field.
+       (st_vprintf,st_printf): Move prototypes.
+       (estr_write): New prototype.
+       * runtime/error.c (sys_exit): Use estr_write instead of st_printf.
+       (estr_write): New function.
+       (st_vprintf): Move from io/unix.c, use stack allocated buffer,
+       always output to stderr.
+       (st_printf): Move from io/unix.c.
+       (show_locus): Use a local variable instead of static.
+       (os_error): Use estr_write instead of st_printf.
+       (runtime_error): Likewise.
+       (runtime_error_at): Likewise.
+       (runtime_warning_at): Likewise.
+       (internal_error): Likewise.
+       (generate_error): Likewise.
+       (generate_warning): Likewise.
+       (notify_std): Likewise.
+       * runtime/pause.c (do_pause): Likewise.
+       (pause_string): Likewise.
+       * runtime/stop.c (stop_string): Likewise.
+       (error_stop_string): Likewise.
+       * config/fpu_aix.h (set_fpu): Likewise.
+       * config/fpu_generic.h (set_fpu): Likewise.
+       * config/fpu_glibc.h (set_fpu): Likewise.
+       * config/fpu-sysv.h (set_fpu): Likewise.
+       * runtime/backtrace.c (dump_glibc_backtrace): Likewise.
+       (show_backtrace): Likewise.
+       * runtime/environ.c (print_spaces): Likewise.
+       (show_string): Likewise.
+       (show_variables): Likewise.
+       (variable_table[]): Remove GFORTRAN_USE_STDERR entry.
+
+2011-05-14  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/48961
+       * intrinsics/execute_command_line.c (set_cmdstat): Don't abort if
+       synchronously executing with WAIT=.false.
+       (execute_command_line): Fix setting of cmdstat and exitstat.
+
+2011-05-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/18918
+       * caf/libcaf.h: Cleanup headers.
+       (_gfortran_caf_critical, _gfortran_caf_end_critical): Make stub.
+       (caf_register_t): New enum.
+       (_gfortran_caf_register, _gfortran_caf_deregister): New prototype.
+       * caf/single.c (_gfortran_caf_critical,
+       _gfortran_caf_end_critical): Remove.
+       (_gfortran_caf_register, _gfortran_caf_deregister): New functions.
+       * caf/mpi.c (_gfortran_caf_critical,
+       _gfortran_caf_end_critical): Remove.
+       (_gfortran_caf_register, _gfortran_caf_deregister): New functions.
+       (caf_world_window): Remove global variable.
+       (_gfortran_caf_init): Fix off-by-one error of this_image.
+
+2011-05-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/48787
+       * io/write_float.def (output_float): Adjust up and down rounding for
+       cases where 'd' = 0. Gather common code to one location.
+
+2011-05-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/48787
+       * io/write_float.def (output_float): Gather up integer declarations and
+       add new 'p' for scale factor. Use 'p' in place of the 'dtp' reference
+       everywhere. For ROUND_UP scan the digit string and only perform
+       rounding if something other than '0' is found.
+
+2011-04-29  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * io/unix.c (min): New macro.
+       (unpack_filename): Return errno number for errors.
+       (regular_file): Use appropriately sized buffer for path.
+       (compare_file_filename): Likewise.
+       (find_file): Likewise.
+       (delete_file): Likewise.
+       (file_exists): Likewise.
+       (file_size): Likewise.
+       (inquire_sequential): Likewise.
+       (inquire_direct): Likewise.
+       (inquire_formatted): Likewise.
+       (inquire_access): Likewise.
+
+2011-04-29  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libfortran/48488
+       * io/write.c (write_real, write_real_g0): Update comments.
+
+2011-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+           Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR libgfortran/48488
+       PR libgfortran/48602
+       PR libgfortran/48615
+       PR libgfortran/48684
+       PR libgfortran/48787
+       * io/write.c (write_d, write_e, write_f, write_en,
+       write_es): Add precision compemsation parameter to call.
+       (set_fnode_default): Adjust default widths to assure
+       round trip on write and read. (write_real): Adjust call to write_float.
+       (write_real_g0): Calculate compensation for extra precision and adjust
+       call to write_float.
+       * io/write_float.def (output_float_FMT_G_): Use volatile rather than
+       asm volatile to avoid optimization issue. Correctly calculate the
+       number of blanks (nb) to be appended and simplify calculation logic.
+       (write_float): Increase MIN_FIELD_WIDTH by one to accomodate the new
+       default widths. Eliminate the code that attempted to reduce the
+       the precision used in later sprintf functions.  Add call parameter to
+       compensate for extra precision.
+
+2011-04-20  Jim Meyering  <meyering@redhat.com>
+
+       * intrinsics/move_alloc.c (move_alloc): Remove useless
+       if-before-free test.
+       * io/fbuf.c (fbuf_destroy): Likewise.
+       * io/format.c (save_parsed_format): Likewise.
+       * io/open.c (already_open): Likewise.
+       * io/unit.c (free_internal_unit, close_unit_1): Likewise.
+       * io/unix.c (mem_close): Likewise.
+
+2011-04-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/48602
+       * io/write_float.def (output_float_FMT_G): Fix reversal in conditional.
+       Use asm volatile to mark temp variable, avoiding optimization errors.
+
+2011-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/48602
+       * io/write_float.def (output_float_FMT_G): Use current rounding mode
+       to set the rounding parameters. (output_float): Skip rounding
+       if value is zero.
+
+2011-04-16  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * intrinsics/date_and_time.c (date_and_time): Remove sprintf CPP
+       branch.
+       * io/format.c (format_error): Use snprintf instead of sprintf.
+       * io/list_read.c: Move snprintf fallback macro to libgfortran.h.
+       (convert_integer): Use snprintf instead of sprintf.
+       (parse_repeat): Likewise.
+       (read_logical): Likewise.
+       (read_integer): Likewise.
+       (read_character): Likewise.
+       (parse_real): Likewise.
+       (read_complex): Likewise.
+       (read_real): Likewise.
+       (check_type): Likewise.
+       (nml_parse_qualifier): Add string length argument, use snprintf
+       instead of sprintf.
+       (nml_get_obj_data): Use snprintf instead of sprintf.
+       * io/open.c (new_unit): Remove sprintf CPP branch, use snprintf
+       instead of sprintf.
+       * io/transfer.c (require_type): Use snprintf instead of sprintf.
+       * io/unix.c (tempfile): Likewise.
+       * io/write.c (nml_write_obj): Likewise.
+       * io/write_float.def (output_float): Remove sprintf CPP branch,
+       use snprintf instead of sprintf.
+       * libgfortran.h: Add fallback snprintf macro from io/list_read.c.
+       * runtime/backtrace.c (show_backtrace): Remove sprintf CPP branch.
+       * runtime/main.c (store_exe_path): Use snprintf instead of
+       sprintf.
+
+2011-04-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/48589
+       * io/write_float.def (write_infnan): Set width properly for G0.
+
 2011-04-15  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/18918