aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
AgeCommit message (Collapse)AuthorFilesLines
2013-10-01re PR fortran/55469 (memory leak on read with istat.ne.0)Tobias Burnus2-4/+35
2013-10-01 Tobias Burnus <burnus@net-b.de> PR fortran/55469 * io/list_read (parse_repeat, read_integer, read_character, parse_real, read_real, check_type, list_formatted_read_scalar, finish_list_read): Call list_free. From-SVN: r203086
2013-09-20libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match.Alan Modra2-5/+15
* libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match. Support little-endian powerpc linux hosts. Regenerate configure throughout. From-SVN: r202773
2013-07-23fpu-387.h (get_fpu_rounding_mode): Read rounding mode from SSE mxcsr ↵Uros Bizjak2-12/+32
register on x86_64. * config/fpu-387.h (get_fpu_rounding_mode): Read rounding mode from SSE mxcsr register on x86_64. From-SVN: r201161
2013-07-21trans-decl.c: Fix comment typos.Ondřej Bílka2-3/+7
2013-07-21 Ondřej Bílka <neleai@seznam.cz> * trans-decl.c: Fix comment typos. * trans-expr.c: Ditto. 2013-07-21 Ondřej Bílka <neleai@seznam.cz> * io/transfer.c: Fix comment typos. From-SVN: r201107
2013-07-21re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)Tobias Burnus2-3/+9
2013-07-21 Tobias Burnus <burnus@net-b.de> PR fortran/35862 * config/fpu-387.h (set_fpu_rounding_mode, get_fpu_rounding_mode): Add missing _ to fix build. From-SVN: r201095
2013-07-21re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)Tobias Burnus14-88/+452
2013-07-21 Tobias Burnus <burnus@net-b.de> 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. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r201093
2013-06-24configure.ac (AC_CHECK_FUNCS_ONCE): Put into if statement.Steve Ellcey2-15/+63
2013-06-24 Steve Ellcey <sellcey@mips.com> * configure.ac (AC_CHECK_FUNCS_ONCE): Put into if statement. * configure: Regenerate. From-SVN: r200374
2013-06-24configure.ac: Check for fp_except and fp_except_t.Tobias Burnus5-0/+41
2013-06-24 Tobias Burnus <burnus@net-b.de> * configure.ac: Check for fp_except and fp_except_t. * config/fpu-sysv.h: Conditionally use either type. * configure: Regenerate. * config.h.in: Regenerate. From-SVN: r200360
2013-06-21* config/fpu-sysv.h (get_fpu_except_flags): Fix typo.Eric Botcazou2-2/+6
From-SVN: r200298
2013-06-20* ChangeLog: Add some missing lines.Uros Bizjak1-0/+2
From-SVN: r200256
2013-06-20fpu-387.h (_FPU_MASK_ALL): New.Uros Bizjak2-30/+39
* config/fpu-387.h (_FPU_MASK_ALL): New. (_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. From-SVN: r200255
2013-06-20re PR fortran/57633 (I/O: Problem with formatted read: reading CR-LF files ↵Tobias Burnus2-2/+6
(\r\n)) 2013-06-20 Tobias Burnus <burnus@net-b.de> 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. From-SVN: r200238
2013-06-19fpu-387.h: Use __asm__ and __volatile__ consistently.Uros Bizjak2-23/+19
* config/fpu-387.h: Use __asm__ and __volatile__ consistently. (get_fpu_except_flags): Initialize result. From-SVN: r200187
2013-06-17gfortran.h (gfc_option_t): Add fpe_summary.Tobias Burnus12-13/+255
2013-06-17 Tobias Burnus <burnus@net-b.de> * 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. From-SVN: r200147
2013-06-03re PR libfortran/57496 (I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with ↵Tobias Burnus2-20/+56
-ffpe-trap=overflow) 2013-06-01 Tobias Burnus <burnus@net-b.de> 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. From-SVN: r199598
2013-05-24Use -z ignore instead of --as-needed on SolarisRainer Orth3-10/+67
* acinclude.m4 (libgfor_cv_have_as_needed): Check for -z ignore, too. * configure: Regenerate. From-SVN: r199285
2013-05-05libcaf.h (_gfortran_caf_critical): Add a prototype.David Edelsohn2-0/+8
* caf/libcaf.h (_gfortran_caf_critical): Add a prototype. (_gfortran_caf_end_critical): Same. From-SVN: r198613
2013-05-04environ.c: Include unistd.h.David Edelsohn7-0/+30
* runtime/environ.c: Include unistd.h. * 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. From-SVN: r198603
2013-04-29Simplify SYSTEM_CLOCK implementation.Janne Blomqvist2-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. From-SVN: r198391
2013-04-29PR 56981 Improve unbuffered performance on special files.Janne Blomqvist4-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. From-SVN: r198390
2013-04-28Fix sign error in SYSTEM_CLOCK kind=4 Windows version.Janne Blomqvist2-2/+7
2013-04-28 Janne Blomqvist <jb@gcc.gnu.org> * intrinsics/system_clock.c (system_clock_4): Fix sign error in Windows version. From-SVN: r198378
2013-04-15list_read.c (finish_separator): Initialize variable.Tobias Burnus2-2/+7
2013-04-15 Tobias Burnus <burnus@net-b.de> * list_read.c (finish_separator): Initialize variable. From-SVN: r197969
2013-04-15PR 56919 Improve SYSTEM_CLOCK intrinsic on Windows.Janne Blomqvist3-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. From-SVN: r197968
2013-04-04re PR libfortran/56810 (record-repeat fails kind check on complex read)Tobias Burnus2-3/+11
2013-04-04 Tobias Burnus <burnus@net-b.de> 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. From-SVN: r197479
2013-04-01re PR fortran/56660 (Fails to read NAMELIST with certain form array syntax)Jerry DeLisle2-8/+16
2013-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org> 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. From-SVN: r197321
2013-03-31re PR libfortran/56786 (Namelist read fails with designators containing ↵Jerry DeLisle3-18/+48
embedded spaces) 2013-03-31 Jerry DeLisle <jvdelisle@gcc.gnu.org> 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. From-SVN: r197290
2013-03-29re PR libfortran/56737 (Wrong I/O result with format cache for Hollerith ↵Tobias Burnus2-12/+12
strings) 2012-03-29 Tobias Burnus <burnus@net-b.de> PR fortran/56737 * io/format.c (parse_format_list): Also cache FMT_STRING. (parse_format): Update call. From-SVN: r197230
2013-03-29re PR libfortran/56737 (Wrong I/O result with format cache for Hollerith ↵Tobias Burnus2-2/+25
strings) 2013-03-29 Tobias Burnus <burnus@net-b.de> 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) From-SVN: r197229
2013-03-29re PR fortran/56735 (Namelist Read Error with question marks)Tobias Burnus1-7/+9
2013-03-29 Tobias Burnus <burnus@net-b.de> 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. From-SVN: r197228
2013-03-25re PR fortran/52512 (Cannot match namelist object name)Tilo Schwarz2-6/+14
2013-03-25 Tilo Schwarz <tilo@tilo-schwarz.de> 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. From-SVN: r197061
2013-03-24re PR libfortran/56696 (Formatted (list-directed) input fails to signal end ↵Tobias Burnus2-1/+5
of record) 2013-03-24 Tobias Burnus <burnus@net-b.de> 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. From-SVN: r197019
2013-03-20re PR fortran/51825 (Fortran runtime error: Cannot match namelist object name)Tilo Schwarz2-7/+16
2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de> 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. From-SVN: r196806
2013-03-20re PR libfortran/48618 (Negative unit number in OPEN(...) is sometimes allowed)Tilo Schwarz2-5/+15
2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de> 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. From-SVN: r196805
2013-03-19Use C99 bool instead of enum try.Janne Blomqvist10-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. From-SVN: r196791
2013-03-11transfer.c (read_block_direct): Correct condition.Tobias Burnus3-1/+9
2013-03-11 Tobias Burnus <burnus@net-b.de> * io/transfer.c (read_block_direct): Correct condition. * intrinsics/execute_command_line.c (execute_command_line): Remove dead code for the HAVE_FORK case. From-SVN: r196603
2013-02-21Fix regression when writing formatted sequential to a pipe.Janne Blomqvist3-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. From-SVN: r196210
2013-02-19re PR target/56347 (FAIL: gfortran.dg/integer_exponentiation_2.f90 -O2 ↵John David Anglin6-42/+10
execution test) PR target/56347 * 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. From-SVN: r196139
2013-02-06re PR fortran/55978 (class_optional_2.f90 -Os fails)Janus Weil2-0/+9
2013-02-06 Janus Weil <janus@gcc.gnu.org> 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. From-SVN: r195814
2013-01-23Improve performance of byte-swapped I/O.Janne Blomqvist4-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. From-SVN: r195413
2013-01-14Update copyright years in libgfortran.Richard Sandiford669-729/+672
From-SVN: r195167
2013-01-06re PR fortran/54678 (second call to get_environment_variable gives valgrind ↵Tobias Burnus2-1/+8
warning with 8-byte integers) 2013-01-06 Tobias Burnus <burnus@net-b.de> PR fortran/54678 * intrinsics/env.c (get_environment_variable_i8): Don't use uninitialized variable. From-SVN: r194948
2013-01-03ChangeLog rotation.Jakub Jelinek2-1272/+1277
From-SVN: r194840
2013-01-02re PR fortran/55818 (Reading a REAL from a file which doesn't end in a new ↵Jerry DeLisle2-15/+34
line fails) 2013-01-02 Jerry DeLisle <jvdelisle@gcc.gnu.org> 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. From-SVN: r194809
2012-12-27re PR fortran/48976 (INQUIRE with STREAM= not supported)Jerry DeLisle3-0/+35
2012-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> 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. From-SVN: r194733
2012-12-26re PR libfortran/48960 (OPEN statement modifies NEWUNIT variable on error)Jerry DeLisle2-5/+12
2012-12-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/48960 * io/open.c (st_parameter_open): Assign newunit number to user variable only if the the associated open statement is successful. From-SVN: r194724
2012-12-26PR fortran/55539 Fix regression in -fno-sign-zero.Janne Blomqvist2-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. From-SVN: r194717
2012-12-21re PR libfortran/30162 (Document when sequential I/O with named pipes works)Thomas Koenig2-1/+15
2012-12-21 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/30162 * io/unix.c (raw_tell): If the lseek is done on a non-seekable file, return 0. From-SVN: r194679
2012-12-20re PR libfortran/36044 (user-requested backtrace)Janus Weil6-7/+21
2012-12-20 Janus Weil <janus@gcc.gnu.org> 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. From-SVN: r194648
2012-12-20array.c (resolve_array_list): Apply C4106.Paul Thomas2-0/+13
2012-12-19 Paul Thomas <pault@gcc.gnu.org> * 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. From-SVN: r194622
2012-12-03re PR fortran/55548 (SYSTEM_CLOCK with integer(8) provides nanosecond ↵Janus Weil2-15/+25
resolution, but only microsecond precision (without -lrt)) 2012-12-03 Janus Weil <janus@gcc.gnu.org> 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. From-SVN: r194105