summaryrefslogtreecommitdiffstats
path: root/libgfortran
Commit message (Collapse)AuthorAgeFilesLines
...
* 2013-07-21 Tobias Burnus <burnus@net-b.de>burnus2013-07-2114-88/+452
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/35862 * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST, GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines. 2013-07-21 Tobias Burnus <burnus@net-b.de> PR fortran/35862 * libgfortran.h (set_fpu_rounding_mode, get_fpu_rounding_mode): New prototypes. * config/fpu-387.h (set_fpu_rounding_mode, get_fpu_rounding_mode): New functions. * config/fpu-aix.h (set_fpu_rounding_mode, get_fpu_rounding_mode): Ditto. * config/fpu-generic.h (set_fpu_rounding_mode, get_fpu_rounding_mode): Ditto. * config/fpu-glibc.h (set_fpu_rounding_mode, get_fpu_rounding_mode): Ditto. * config/fpu-sysv.h (set_fpu_rounding_mode, get_fpu_rounding_mode): Ditto. * configure.ac: Check for fp_rnd and fp_rnd_t. * io/io.h (enum unit_round): Use GFC_FPE_* for the value. * io/read.c (convert_real): Set FP ronding mode. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. 2013-07-21 Tobias Burnus <burnus@net-b.de> PR fortran/35862 * gfortran.dg/round_4.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201093 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-24 Steve Ellcey <sellcey@mips.com>sje2013-06-242-15/+63
| | | | | | | | * configure.ac (AC_CHECK_FUNCS_ONCE): Put into if statement. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200374 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-24 Tobias Burnus <burnus@net-b.de>burnus2013-06-245-0/+41
| | | | | | | | | | | * configure.ac: Check for fp_except and fp_except_t. * config/fpu-sysv.h: Conditionally use either type. * configure: Regenerate. * config.h.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200360 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/fpu-sysv.h (get_fpu_except_flags): Fix typo.ebotcazou2013-06-212-2/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200298 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog: Add some missing lines.uros2013-06-201-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200256 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/fpu-387.h (_FPU_MASK_ALL): New.uros2013-06-202-30/+39
| | | | | | | | | | | | (_FPU_EX_ALL): Ditto. (set_fpu): Use fstcw to store x87 FPU control word. Use fnclex to clear stalled exception flags. Correctly clear stalled SSE exception flags. Simplify code. (get_fpu_except_flags): Simplify code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200255 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-20 Tobias Burnus <burnus@net-b.de>burnus2013-06-202-2/+6
| | | | | | | | | | | | | | PR fortran/57633 * io/list_read.c (next_char, eat_separator): Don't set EOL for \r. 2013-06-20 Tobias Burnus <burnus@net-b.de> PR fortran/57633 * gfortran.dg/list_read_11.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200238 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/fpu-387.h: Use __asm__ and __volatile__ consistently.uros2013-06-192-23/+19
| | | | | | | | (get_fpu_except_flags): Initialize result. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200187 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-17 Tobias Burnus <burnus@net-b.de>burnus2013-06-1712-13/+255
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gfortran.h (gfc_option_t): Add fpe_summary. * gfortran.texi (_gfortran_set_options): Update. * invoke.texi (-ffpe-summary): Add doc. * lang.opt (ffpe-summary): Add flag. * options.c (gfc_init_options, gfc_handle_option): Handle it. (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option, also handle fpe_summary. * trans-decl.c (create_main_function): Update _gfortran_set_options call. 2013-06-17 Tobias Burnus <burnus@net-b.de> * libgfortran.h (compile_options_t) Add fpe_summary. (get_fpu_except_flags): New prototype. * runtime/compile_options.c (set_options, init_compile_options): Handle fpe_summary. * runtime/stop.c (report_exception): New function. (stop_numeric, stop_numeric_f08, stop_string, error_stop_string, error_stop_numeric): Call it. * config/fpu-387.h (get_fpu_except_flags): New function. * config/fpu-aix.h (get_fpu_except_flags): New function. * config/fpu-generic.h (get_fpu_except_flags): New function. * config/fpu-glibc.h (get_fpu_except_flags): New function. * config/fpu-glibc.h (get_fpu_except_flags): New function. * configure.ac: Check for fpxcp.h. * configure: Regenerate. * config.h.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200147 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-06-01 Tobias Burnus <burnus@net-b.de>burnus2013-06-032-20/+56
| | | | | | | | | | | | | PR fortran/57496 * io/write_float.def (ISFINITE2Q, ISFINITE2, ISFINITE2L, * ISFINITE, SIGNBIT2Q, SIGNBIT2, SIGNBIT2L, SIGNBIT, ISNAN2Q, ISNAN2, ISNAN2L, ISNAN): New macros. (output_float_FMT_G_,WRITE_FLOAT): Use them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199598 138bc75d-0d04-0410-961f-82ee72b054a4
* Use -z ignore instead of --as-needed on Solarisro2013-05-243-10/+67
| | | | | | | * acinclude.m4 (libgfor_cv_have_as_needed): Check for -z ignore, too. * configure: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199285 138bc75d-0d04-0410-961f-82ee72b054a4
* * caf/libcaf.h (_gfortran_caf_critical): Add a prototype.dje2013-05-052-0/+8
| | | | | | | (_gfortran_caf_end_critical): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198613 138bc75d-0d04-0410-961f-82ee72b054a4
* * runtime/environ.c: Include unistd.h.dje2013-05-047-0/+30
| | | | | | | | | | | * runtime/pause.c: Test HAVE_UNISTD_H. * runtime/stop.c: Same. * io/open.c: Same. * io/unix.c: Same. * io/read.c (si_max): Protect declaration of value. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198603 138bc75d-0d04-0410-961f-82ee72b054a4
* Simplify SYSTEM_CLOCK implementation.jb2013-04-292-57/+41
| | | | | | | | | | | | 2013-04-29 Janne Blomqvist <jb@gcc.gnu.org> * intrinsics/system_clock (gf_gettime_mono): Use variable resolution for fractional seconds argument. (system_clock_4): Simplify, update for gf_gettime_mono change. (system_clock_8): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198391 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 56981 Improve unbuffered performance on special files.jb2013-04-294-21/+64
| | | | | | | | | | | | | | | | | | | | 2013-04-29 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/56981 * io/transfer.c (next_record_w_unf): First fix head marker, then write tail. (next_record): Call flush_if_unbuffered. * io/unix.c (struct unix_stream): Add field unbuffered. (flush_if_unbuffered): New function. (fd_to_stream): New argument. (open_external): Fix fd_to_stream call. (input_stream): Likewise. (output_stream): Likewise. (error_stream): Likewise. * io/unix.h (flush_if_unbuffered): New prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198390 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix sign error in SYSTEM_CLOCK kind=4 Windows version.jb2013-04-282-2/+7
| | | | | | | | | | 2013-04-28 Janne Blomqvist <jb@gcc.gnu.org> * intrinsics/system_clock.c (system_clock_4): Fix sign error in Windows version. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198378 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-15 Tobias Burnus <burnus@net-b.de>burnus2013-04-152-2/+7
| | | | | | | | * list_read.c (finish_separator): Initialize variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197969 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 56919 Improve SYSTEM_CLOCK intrinsic on Windows.jb2013-04-153-7/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | frontend ChangeLog: 2013-04-15 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/56919 * intrinsics.texi (SYSTEM_CLOCK): Update documentation. libgfortran ChangeLog: 2013-04-15 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/56919 * intrinsics/time_1.h: Check __CYGWIN__ in addition to __MINGW32__. * intrinsics/system_clock.c (GF_CLOCK_MONOTONIC): Check _POSIX_MONOTONIC_CLOCK as well. (system_clock_4): Use GetTickCount on Windows. (system_clock_8): Use QueryPerformanceCounter and QueryPerformanceCounterFrequency on Windows. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197968 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-04 Tobias Burnus <burnus@net-b.de>burnus2013-04-042-3/+11
| | | | | | | | | | | | | | PR fortran/56810 * io/list_read.c (check_type): Fix kind checking for COMPLEX. 2013-04-04 Tobias Burnus <burnus@net-b.de> PR fortran/56810 * gfortran.dg/read_repeat_2.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197479 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2013-04-012-8/+16
| | | | | | | | | | | | PR libfortran/56660 * io/list_read.c (nml_read_obj): Do not reset the read error flag inside nml_read_obj. If the read error flag is found set just exit. Fix some whitespace on comments. (nml_read_obj_data): Reset the read error flag before the first call to nml_read_object. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197321 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-03-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2013-03-313-18/+48
| | | | | | | | | | | | | | PR libfortran/56786 * io/list_read.c (nml_parse_qualifier): Remove spurious next_char call when checking for EOF. Use error return mechanism when EOF detected. Do not return false unless parse_err_msg and parse_err_msg_size have been set. Use hit_eof. (nml_get_obj_data): Likewise use the correct error mechanism. * io/transfer.c (hit_eof): Do not set AFTER_ENDFILE if in namelist mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197290 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-03-29 Tobias Burnus <burnus@net-b.de>burnus2013-03-292-12/+12
| | | | | | | | | | PR fortran/56737 * io/format.c (parse_format_list): Also cache FMT_STRING. (parse_format): Update call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197230 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-03-29 Tobias Burnus <burnus@net-b.de>burnus2013-03-292-2/+25
| | | | | | | | | | | | | | | | | | PR fortran/56737 * io/format.c (parse_format): With caching, copy dtp->format string. (save_parsed_format): Use dtp->format directy without copying. 2013-03-29 Tobias Burnus <burnus@net-b.de> PR fortran/56737 * testsuite/gfortran.dg/fmt_cache_3.f90: New. (Plus: Move fortran/ChangeLog item to libgfortran/ChangeLog) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197229 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-03-29 Tobias Burnus <burnus@net-b.de>burnus2013-03-291-7/+9
| | | | | | | | | | | | | | | | PR fortran/56735 * io/list_read.c (nml_query): Only abort when an error occured. (namelist_read): Add goto instead of falling through. 2013-03-29 Tobias Burnus <burnus@net-b.de> PR fortran/56735 * gfortran.dg/namelist_80.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197228 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-03-25 Tilo Schwarz <tilo@tilo-schwarz.de>tiloschwarz2013-03-252-6/+14
| | | | | | | | | | | | | | | | | PR libfortran/52512 * io/list_read.c (nml_parse_qualifier): To check for a derived type don't use the namelist head element type but the current element type. (nml_get_obj_data): Add current namelist element type to nml_parse_qualifier call. 2013-03-25 Tilo Schwarz <tilo@tilo-schwarz.de> PR libfortran/52512 * gfortran.dg/namelist_79.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197061 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-03-24 Tobias Burnus <burnus@net-b.de>burnus2013-03-242-1/+5
| | | | | | | | | | | | | | PR fortran/56696 * io/list_read.c (read_real): Fix EOF diagnostic. 2013-03-24 Tobias Burnus <burnus@net-b.de> PR fortran/56696 * gfortran.dg/eof_5.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197019 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de>burnus2013-03-202-7/+16
| | | | | | | | | | | | | | | | | | PR libfortran/51825 * io/list_read.c (nml_read_obj): Don't end the component loop on a nested derived type, but continue with the next loop iteration. (nml_get_obj_data): Don't move the first_nl pointer further in the list if a qualifier was found. 2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de> PR libfortran/51825 * gcc/testsuite/gfortran.dg/namelist_77.f90: New. * gcc/testsuite/gfortran.dg/namelist_78.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196806 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de>burnus2013-03-202-5/+15
| | | | | | | | | | | | | | | PR libfortran/48618 * io/open.c (st_open): Raise error for unit number < 0 only if unit number does not exist already. 2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de> PR libfortran/48618 * gfortran.dg/open_negative_unit_1.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196805 138bc75d-0d04-0410-961f-82ee72b054a4
* Use C99 bool instead of enum try.jb2013-03-1910-78/+87
| | | | | | | | | | | | | | | | | | | | | | | | 2013-03-19 Janne Blomqvist <jb@gcc.gnu.org> * libgfortran.h: Include stdbool.h. (enum try): Remove. (notify_std): Change return type to bool. * intrinsics/chmod.c: Don't include stdbool.h. * intrinsics/execute_command_line.c: Likewise. * io/format.c: Likewise. * io/list_read.c (nml_parse_qualifier): Change return type to bool. (nml_read_obj): Likewise. (nml_get_obj_data): Likewise. * io/transfer.c (read_block_form): Fix comment. (write_buf): Change return type to bool. * io/write.c: Don't include stdbool.h. * io/write_float.def (output_float): Change return type to bool. (output_float_FMT_G_ ## x): Change type of result variable. * runtime/error.c (notify_std): Change return type to bool. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196791 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-03-11 Tobias Burnus <burnus@net-b.de>burnus2013-03-113-1/+9
| | | | | | | | | | * io/transfer.c (read_block_direct): Correct condition. * intrinsics/execute_command_line.c (execute_command_line): Remove dead code for the HAVE_FORK case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196603 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix regression when writing formatted sequential to a pipe.jb2013-02-213-12/+18
| | | | | | | | | | | | 2013-02-21 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/30162 * io/open.c (test_endfile): Call stell only if size != 0. * io/unix.c (raw_tell): Revert r194679. (raw_size): Return size field only for regular files, otherwise 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196210 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/56347danglin2013-02-196-42/+10
| | | | | | | | | | | | | * acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): Remove check for broken powf. * configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Likewise. * intrinsics/c99_functions.c: Likewise. * configure: Rebuilt. * config.h.in: Rebuilt. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196139 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-02-06 Janus Weil <janus@gcc.gnu.org>janus2013-02-062-0/+9
| | | | | | | | | | | | | | PR fortran/55978 * runtime/in_pack_generic.c (internal_pack): Return if base_addr is NULL. 2013-02-06 Janus Weil <janus@gcc.gnu.org> PR fortran/55978 * gfortran.dg/class_optional_2.f90: Uncomment some cases which work now. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195814 138bc75d-0d04-0410-961f-82ee72b054a4
* Improve performance of byte-swapped I/O.jb2013-01-234-68/+178
| | | | | | | | | | | | | | | | | | | 2013-01-23 Janne Blomqvist <jb@gcc.gnu.org> * io/file_pos.c (unformatted_backspace): Use __builtin_bswapXX instead of reverse_memcpy. * io/io.h (reverse_memcpy): Remove prototype. * io/transfer.c (reverse_memcpy): Make static, move towards beginning of file. (bswap_array): New function. (unformatted_read): Use bswap_array to byte swap the data in-place. (unformatted_write): Use a larger temp buffer and bswap_array. (us_read): Use __builtin_bswapXX instead of reverse_memcpy. (write_us_marker): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195413 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in libgfortran.rsandifo2013-01-14669-729/+672
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195167 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-01-06 Tobias Burnus <burnus@net-b.de>burnus2013-01-062-1/+8
| | | | | | | | | | PR fortran/54678 * intrinsics/env.c (get_environment_variable_i8): Don't use uninitialized variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194948 138bc75d-0d04-0410-961f-82ee72b054a4
* ChangeLog rotation.jakub2013-01-032-1272/+1277
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194840 138bc75d-0d04-0410-961f-82ee72b054a4
* 2013-01-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2013-01-022-15/+34
| | | | | | | | | | | | | PR libfortran/55818 * io/list_read.c (read_real): Do not call hit_eof when EOF can be treated as a value separator. (parse_real): Likewise. (read_logical): Likewise. (read_character): Likewise. (read_complex): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194809 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2012-12-273-0/+35
| | | | | | | | | | | | PR libfortran/48976 * io/inquire.c (inquire_via_unit): Set user stream inquiry variable to appropriate value based on unit access method. (inquire_via_filename): Since filename is not associated with an open unit, set stream inquiry to UNKNOWN. * io/io.h: Define inquire stream parameters. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194733 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2012-12-262-5/+12
| | | | | | | | | PR libfortran/48960 * io/open.c (st_parameter_open): Assign newunit number to user variable only if the the associated open statement is successful. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194724 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/55539 Fix regression in -fno-sign-zero.jb2012-12-252-3/+12
| | | | | | | | | | | | | | | | | | | libgfortran ChangeLog: 2012-12-26 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/55539 * io/write_float.def (output_float): Take into account decimal dot. testsuite ChangeLog: 2012-12-26 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/55539 * gfortran.dg/nosigned_zero_3.f90: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194717 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-21 Thomas Koenig <tkoenig@gcc.gnu.org>tkoenig2012-12-212-1/+15
| | | | | | | | | | PR libfortran/30162 * io/unix.c (raw_tell): If the lseek is done on a non-seekable file, return 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194679 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-20 Janus Weil <janus@gcc.gnu.org>janus2012-12-206-7/+21
| | | | | | | | | | | | | | | | | | | | | | PR fortran/36044 * gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE. * intrinsic.c (add_subroutines): Add "backtrace". * intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic. 2012-12-20 Janus Weil <janus@gcc.gnu.org> PR fortran/36044 * gfortran.map: Add _gfortran_backtrace. * libgfortran.h: Rename 'show_backtrace' and export. * runtime/backtrace.c (show_backtrace): Rename to 'backtrace'. Don't show message. Close file descriptor. Export. * runtime/compile_options.c (backtrace_handler): Renamed 'show_backtrace'. Move message outside. * runtime/error.c (sys_abort): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194648 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-19 Paul Thomas <pault@gcc.gnu.org>pault2012-12-202-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * array.c (resolve_array_list): Apply C4106. * check.c (gfc_check_same_type_as): Exclude polymorphic entities from check for extensible types. Improved error for disallowed argument types to name the offending type. * class.c : Update copyright date. (gfc_class_null_initializer): Add argument for initialization expression and deal with unlimited polymorphic typespecs. (get_unique_type_string): Give unlimited polymorphic entities a type string. (gfc_intrinsic_hash_value): New function. (gfc_build_class_symbol): Incorporate unlimited polymorphic entities. (gfc_find_derived_vtab): Deal with unlimited polymorphic entities. (gfc_find_intrinsic_vtab): New function. * decl.c (gfc_match_decl_type_spec): Match typespec for unlimited polymorphic type. (gfc_match_data_decl): Skip to 'ok' if unlimited polymorphic. expr.c (gfc_check_pointer_assign): Apply C717. If unlimited polymorphic lvalue, find rvalue vtable for all typespecs, except unlimited polymorphic expressions. (gfc_check_vardef_context): Handle unlimited polymorphic entities. * gfortran.h : Add unlimited polymorphic attribute. Add second arg to gfc_class_null_initializer primitive and primitive for gfc_find_intrinsic_vtab. Add UNLIMITED_POLY to detect unlimited polymorphic expressions. * interface.c (gfc_compare_types): If expr1 is unlimited polymorphic, always return 1. If expr2 is unlimited polymorphic enforce C717. (gfc_compare_interfaces): Skip past conditions that do not apply for unlimited polymorphic entities. (compare_parameter): Make sure that an unlimited polymorphic, allocatable or pointer, formal argument is matched by an unlimited polymorphic actual argument. (compare_actual_formal): Ensure that an intrinsic vtable exists to match an unlimited polymorphic formal argument. * match.c (gfc_match_allocate): Type kind parameter does not need to match an unlimited polymorphic allocate-object. (alloc_opt_list): An unlimited polymorphic allocate-object requires a typespec or a SOURCE tag. (select_intrinsic_set_tmp): New function. (select_type_set_tmp): Call new function. If it returns NULL, build a derived type or class temporary instead. (gfc_match_type_is): Remove restriction to derived types only. Bind(C) or sequence derived types not permitted. * misc (gfc_typename): Printed CLASS(*) for unlimited polymorphism. * module.c : Add AB_UNLIMITED_POLY to pass unlimited polymorphic attribute to and from modules. * resolve.c (resolve_common_vars): Unlimited polymorphic entities cannot appear in common blocks. (resolve_deallocate_expr): Deallocate unlimited polymorphic enities. (resolve_allocate_expr): Likewise for allocation. Make sure vtable exists. (gfc_type_is_extensible): Unlimited polymorphic entities are not extensible. (resolve_select_type): Handle unlimited polymorphic selectors. Ensure that length type parameters are assumed and that names for intrinsic types are generated. (resolve_fl_var_and_proc): Exclude select type temporaries from test of extensibility of type. (resolve_fl_variable): Likewise for test that assumed character length must be a dummy or a parameter. (resolve_fl_derived0): Return SUCCESS unconditionally for unlimited polymorphic entities. Also, allow unlimited polymorphic components. (resolve_fl_derived): Return SUCCESS unconditionally for unlimited polymorphic entities. (resolve_symbol): Return early with unlimited polymorphic entities. * simplifiy.c : Update copyright year. (gfc_simplify_extends_type_of): No simplification possible for unlimited polymorphic arguments. * symbol.c (gfc_use_derived): Nothing to do for unlimited polymorphic "derived type". (gfc_type_compatible): Return unity if ts1 is unlimited polymorphic. * trans-decl.c (create_function_arglist) Formal arguments without a character length should be treated in the same way as passed lengths. (gfc_trans_deferred_vars): Nullify the vptr of unlimited polymorphic pointers. Avoid unlimited polymorphic entities triggering gcc_unreachable. * trans-expr.c (gfc_conv_intrinsic_to_class): New function. (gfc_trans_class_init_assign): Make indirect reference of src.expr. (gfc_trans_class_assign): Expression NULL of unknown type should set NULL vptr on lhs. Treat C717 cases where lhs is a derived type and the rhs is unlimited polymorphic. (gfc_conv_procedure_call): Handle the conversion of a non-class actual argument to match an unlimited polymorphic formal argument. Suppress the passing of a character string length in this case. Make sure that calls to the character __copy function have two character string length arguments. (gfc_conv_initializer): Pass the initialization expression to gfc_class_null_initializer. (gfc_trans_subcomponent_assign): Ditto. (gfc_conv_structure): Move handling of _size component. trans-intrinsic.c: (gfc_conv_same_type_as): Handle conditions where unlimited polymorphic arguments have null vptr. * trans-stmt.c (trans_associate_var): Correctly treat array temporaries associated with unlimited polymorphic selectors. Recover the overwritten dtype for the descriptor. Use the _size field of the vptr for character string lengths. (gfc_trans_allocate): Cope with unlimited polymorphic allocate objects; especially with character source tags. (reset_vptr): New function. (gfc_trans_deallocate): Call it. * trans-types.c (gfc_get_derived_type): Detect unlimited polymorphic types and deal with cases where the derived type of components is null. * trans.c : Update copyright year. (trans_code): Call gfc_trans_class_assign for C717 cases where the lhs is not unlimited polymorphic. 2012-12-19 Paul Thomas <pault@gcc.gnu.org> * intrinsics/extends_type_of.c : Return correct results for null vptrs. 2012-12-19 Paul Thomas <pault@gcc.gnu.org> * gfortran.dg/unlimited_polymorphic_1.f03: New test. * gfortran.dg/unlimited_polymorphic_2.f03: New test. * gfortran.dg/unlimited_polymorphic_3.f03: New test. * gfortran.dg/same_type_as.f03: Correct for improved message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194622 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-12-03 Janus Weil <janus@gcc.gnu.org>janus2012-12-032-15/+25
| | | | | | | | | | | | | | | | | PR fortran/55548 * intrinsics/system_clock.c (gf_gettime_mono): Add argument 'tck', which returns the clock resolution. (system_clock_4): Get resolution from gf_gettime_mono, but limit to 1000/s. (system_clock_8): Get resolution from gf_gettime_mono. 2012-12-03 Janus Weil <janus@gcc.gnu.org> PR fortran/55548 * intrinsic.texi (SYSTEM_CLOCK): Update documentation of SYSTEM_CLOCK. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194105 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-28 Tobias Burnus <burnus@net-b.de>burnus2012-10-28120-805/+352
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * m4/bessel.m4: Remove useless statement. * m4/ifunction.m4: Remove unreachable code. * generated/bessel_r10.c: Regenerated. * generated/bessel_r16.c: Regenerated. * generated/bessel_r4.c: Regenerated. * generated/bessel_r8.c: Regenerated. * generated/iall_i1.c: Regenerated. * generated/iall_i16.c: Regenerated. * generated/iall_i2.c: Regenerated. * generated/iall_i4.c: Regenerated. * generated/iall_i8.c: Regenerated. * generated/iany_i1.c: Regenerated. * generated/iany_i16.c: Regenerated. * generated/iany_i2.c: Regenerated. * generated/iany_i4.c: Regenerated. * generated/iany_i8.c: Regenerated. * generated/iparity_i1.c: Regenerated. * generated/iparity_i16.c: Regenerated. * generated/iparity_i2.c: Regenerated. * generated/iparity_i4.c: Regenerated. * generated/iparity_i8.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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192895 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-10 Tobias Burnus <burnus@net-b.de>burnus2012-10-102-0/+17
| | | | | | | | | PR fortran/54878 * io/unix.c (tempfile_open): Set umask before calling mkstemp. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192325 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix usage of secure_getenv with glibc 2.17. jb2012-10-067-54/+103
| | | | | | | | | | | | | | | | See http://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv 2012-10-06 Janne Blomqvist <jb@gcc.gnu.org> * configure.ac: Check for presence of secure_getenv. * libgfortran.h: Use HAVE_SECURE_GETENV. * Makefile.in: Regenerated. * aclocal.m4: Regenerated. * config.h.in: Regenerated. * configure: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192169 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-06 Thomas König <tkoenig@gcc.gnu.org>tkoenig2012-10-062-14/+35
| | | | | | | | | | | PR libfortran/54736 * runtime/environ.c (search_unit): Correct logic for binary search. (mark_single): Fix index errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192158 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-09-29 Thomas König <tkoenig@gcc.gnu.org>tkoenig2012-09-293-4/+17
| | | | | | | | | | | | | | | PR fortran/52724 * list_read.c (next_char): Handle kind=4 characters. * unix.c (open_internal4): Correct lenth of internal file. 2012-09-29 Thomas König <tkoenig@gcc.gnu.org> PR fortran/52724 * gfortran.dg/internal_readwrite_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191854 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud