2a22f99cb1
gcc/ * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h, config/darwin.c, config/m32c/m32c.c, config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c, function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c, output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c, tree-ssa.c, varasm.c: Use hash-table instead of hashtab. * doc/gty.texi (for_user): Document new option. * gengtype.c (create_user_defined_type): Don't try to get a struct for char. (walk_type): Don't error out on for_user option. (write_func_for_structure): Emit user marking routines if requested by for_user option. (write_local_func_for_structure): Likewise. (main): Mark types with for_user option as used. * ggc.h (gt_pch_nx): Add overload for unsigned int. * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads. * hash-table.h (ggc_hasher): New struct. (hash_table::create_ggc): New function. (gt_pch_nx): New overload for hash_table. java/ * class.c, decl.c, except.c, expr.c, java-tree.h, lang.c: Use hash_table instead of hashtab. objc/ * objc-act.c: use hash_table instead of hashtab. cp/ * cp-gimplify.c, cp-tree.h, decl.c, mangle.c, name-lookup.c, pt.c, semantics.c, tree.c, typeck2.c: Use hash_table instead of hashtab. fortran/ * trans-decl.c, trans.c, trans.h: Use hash_table instead of hashtab. c-family/ * c-common.c: Use hash_table instead of hashtab. From-SVN: r216127
1940 lines
72 KiB
Plaintext
1940 lines
72 KiB
Plaintext
2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* trans-decl.c, trans.c, trans.h: Use hash_table instead of hashtab.
|
||
|
||
2014-10-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/48979
|
||
* simplify.c (gfc_simplify_atan): Use mpfr_zero_p to check for zeros.
|
||
(gfc_simplify_log): Likewise.
|
||
(gfc_simplify_scale): Likewise.
|
||
(gfc_simplify_exponent): Handle infinities and NaNs.
|
||
(gfc_simplify_fraction): Handle infinities.
|
||
(gfc_simplify_rrspacing): Handle signed zeros and NaNs.
|
||
(gfc_simplify_set_exponent): Handle infinities and NaNs.
|
||
(gfc_simplify_spacing): Handle zeros, infinities and NaNs.
|
||
|
||
2014-10-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/59488
|
||
* trans-openmp.c (gfc_omp_predetermined_sharing): Return
|
||
OMP_CLAUSE_DEFAULT_SHARED for parameters or vtables.
|
||
|
||
2014-10-10 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.h (gfc_set_implicit_none): Update prototype.
|
||
* symbol.c (gfc_set_implicit_none): Take and
|
||
use error location. Move diagnostic from here to ...
|
||
* decl.c (gfc_match_implicit_none): ... here. And
|
||
update call. Handle empty implicit-none-spec.
|
||
(gfc_match_implicit): Handle statement-separator ";".
|
||
|
||
2014-10-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
* f95-lang.c (gfc_init_builtin_functions): Add more floating-point
|
||
built-ins.
|
||
* mathbuiltins.def (OTHER_BUILTIN): Define built-ins for logb,
|
||
remainder, rint and signbit.
|
||
* trans-decl.c (save_fp_state, restore_fp_state): Move to
|
||
trans-intrinsic.c
|
||
(gfc_generate_function_code): Use new names for these two functions.
|
||
* trans-expr.c (gfc_conv_function_expr): Catch IEEE functions to
|
||
emit code from the front-end.
|
||
* trans-intrinsic.c (gfc_save_fp_state, gfc_restore_fp_state,
|
||
conv_ieee_function_args, conv_intrinsic_ieee_builtin,
|
||
conv_intrinsic_ieee_is_normal, conv_intrinsic_ieee_is_negative,
|
||
conv_intrinsic_ieee_logb_rint, conv_intrinsic_ieee_rem,
|
||
conv_intrinsic_ieee_next_after, conv_intrinsic_ieee_scalb,
|
||
conv_intrinsic_ieee_copy_sign, gfc_conv_ieee_arithmetic_function):
|
||
New functions.
|
||
* trans.h (gfc_conv_ieee_arithmetic_function,
|
||
gfc_save_fp_state, gfc_restore_fp_state): New prototypes.
|
||
|
||
2014-10-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
|
||
PR fortran/44054
|
||
PR fortran/54687
|
||
* gfortran.h (gfc_warning_cmdline): Add overload that takes an
|
||
option.
|
||
(gfc_error_cmdline): Declare.
|
||
* error.c (gfc_warning_cmdline): New overload that takes an option.
|
||
(gfc_error_cmdline): New.
|
||
* lang.opt (Wmissing-include-dirs): New.
|
||
* scanner.c (add_path_to_list): Use the new functions.
|
||
(load_file): Likewise.
|
||
* options.c (gfc_init_options): Wmissing-include-dirs is enabled
|
||
by default in Fortran.
|
||
(gfc_handle_option): Accept automatically handled options.
|
||
|
||
2014-10-06 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* libgfortran.h (GFC_STD_F2015): Add.
|
||
* decl.c (gfc_match_implicit_none): Handle spec list.
|
||
(gfc_match_implicit): Move double intrinsic warning here.
|
||
* gfortran.h (gfc_namespace): Add has_implicit_none_export:1.
|
||
(gfc_set_implicit_none): Update interface.
|
||
* interface.c (gfc_procedure_use): Add implicit-none external
|
||
error check.
|
||
* parse.c (accept_statement): Remove call.
|
||
(verify_st_order): Permit that external-implict-none follows
|
||
implicit statement.
|
||
* symbol.c (gfc_set_implicit_none): Handle external/type
|
||
implicit none.
|
||
|
||
2014-10-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/36534
|
||
* resolve.c (resolve_fl_procedure): Clean up obsolescence warning.
|
||
|
||
2014-09-25 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* check.c (check_co_collective): Renamed from check_co_minmaxsum,
|
||
handle co_reduce.
|
||
(gfc_check_co_minmax, gfc_check_co_sum): Update call.
|
||
(gfc_check_co_broadcast, gfc_check_co_reduce): New.
|
||
* gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
|
||
GFC_ISYM_CO_REDUCE.
|
||
* intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
|
||
* intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
|
||
proto types.
|
||
* intrinsic.texi (CO_BROADCAST): Add.
|
||
* trans.h (gfor_fndecl_co_broadcast): New.
|
||
* trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
|
||
(gfc_build_builtin_function_decls): Add decl for it,
|
||
* trans-intrinsic.c (conv_co_collective): Renamed from
|
||
conv_co_minmaxsum. Handle co_reduce.
|
||
(gfc_conv_intrinsic_subroutine): Handle co_reduce.
|
||
|
||
2014-09-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/63331
|
||
* trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL
|
||
instead of VAR_DECL for base_decl.
|
||
|
||
2014-09-21 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* openmp.c (omp_context): Rename to ...
|
||
(fortran_omp_context): ... this one.
|
||
|
||
2014-09-21 Dominique d'Humieres <dominiq@lps.ens.fr>
|
||
|
||
* resolve.c (resolve_fl_procedure): Remove duplicated lines.
|
||
|
||
2014-09-20 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
|
||
Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with
|
||
generating temporary for value argument.
|
||
|
||
2014-09-20 Joost VandeVondele <vondele@gcc.gnu.org>
|
||
|
||
* trans-expr.c (gfc_reset_vptr): Fix comment whitespace.
|
||
(gfc_conv_class_to_class): Likewise.
|
||
(gfc_conv_procedure_call): Likewise.
|
||
(arrayfunc_assign_needs_temporary): Likewise.
|
||
(realloc_lhs_loop_for_fcn_call): Likewise.
|
||
(gfc_trans_assignment_1): Likewise.
|
||
* trans-array.c (gfc_conv_array_ref): Likewise.
|
||
(gfc_array_allocate): Likewise.
|
||
(gfc_alloc_allocatable_for_assignment): Likewise.
|
||
* symbol.c (generate_isocbinding_symbol): Likewise.
|
||
* class.c (finalization_scalarizer): Likewise.
|
||
(finalizer_insert_packed_call): Likewise.
|
||
(generate_finalization_wrapper): Likewise.
|
||
(find_intrinsic_vtab): Likewise.
|
||
* decl.c (gfc_match_import): Likewise.
|
||
(match_procedure_decl): Likewise.
|
||
(gfc_match_subroutine): Likewise.
|
||
(gfc_match_bind_c): Likewise.
|
||
(gfc_match_volatile): Likewise.
|
||
* trans-common.c (create_common): Likewise.
|
||
* error.c (gfc_diagnostic_starter): Likewise.
|
||
* trans-stmt.c (gfc_trans_sync): Likewise.
|
||
(gfc_trans_critical): Likewise.
|
||
(gfc_trans_simple_do): Likewise.
|
||
(gfc_trans_do): Likewise.
|
||
(gfc_trans_where_assign): Likewise.
|
||
* expr.c (gfc_is_simply_contiguous): Likewise.
|
||
* module.c (unquote_string): Likewise.
|
||
* trans.c (gfc_add_finalizer_call): Likewise.
|
||
* trans-types.c (gfc_init_kinds): Likewise.
|
||
* scanner.c (preprocessor_line): Likewise.
|
||
* gfortranspec.c (lang_specific_driver): Likewise.
|
||
* frontend-passes.c (create_var): Likewise.
|
||
(cfe_expr_0): Likewise.
|
||
* resolve.c (check_host_association): Likewise.
|
||
(gfc_resolve_code): Likewise.
|
||
(resolve_fl_derived0): Likewise.
|
||
(resolve_symbol): Likewise.
|
||
* f95-lang.c (poplevel): Likewise.
|
||
* trans-decl.c (create_main_function): Likewise.
|
||
* trans-io.c (transfer_expr): Likewise.
|
||
* arith.c (gfc_arith_divide): Likewise.
|
||
* parse.c (resolve_all_program_units): Likewise.
|
||
* check.c (gfc_check_rank): Likewise.
|
||
(gfc_check_sizeof): Likewise.
|
||
(is_c_interoperable): Likewise.
|
||
* dependency.c (gfc_dep_difference): Likewise.
|
||
* primary.c (gfc_match_rvalue): Likewise.
|
||
* trans-intrinsic.c (conv_intrinsic_system_clock): Likewise.
|
||
(conv_isocbinding_subroutine): Likewise.
|
||
* options.c (gfc_post_options): Likewise.
|
||
(gfc_handle_fpe_option): Likewise.
|
||
(gfc_get_option_string): Likewise.
|
||
* simplify.c (simplify_transformation_to_scalar): Likewise.
|
||
(gfc_simplify_spread): Likewise.
|
||
|
||
2014-09-19 Joost VandeVondele <vondele@gcc.gnu.org>
|
||
|
||
PR fortran/63152
|
||
* trans-array.c (gfc_trans_deferred_array): Only nullify allocatables.
|
||
|
||
2014-09-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* Make-lang.in (check_gfortran_parallelize): Change to just an upper
|
||
bound number.
|
||
|
||
2014-09-13 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/63252
|
||
* trans-decl.c (gfc_build_builtin_function_decls): Fix
|
||
caf_unlock declaration.
|
||
|
||
2014-09-12 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* trans-types.c (gfc_init_kinds): Check
|
||
targetm.libgcc_floating_mode_supported_p for floating-point
|
||
modes. Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
|
||
|
||
2014-09-05 Joost VandeVondele <vondele@gcc.gnu.org>
|
||
|
||
PR fortran/62245
|
||
* intrinsic.texi (INT): clarify result.
|
||
|
||
2014-09-03 Fritz Reese <Reese-Fritz@zai.com>
|
||
|
||
PR fortran/62174
|
||
* decl.c (variable_decl): Don't overwrite typespecs of Cray pointees
|
||
when matching a component declaration.
|
||
|
||
2014-09-02 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR fortran/62270
|
||
* interface.c (compare_parameter): Fix condition.
|
||
* trans-expr.c (gfc_conv_procedure_call): Likewise.
|
||
|
||
2014-08-31 Fritz Reese <Reese-Fritz@zai.com>
|
||
|
||
PR fortran/62309
|
||
* resolve.c (apply_default_init_local): Don't treat variables
|
||
in RECURSIVE procedures as saved.
|
||
|
||
2014-08-31 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-decl.c (gfc_build_builtin_function_decls): Add
|
||
may_require_tmp dummy argument.
|
||
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
|
||
conv_caf_send): Handle may_require_tmp argument.
|
||
(gfc_conv_intrinsic_function): Update call.
|
||
* gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
|
||
_gfortran_caf_sendget): Update interface description.
|
||
|
||
2014-08-30 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans.h (gfc_caf_get_image_index,
|
||
gfc_get_caf_token_offset): New prototypes.
|
||
* trans-expr.c (gfc_caf_get_image_index): Moved from
|
||
trans-intrinsic.c and renamed.
|
||
(gfc_get_caf_token_offset) Ditto; support offset = NULL
|
||
with early return.
|
||
* trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
|
||
Moved to trans-expr.
|
||
(gfc_conv_intrinsic_caf_get, conv_caf_send,
|
||
conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
|
||
conv_intrinsic_atomic_cas): Update callers.
|
||
|
||
2014-08-30 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/62278
|
||
PR fortran/44735
|
||
PR fortran/60593
|
||
* dependency.c (gfc_check_dependency): Allow for optimizations
|
||
in the pointer-alias check.
|
||
|
||
2014-08-30 Janne Blomqvist <jb@gcc.gnu.org>
|
||
|
||
* module.c (gfc_dump_module): Use ISO C remove() instead of POSIX
|
||
unlink().
|
||
|
||
2014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com>
|
||
|
||
PR fortran/62215
|
||
* module.c (gfc_dump_module): Unlink old module file before
|
||
renaming new one.
|
||
|
||
2014-08-26 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* frontend_passes (expr_array): Replace by vec template.
|
||
(expr_size): Remove.
|
||
(expr_count): Remove.
|
||
(doloop_list): Replace by vec template.
|
||
(doloop_size): Remove.
|
||
(gfc_run_passes): Adjust to use of vec template.
|
||
(cfe_register_funcs): Likewise.
|
||
(cfe_expr_0): Likewise.
|
||
(doloop_code): Likewise.
|
||
|
||
2014-08-22 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR fortran/62135
|
||
* resolve.c (resolve_select): Fix list traversal in case the
|
||
last element of the CASE list was dropped as unreachable code.
|
||
|
||
2014-08-22 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
|
||
|
||
PR fortran/61234
|
||
* lang.opt (Wuse-without-only): New flag.
|
||
* gfortran.h (gfc_option_t): Add it.
|
||
* invoke.texi: Document it.
|
||
* module.c (gfc_use_module): Warn if needed.
|
||
* options.c (gfc_init_options,gfc_handle_option): Init accordingly.
|
||
|
||
2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/62214
|
||
* frontend-passes.c (optimize_binop_array_assignment):
|
||
Do not try to optimize the array assignment for string
|
||
concatenation.
|
||
|
||
2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
|
||
PR fortran/44054
|
||
* error.c (gfc_diagnostic_build_locus_prefix): New function.
|
||
(gfc_diagnostic_starter): Follow Fortran FE diagnostics.
|
||
(gfc_diagnostic_finalizer): Do not call default finalizer.
|
||
|
||
2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
|
||
PR fortran/44054
|
||
* error.c (gfc_diagnostic_finalizer): Call default finalizer.
|
||
|
||
2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
|
||
|
||
* options.c (gfc_init_options_struct): assert that the frontend sets
|
||
flag_errno_math and flag_associative_math.
|
||
|
||
2014-08-17 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* resolve.c (gfc_resolve_finalizers): Ensure that parents are
|
||
resolved first.
|
||
|
||
2014-08-17 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-io.c (gfc_build_io_library_fndecls): Fix decl of
|
||
IOCALL_SET_NML_VAL.
|
||
(transfer_namelist_element): Use proper int type as argument.
|
||
|
||
2014-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/62142
|
||
* trans-expr.c (is_runtime_conformable): Add NULL pointer checks.
|
||
|
||
2014-08-15 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* resolve.c (resolve_critical): Fix name mangling.
|
||
* trans-stmt.c (gfc_trans_critical): Fix lock call.
|
||
|
||
2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
|
||
PR fortran/44054
|
||
* gfortran.h: Define GCC_DIAG_STYLE.
|
||
(gfc_diagnostics_init,gfc_warning_cmdline): Declare.
|
||
* trans-array.c: Include gfortran.h before diagnostic-core.h.
|
||
* trans-expr.c: Likewise.
|
||
* trans-openmp.c: Likewise.
|
||
* trans-const.c: Likewise.
|
||
* trans.c: Likewise.
|
||
* trans-types.c: Likewise.
|
||
* f95-lang.c: Likewise.
|
||
* trans-decl.c: Likewise.
|
||
* trans-io.c: Likewise.
|
||
* trans-intrinsic.c: Likewise.
|
||
* error.c: Include diagnostic.h and diagnostic-color.h.
|
||
(gfc_diagnostic_build_prefix): New.
|
||
(gfc_diagnostic_starter): New.
|
||
(gfc_diagnostic_finalizer): New.
|
||
(gfc_warning_cmdline): New.
|
||
(gfc_diagnostics_init): New.
|
||
* gfc-diagnostic.def: New.
|
||
* options.c (gfc_init_options): Call gfc_diagnostics_init.
|
||
(gfc_post_options): Use gfc_warning_cmdline.
|
||
|
||
2014-08-15 Jakub Jelinek <jakub@redhat.com>
|
||
Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/62131
|
||
* openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
|
||
is allocatable, rather than whenever var->attr.allocatable.
|
||
|
||
2014-08-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/62107
|
||
* trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
|
||
or allocatable passed by reference.
|
||
(gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
|
||
|
||
2014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/62106
|
||
* gfortran.h (symbol_attribute): Add fe_temp flag.
|
||
* frontend-passes.c (is_fe_temp): New function.
|
||
(create_var): Don't add a temporary for an already
|
||
created variable or for a constant.
|
||
(combine_ARRAY_constructor): Remove special handling
|
||
for constants.
|
||
|
||
2014-08-14 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
|
||
(_gfortran_caf_register): Update for locking/critical.
|
||
(_gfortran_caf_lock, _gfortran_caf_unlock): Add.
|
||
* resolve.c (resolve_critical): New.
|
||
(gfc_resolve_code): Call it.
|
||
* trans-decl.c (gfor_fndecl_caf_critical,
|
||
gfor_fndecl_caf_end_critical): Remove.
|
||
(gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
|
||
(gfc_build_builtin_function_decls): Remove critical,
|
||
assign locking declarations.
|
||
(generate_coarray_sym_init): Handle locking and
|
||
critical variables.
|
||
* trans-stmt.c (gfc_trans_critical): Add calls to
|
||
lock/unlock libcaf functions.
|
||
* trans.h (gfc_coarray_type): Update locking, add
|
||
critical enum values.
|
||
(gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
|
||
(gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
|
||
|
||
2014-08-14 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.texi (Coarray Programming): Add first ABI
|
||
documentation.
|
||
|
||
2014-08-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/62076
|
||
* openmp.c (gfc_match_omp_clauses): When failed to match
|
||
operator name, defined op name or name, set buffer to
|
||
empty string. Don't call gfc_find_omp_udr if buffer is empty
|
||
string.
|
||
(gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
|
||
before calling gfc_free_omp_udr.
|
||
|
||
2014-08-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR fortran/61950
|
||
* trans-expr.c (gfc_conv_structure): Initialize _size with
|
||
a value of proper type.
|
||
|
||
2014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/61999
|
||
* simplify.c (gfc_simplify_dot_product): Convert types of
|
||
vectors before calculating the result.
|
||
|
||
2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
|
||
|
||
2014-07-26 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/61881
|
||
PR fortran/61888
|
||
PR fortran/57305
|
||
* intrinsic.texi (SIZEOF): Document changed behavior
|
||
for polymorphic arrays.
|
||
|
||
2014-07-26 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/61881
|
||
PR fortran/61888
|
||
PR fortran/57305
|
||
* check.c (gfc_check_sizeof): Permit for assumed type if and
|
||
only if it has an array descriptor.
|
||
* intrinsic.c (do_ts29113_check): Permit SIZEOF.
|
||
(add_functions): SIZEOF is an Inquiry function.
|
||
* intrinsic.texi (SIZEOF): Add note that only contiguous
|
||
arrays are permitted.
|
||
* trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
|
||
rank.
|
||
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
|
||
assumed type + array descriptor, CLASS and assumed rank.
|
||
(gfc_conv_intrinsic_storage_size): Handle class arrays.
|
||
|
||
2014-07-25 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* simplify.c (gfc_simplify_storage_size): Use proper
|
||
integer kind for the returned value.
|
||
|
||
2014-07-24 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
|
||
correct menu position to match sectioning.
|
||
|
||
2014-06-15 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* symbol.c (check_conflict): Add codimension conflict with
|
||
pointer; fix cray-pointee check.
|
||
|
||
2014-06-14 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
|
||
for kind mismatch with -fcoarray=lib.
|
||
|
||
2014-07-12 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/61780
|
||
* dependency.c (gfc_dep_resolver): Index the 'reverse' array so
|
||
that elements are skipped. This then correctly aligns 'reverse'
|
||
with the scalarizer loops.
|
||
|
||
2014-07-12 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/61628
|
||
* trans-types.c (gfc_init_types): Fix data-type bug
|
||
with gfc_max_array_element_size.
|
||
|
||
2014-07-12 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* libgfortran.h (libcaf_atomic_codes): Add.
|
||
* trans-decl.c (gfor_fndecl_caf_atomic_def,
|
||
gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
|
||
gfor_fndecl_caf_atomic_op): New variables.
|
||
(gfc_build_builtin_function_decls): Initialize them.
|
||
* trans.h (gfor_fndecl_caf_atomic_def,
|
||
gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
|
||
gfor_fndecl_caf_atomic_op): New variables.
|
||
* trans-intrinsic.c (conv_intrinsic_atomic_op,
|
||
conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
|
||
Add library calls with -fcoarray=lib.
|
||
|
||
2014-07-12 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* check.c (gfc_check_atomic): Update for STAT=.
|
||
(gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
|
||
(gfc_check_atomic_op, gfc_check_atomic_cas,
|
||
gfc_check_atomic_fetch_op): New.
|
||
* gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
|
||
GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
|
||
GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
|
||
GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
|
||
* intrinsic.c (add_subroutines): Handle them.
|
||
* intrinsic.texi: Add documentation for them.
|
||
(ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
|
||
(ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
|
||
* intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
|
||
gfc_check_atomic_fetch_op): New
|
||
prototypes.
|
||
* libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
|
||
* iso-fortran-env.def: Add it.
|
||
* trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
|
||
conv_intrinsic_atomic_ref; handle more atomics.
|
||
(conv_intrinsic_atomic_def): Handle STAT=.
|
||
(conv_intrinsic_atomic_cas): New.
|
||
(gfc_conv_intrinsic_subroutine): Handle new atomics.
|
||
|
||
2014-07-09 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
* trans-array.c (gfc_build_constant_array_constructor): Build a
|
||
static decl manually.
|
||
* trans-decl.c (create_main_function): Likewise.
|
||
|
||
2014-07-07 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/61459
|
||
PR fortran/58883
|
||
* trans-expr.c (fcncall_realloc_result): Use the natural type
|
||
for the address expression of 'res_desc'.
|
||
|
||
2014-07-07 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* gfortran.texi (Fortran 2003 status): Fix grammar.
|
||
|
||
2014-07-04 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* resolve.c (resolve_assoc_var): Fix corank setting.
|
||
* trans-array.c (gfc_conv_descriptor_token): Change assert.
|
||
for select-type temporaries.
|
||
* trans-decl.c (generate_coarray_sym_init): Skip for
|
||
attr.select_type_temporary.
|
||
* trans-expr.c (gfc_conv_procedure_call): Fix for
|
||
select-type temporaries.
|
||
* trans-intrinsic.c (get_caf_token_offset): Ditto.
|
||
(gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
|
||
the correct dtype.
|
||
* trans-types.h (gfc_get_dtype_rank_type): New.
|
||
* trans-types.c (gfc_get_dtype_rank_type): Ditto.
|
||
|
||
2014-07-03 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* scanner.c (skip_free_comments): Fix indentation.
|
||
|
||
2014-07-02 Jakub Jelinek <jakub@redhat.com>
|
||
Fritz Reese <Reese-Fritz@zai.com>
|
||
|
||
* decl.c (variable_decl): Reject old style initialization
|
||
for derived type components.
|
||
|
||
2014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/36275
|
||
PR fortran/38839
|
||
* decl.c (check_bind_name_identifier): New function.
|
||
(gfc_match_bind_c): Match any constant expression as binding
|
||
label.
|
||
* match.c (gfc_match_name_C): Remove.
|
||
|
||
2014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/29383
|
||
* gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
|
||
* libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
|
||
both C and Fortran.
|
||
* expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
|
||
* simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
|
||
* module.c (mio_symbol): Keep track of symbols which came from
|
||
intrinsic modules.
|
||
(gfc_use_module): Keep track of the IEEE modules.
|
||
* trans-decl.c (gfc_get_symbol_decl): Adjust code since
|
||
we have new intrinsic modules.
|
||
(gfc_build_builtin_function_decls): Build decls for
|
||
ieee_procedure_entry and ieee_procedure_exit.
|
||
(is_from_ieee_module, is_ieee_module_used, save_fp_state,
|
||
restore_fp_state): New functions.
|
||
(gfc_generate_function_code): Save and restore floating-point
|
||
state on procedure entry/exit, when IEEE modules are used.
|
||
* intrinsic.texi: Document the IEEE modules.
|
||
|
||
2014-06-25 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* interface.c (check_intents): Fix diagnostic with
|
||
coindexed coarrays.
|
||
|
||
2014-06-25 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* resolve.c (resolve_ordinary_assign): Don't invoke caf_send
|
||
when assigning a coindexed RHS scalar to a noncoindexed LHS
|
||
array.
|
||
* trans-intrinsic.c (conv_caf_send): Do numeric type conversion
|
||
for a noncoindexed scalar RHS.
|
||
|
||
2014-06-25 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* check.c (check_co_minmaxsum): Add definable check.
|
||
* expr.c (gfc_check_vardef_context): Fix context == NULL case.
|
||
* trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
|
||
arguments.
|
||
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
|
||
temporary strings.
|
||
|
||
2014-06-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* trans.h (gfc_omp_clause_linear_ctor): New prototype.
|
||
* trans-openmp.c (gfc_omp_linear_clause_add_loop,
|
||
gfc_omp_clause_linear_ctor): New functions.
|
||
(gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
|
||
correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
|
||
* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
|
||
|
||
2014-06-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
|
||
of n->udr.
|
||
* f95-lang.c (gfc_init_builtin_functions): Initialize
|
||
BUILT_IN_ASSUME_ALIGNED.
|
||
* gfortran.h (gfc_omp_namelist): Change udr field type to
|
||
struct gfc_omp_namelist_udr.
|
||
(gfc_omp_namelist_udr): New type.
|
||
(gfc_get_omp_namelist_udr): Define.
|
||
(gfc_resolve_code): New prototype.
|
||
* match.c (gfc_free_omp_namelist): Free name->udr.
|
||
* module.c (intrinsics): Add INTRINSIC_USER.
|
||
(fix_mio_expr): Likewise.
|
||
(mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
|
||
* openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
|
||
(gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
|
||
Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
|
||
(struct resolve_omp_udr_callback_data): New type.
|
||
(resolve_omp_udr_callback, resolve_omp_udr_callback2,
|
||
resolve_omp_udr_clause): New functions.
|
||
(resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
|
||
here.
|
||
(omp_udr_callback): Don't check for implicitly declared functions
|
||
here.
|
||
(gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
|
||
implicitly declared subroutines here.
|
||
* resolve.c (resolve_function): If value.function.isym is non-NULL,
|
||
consider it already resolved.
|
||
(resolve_code): Renamed to ...
|
||
(gfc_resolve_code): ... this. No longer static.
|
||
(gfc_resolve_blocks, generate_component_assignments, resolve_codes):
|
||
Adjust callers.
|
||
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
|
||
by reference type (C_PTR) variables.
|
||
(gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
|
||
(gfc_trans_omp_udr_expr): Remove.
|
||
(gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
|
||
Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
|
||
expand it as assignment or subroutine call. Don't initialize
|
||
value.function.isym.
|
||
|
||
2014-06-23 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-decl.c (gfc_trans_deferred_vars): Fix handling of
|
||
explicit-size arrays with -fcoarray=lib.
|
||
|
||
2014-06-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/33363
|
||
* invoke.texi: Don't mention nonexisting -fcase-lower option.
|
||
|
||
2014-06-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/61454
|
||
* expr.c (scalarize_intrinsic_call): Take care of optional
|
||
arguments.
|
||
|
||
2014-06-19 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-intrinsic.c (conv_co_minmaxsum): Fix argument
|
||
passing.
|
||
|
||
2014-06-18 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
|
||
* intrinsic.texi (OpenMP Modules): Ditto.
|
||
|
||
2014-06-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* cpp.c (cpp_define_builtins): Change _OPENMP macro to
|
||
201307.
|
||
* dump-parse-tree.c (show_omp_namelist): Add list_type
|
||
argument. Adjust for rop being u.reduction_op now,
|
||
handle depend_op or map_op.
|
||
(show_omp_node): Adjust callers. Print some new
|
||
OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
|
||
becoming a single OMP_LIST_DEPEND.
|
||
* f95-lang.c (gfc_handle_omp_declare_target_attribute): New
|
||
function.
|
||
(gfc_attribute_table): New variable.
|
||
(LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
|
||
* frontend-passes.c (gfc_code_walker): Handle new OpenMP target
|
||
EXEC_OMP_* codes and new clauses.
|
||
* gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
|
||
ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
|
||
ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
|
||
ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
|
||
ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
|
||
ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
|
||
ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
|
||
ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
|
||
ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
|
||
ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
|
||
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
|
||
ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
|
||
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
|
||
ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
|
||
ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
|
||
ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
|
||
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
|
||
ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
|
||
ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
|
||
ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
|
||
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
|
||
(symbol_attribute): Add omp_declare_target field.
|
||
(gfc_omp_depend_op, gfc_omp_map_op): New enums.
|
||
(gfc_omp_namelist): Replace rop field with union
|
||
containing reduction_op, depend_op and map_op.
|
||
(OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
|
||
(OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
|
||
(gfc_omp_clauses): Add num_teams, device, thread_limit,
|
||
dist_sched_kind, dist_chunk_size fields.
|
||
(gfc_common_head): Add omp_declare_target field.
|
||
(gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
|
||
EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
|
||
EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
|
||
EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
|
||
EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
|
||
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
|
||
EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
|
||
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
|
||
EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
|
||
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
|
||
EXEC_OMP_TARGET_UPDATE.
|
||
(gfc_add_omp_declare_target): New prototype.
|
||
* match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
|
||
gfc_match_omp_distribute_parallel_do,
|
||
gfc_match_omp_distribute_parallel_do_simd,
|
||
gfc_match_omp_distribute_simd, gfc_match_omp_target,
|
||
gfc_match_omp_target_data, gfc_match_omp_target_teams,
|
||
gfc_match_omp_target_teams_distribute,
|
||
gfc_match_omp_target_teams_distribute_parallel_do,
|
||
gfc_match_omp_target_teams_distribute_parallel_do_simd,
|
||
gfc_match_omp_target_teams_distribute_simd,
|
||
gfc_match_omp_target_update, gfc_match_omp_teams,
|
||
gfc_match_omp_teams_distribute,
|
||
gfc_match_omp_teams_distribute_parallel_do,
|
||
gfc_match_omp_teams_distribute_parallel_do_simd,
|
||
gfc_match_omp_teams_distribute_simd): New prototypes.
|
||
* module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
|
||
(attr_bits): Likewise.
|
||
(mio_symbol_attribute): Handle omp_declare_target attribute.
|
||
(gfc_free_omp_clauses): Free num_teams, device, thread_limit
|
||
and dist_chunk_size expressions.
|
||
(OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
|
||
OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
|
||
OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
|
||
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
|
||
OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
|
||
OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
|
||
OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
|
||
OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
|
||
OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
|
||
(OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
|
||
OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
|
||
OMP_CLAUSE_DIST_SCHEDULE): Define.
|
||
(gfc_match_omp_clauses): Change mask parameter to unsigned int.
|
||
Adjust for rop becoming u.reduction_op. Disallow inbranch with
|
||
notinbranch. For depend clause, always create OMP_LIST_DEPEND
|
||
and fill in u.depend_op. Handle num_teams, device, map,
|
||
to, from, thread_limit and dist_schedule clauses.
|
||
(OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
|
||
OMP_CLAUSE_NOTINBRANCH.
|
||
(OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
|
||
OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
|
||
OMP_DISTRIBUTE_CLAUSES): Define.
|
||
(match_omp): New function.
|
||
(gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
|
||
gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
|
||
gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
|
||
gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
|
||
gfc_match_omp_task): Rewritten using match_omp.
|
||
(gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
|
||
Diagnose if the directives are followed by unexpected junk.
|
||
(gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
|
||
gfc_match_omp_distribute_parallel_do_simd,
|
||
gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
|
||
gfc_match_omp_target, gfc_match_omp_target_data,
|
||
gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
|
||
gfc_match_omp_target_teams_distribute_parallel_do,
|
||
gfc_match_omp_target_teams_distribute_parallel_do_simd,
|
||
gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
|
||
gfc_match_omp_teams, gfc_match_omp_teams_distribute,
|
||
gfc_match_omp_teams_distribute_parallel_do,
|
||
gfc_match_omp_teams_distribute_parallel_do_simd,
|
||
gfc_match_omp_teams_distrbute_simd): New functions.
|
||
* openmp.c (resolve_omp_clauses): Adjust for
|
||
OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
|
||
OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
|
||
dist_chunk_size and thread_limit.
|
||
(gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
|
||
ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
|
||
new EXEC_OMP_* codes.
|
||
(resolve_omp_do): Handle various new EXEC_OMP_* codes.
|
||
(gfc_resolve_omp_directive): Likewise.
|
||
(gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
|
||
* parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
|
||
offloading related directives.
|
||
(case_executable): Add ST_OMP_TARGET_UPDATE.
|
||
(case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
|
||
ST_OMP_DISTRIBUTE*.
|
||
(case_decl): Add ST_OMP_DECLARE_TARGET.
|
||
(gfc_ascii_statement): Handle new ST_OMP_* codes.
|
||
(parse_omp_do): Handle various new ST_OMP_* codes.
|
||
(parse_executable): Likewise.
|
||
* resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
|
||
codes.
|
||
(resolve_code): Likewise.
|
||
(resolve_symbol): Change that !$OMP DECLARE TARGET variables
|
||
are saved.
|
||
* st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
|
||
* symbol.c (check_conflict): Check omp_declare_target conflicts.
|
||
(gfc_add_omp_declare_target): New function.
|
||
(gfc_copy_attr): Copy omp_declare_target.
|
||
* trans.c (trans_code): Handle various new EXEC_OMP_* codes.
|
||
* trans-common.c (build_common_decl): Add "omp declare target"
|
||
attribute if needed.
|
||
* trans-decl.c (add_attributes_to_decl): Likewise.
|
||
* trans.h (gfc_omp_finish_clause): New prototype.
|
||
* trans-openmp.c (gfc_omp_finish_clause): New function.
|
||
(gfc_trans_omp_reduction_list): Adjust for rop being renamed
|
||
to u.reduction_op.
|
||
(gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
|
||
change to OMP_LIST_DEPEND and fix up depend handling.
|
||
Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
|
||
thread_limit, device, dist_chunk_size and dist_sched_kind.
|
||
(gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
|
||
(GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
|
||
GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
|
||
GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
|
||
(gfc_split_omp_clauses): Handle splitting of clauses for new
|
||
EXEC_OMP_* codes.
|
||
(gfc_trans_omp_do_simd): Add pblock argument, adjust for being
|
||
callable for combined constructs.
|
||
(gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
|
||
(gfc_trans_omp_distribute, gfc_trans_omp_teams,
|
||
gfc_trans_omp_target, gfc_trans_omp_target_data,
|
||
gfc_trans_omp_target_update): New functions.
|
||
(gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
|
||
new EXEC_OMP_* codes.
|
||
|
||
2014-06-18 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/61126
|
||
* invoke.texi (-Wunused-parameter): Make clearer when
|
||
-Wextra implies this option.
|
||
|
||
2014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
|
||
PR fortran/61126
|
||
* options.c (gfc_handle_option): Remove call to
|
||
handle_generated_option.
|
||
|
||
2014-06-17 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* check.c (gfc_check_atomic, gfc_check_atomic_def):
|
||
Use argument for GFC_ISYM_CAF_GET.
|
||
* resolve.c (resolve_variable): Enable CAF_GET insertion.
|
||
(resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
|
||
(resolve_ordinary_assign): Enable CAF_SEND insertion.
|
||
* trans-const.c (gfc_build_string_const,
|
||
gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
|
||
* trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
|
||
gfor_fndecl_caf_sendget): New global variables.
|
||
(gfc_build_builtin_function_decls): Initialize them;
|
||
update co_min/max/sum initialization.
|
||
* trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
|
||
get_tree_for_caf_expr and removed static.
|
||
(gfc_conv_procedure_call): Update call.
|
||
* trans-intrinsic.c (caf_get_image_index,
|
||
conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
|
||
get_caf_token_offset, gfc_conv_intrinsic_caf_get,
|
||
conv_caf_send): New.
|
||
(gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
|
||
gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
|
||
(conv_co_minmaxsum): Update call for remove unused vector
|
||
subscript.
|
||
(conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
|
||
Skip a CAF_GET of the argument.
|
||
* trans-types.c (gfc_get_caf_vector_type): New.
|
||
* trans-types.h (gfc_get_caf_vector_type): New.
|
||
* trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
|
||
gfor_fndecl_caf_sendget): New global variables.
|
||
(gfc_get_tree_for_caf_expr): New prototypes.
|
||
|
||
2014-06-15 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* trans-common.c (build_common_decl): Use
|
||
set_decl_tls_model.
|
||
* trans-decl.c (gfc_finish_var_decl): Likewise.
|
||
(get_proc_pointer_decl): Likewise.
|
||
|
||
2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/28484
|
||
PR fortran/61429
|
||
* check.c (gfc_check_system_clock): Improve checking of arguments.
|
||
* intrinsic.texi: Update doc of SYSTEM_CLOCK.
|
||
* iresolve.c (gfc_resolve_system_clock): Choose library function
|
||
used depending on argument kinds.
|
||
* trans-decl.c (gfc_build_intrinsic_function_decls): Build
|
||
decls for system_clock_4 and system_clock_8.
|
||
* trans-intrinsic.c (conv_intrinsic_system_clock): New function.
|
||
(gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
|
||
* trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
|
||
New variables.
|
||
|
||
2014-06-12 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.h (gfc_copy_formal_args_intr): Update prototype.
|
||
* symbol.c (gfc_copy_formal_args_intr): Handle the case
|
||
that absent optional arguments should be ignored.
|
||
* trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
|
||
(gfc_conv_intrinsic_funcall,
|
||
conv_generic_with_optional_char_arg): Update call.
|
||
* resolve.c (gfc_resolve_intrinsic): Ditto.
|
||
|
||
2014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr>
|
||
Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/41936
|
||
* trans-expr.c (gfc_conv_expr_reference): Deallocate array
|
||
components.
|
||
|
||
2014-06-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/60928
|
||
* f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
|
||
like -fopenmp.
|
||
* openmp.c (resolve_omp_clauses): Remove allocatable components
|
||
diagnostics. Add associate-name and intent(in) pointer
|
||
diagnostics for various clauses, diagnose procedure pointers in
|
||
reduction clause.
|
||
* parse.c (match_word_omp_simd): New function.
|
||
(matchs, matcho): New macros.
|
||
(decode_omp_directive): Change match macros to either matchs
|
||
or matcho. Handle -fopenmp-simd.
|
||
(next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
|
||
* scanner.c (skip_free_comments, skip_fixed_comments, include_line):
|
||
Likewise.
|
||
* trans-array.c (get_full_array_size): Rename to...
|
||
(gfc_full_array_size): ... this. No longer static.
|
||
(duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
|
||
and handle it.
|
||
(gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
|
||
duplicate_allocatable callers.
|
||
(gfc_duplicate_allocatable_nocopy): New function.
|
||
(structure_alloc_comps): Adjust g*_full_array_size and
|
||
duplicate_allocatable caller.
|
||
* trans-array.h (gfc_full_array_size,
|
||
gfc_duplicate_allocatable_nocopy): New prototypes.
|
||
* trans-common.c (create_common): Call gfc_finish_decl_attrs.
|
||
* trans-decl.c (gfc_finish_decl_attrs): New function.
|
||
(gfc_finish_var_decl, create_function_arglist,
|
||
gfc_get_fake_result_decl): Call it.
|
||
(gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
|
||
don't allocate it again.
|
||
(gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
|
||
associate-names.
|
||
* trans.h (gfc_finish_decl_attrs): New prototype.
|
||
(struct lang_decl): Add scalar_allocatable and scalar_pointer
|
||
bitfields.
|
||
(GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
|
||
GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
|
||
GFC_DECL_ASSOCIATE_VAR_P): Define.
|
||
(GFC_POINTER_TYPE_P): Remove.
|
||
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
|
||
GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
|
||
GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
|
||
(gfc_omp_predetermined_sharing): Associate-names are predetermined.
|
||
(enum walk_alloc_comps): New.
|
||
(gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
|
||
gfc_walk_alloc_comps): New functions.
|
||
(gfc_omp_private_outer_ref): Return true for scalar allocatables or
|
||
decls with allocatable components.
|
||
(gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
|
||
gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
|
||
allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
|
||
allocatables and decls with allocatable components.
|
||
(gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
|
||
arrays here.
|
||
(gfc_trans_omp_reduction_list): Call
|
||
gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
|
||
(gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
|
||
(gfc_trans_omp_parallel_do_simd): Likewise.
|
||
* trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
|
||
(gfc_get_derived_type): Call gfc_finish_decl_attrs.
|
||
|
||
2014-06-09 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/61406
|
||
* trans-stmt.c (trans_associate_var): Check that array
|
||
constructors are constant for direct reference.
|
||
|
||
2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/36096
|
||
* intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
|
||
BESSEL_Y0, and BESSEL_Y1.
|
||
|
||
2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR fortran/45187
|
||
* trans-decl.c (gfc_create_module_variable): Don't create
|
||
Cray-pointee decls twice.
|
||
|
||
2014-06-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
* io.c (resolve_tag): Warn on non-default kind for NUMBER,
|
||
NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
|
||
|
||
2014-06-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* dump-parse-tree.c (show_omp_namelist): Dump reduction
|
||
id in each list item.
|
||
(show_omp_node): Only handle OMP_LIST_REDUCTION, not
|
||
OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
|
||
dump reduction id here.
|
||
* frontend-passes.c (dummy_code_callback): Renamed to...
|
||
(gfc_dummy_code_callback): ... this. No longer static.
|
||
(optimize_reduction): Use gfc_dummy_code_callback instead of
|
||
dummy_code_callback.
|
||
* gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
|
||
(symbol_attribute): Add omp_udr_artificial_var bitfield.
|
||
(gfc_omp_reduction_op): New enum.
|
||
(gfc_omp_namelist): Add rop and udr fields.
|
||
(OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
|
||
OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
|
||
OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
|
||
OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
|
||
(OMP_LIST_REDUCTION): New.
|
||
(gfc_omp_udr): New type.
|
||
(gfc_get_omp_udr): Define.
|
||
(gfc_symtree): Add n.omp_udr field.
|
||
(gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
|
||
(gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
|
||
gfc_dummy_code_callback): New prototypes.
|
||
* match.h (gfc_match_omp_declare_reduction): New prototype.
|
||
* module.c (MOD_VERSION): Increase to 13.
|
||
(omp_declare_reduction_stmt): New array.
|
||
(mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
|
||
New functions.
|
||
(read_module): Read OpenMP user defined reductions.
|
||
(write_module): Write OpenMP user defined reductions.
|
||
* openmp.c: Include arith.h.
|
||
(gfc_free_omp_udr, gfc_find_omp_udr): New functions.
|
||
(gfc_match_omp_clauses): Handle user defined reductions.
|
||
Store reduction kind into gfc_omp_namelist instead of using
|
||
several OMP_LIST_* entries.
|
||
(match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
|
||
gfc_match_omp_declare_reduction): New functions.
|
||
(resolve_omp_clauses): Adjust for reduction clauses being only
|
||
in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
|
||
(struct omp_udr_callback_data): New type.
|
||
(omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
|
||
functions.
|
||
* parse.c (decode_omp_directive): Handle !$omp declare reduction.
|
||
(case_decl): Add ST_OMP_DECLARE_REDUCTION.
|
||
(gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
|
||
* resolve.c (resolve_fl_variable): Allow len=: or len=* on
|
||
sym->attr.omp_udr_artificial_var symbols.
|
||
(resolve_types): Call gfc_resolve_omp_udrs.
|
||
* symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
|
||
use parent ns instead of gfc_current_ns.
|
||
(gfc_get_sym_tree): Don't insert symbols into
|
||
namespaces with omp_udr_ns set.
|
||
(free_omp_udr_tree): New function.
|
||
(gfc_free_namespace): Call it.
|
||
* trans-openmp.c (struct omp_udr_find_orig_data): New type.
|
||
(omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
|
||
(gfc_trans_omp_array_reduction): Renamed to...
|
||
(gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
|
||
argument, instead pass gfc_omp_namelist pointer N. Handle
|
||
user defined reductions.
|
||
(gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
|
||
Handle user defined reductions and reduction ops in gfc_omp_namelist.
|
||
(gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
|
||
list.
|
||
(gfc_split_omp_clauses): Likewise.
|
||
|
||
2014-06-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR fortran/61418
|
||
* gfortranspec.c (spec_file): Remove.
|
||
(find_spec_file): Likewise.
|
||
(lang_specific_driver): Do not look for specs file in -L
|
||
or append -specs command line argument.
|
||
(lang_specific_pre_link): Always %:include libgfortran.spec.
|
||
|
||
2014-06-02 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* fortran/trans.c (trans_runtime_error_vararg): Call
|
||
fold_build_call_array_loc instead of fold_builtin_call_array.
|
||
|
||
2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
* trans-decl.c (gfc_build_builtin_function_decls): Correct number of
|
||
arguments to caf_init.
|
||
|
||
2014-05-26 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.texi (Project Status): Fix broken link.
|
||
|
||
2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
|
||
|
||
PR libfortran/61310
|
||
* intrinsics.texi (CTIME): Remove mention of locale-dependent
|
||
behavior.
|
||
|
||
2014-05-26 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/55117
|
||
* trans-io.c (nml_full_name, transfer_namelist_element): Insert
|
||
a '+' rather then '%' to differentiate namelist variable names
|
||
that are based on extended derived types.
|
||
|
||
2014-05-25 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* check.c (gfc_check_num_images): New.
|
||
(gfc_check_this_image): Handle distance argument.
|
||
* intrinsic.c (add_functions): Update this_image and num_images
|
||
for new distance and failed arguments.
|
||
* intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
|
||
arguments.
|
||
* intrinsic.h (gfc_check_num_images): New.
|
||
(gfc_check_this_image, gfc_simplify_num_images,
|
||
gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
|
||
* iresolve.c (gfc_resolve_this_image): Handle distance argument.
|
||
* simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
|
||
Handle new arguments.
|
||
* trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
|
||
(gfc_conv_intrinsic_function): Update trans_num_images call.
|
||
|
||
2014-05-23 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfc-internals.texi: Change URLs to HTTPS; fix broken links.
|
||
* gfortran.texi: Ditto.
|
||
|
||
2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
|
||
(DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
|
||
(DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
|
||
* types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
|
||
|
||
2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* f95-lang.c (pushlevel): Adjust.
|
||
* trans-decl.c (gfc_allocate_lang_decl): Adjust.
|
||
(gfc_find_module): Likewise.
|
||
* trans-types.c (gfc_get_nodesc_array_type): Likewise.
|
||
(gfc_get_array_type_bounds): Likewise.
|
||
(gfc_nonrestricted_type): Likewise.
|
||
* trans.h: Don't use variable_size gty attribute.
|
||
|
||
2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr>
|
||
|
||
* check.c (gfc_check_fn_rc2008): move "argument" to the right
|
||
place.
|
||
|
||
2014-05-12 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/60127
|
||
* openmp.c (resolve_omp_do): Reject do concurrent loops.
|
||
|
||
2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/60834
|
||
* frontend-passes.c (in_assoc_list): New variable.
|
||
(optimize_namespace): Initialize in_assoc_list
|
||
(combine_array_constructor): Don't try to combine
|
||
assoc lists.
|
||
(gfc_code_walker): Keep track of in_assoc_list.
|
||
|
||
2014-05-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
|
||
ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
|
||
ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
|
||
ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
|
||
ST_OMP_DECLARE_SIMD.
|
||
(gfc_omp_namelist): New typedef.
|
||
(gfc_get_omp_namelist): Define.
|
||
(OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
|
||
OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
|
||
(gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
|
||
(gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
|
||
Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
|
||
simdlen_expr fields.
|
||
(gfc_omp_declare_simd): New typedef.
|
||
(gfc_get_omp_declare_simd): Define.
|
||
(gfc_namespace): Add omp_declare_simd field.
|
||
(gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
|
||
EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
|
||
EXEC_OMP_PARALLEL_DO_SIMD.
|
||
(gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
|
||
and GFC_OMP_ATOMIC_SWAP.
|
||
(gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
|
||
(gfc_free_omp_namelist, gfc_free_omp_declare_simd,
|
||
gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
|
||
prototypes.
|
||
* trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
|
||
* symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
|
||
* openmp.c (gfc_free_omp_clauses): Free safelen_expr and
|
||
simdlen_expr. Use gfc_free_omp_namelist instead of
|
||
gfc_free_namelist.
|
||
(gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
|
||
functions.
|
||
(gfc_match_omp_variable_list): Add end_colon, headp and
|
||
allow_sections arguments. Handle parsing of array sections.
|
||
Use *omp_namelist* instead of *namelist* data structure and
|
||
functions/macros. Allow termination at : character.
|
||
(OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
|
||
OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
|
||
OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
|
||
(gfc_match_omp_clauses): Change first and needs_space variables
|
||
into arguments with default values. Parse inbranch, notinbranch,
|
||
proc_bind, safelen, simdlen, uniform, linear, aligned and
|
||
depend clauses.
|
||
(OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
|
||
(OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
|
||
(OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
|
||
(gfc_match_omp_do_simd): New function.
|
||
(gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
|
||
data structure and functions/macros.
|
||
(gfc_match_omp_simd, gfc_match_omp_declare_simd,
|
||
gfc_match_omp_parallel_do_simd): New functions.
|
||
(gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
|
||
(gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
|
||
gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
|
||
functions.
|
||
(resolve_omp_clauses): Add where, omp_clauses and ns arguments.
|
||
Use *omp_namelist* instead of *namelist* data structure and
|
||
functions/macros. Resolve uniform, aligned, linear, depend,
|
||
safelen and simdlen clauses.
|
||
(resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
|
||
addition, recognize atomic swap.
|
||
(gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
|
||
of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
|
||
EXEC_OMP_PARALLEL_DO.
|
||
(gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
|
||
data structure and functions/macros.
|
||
(resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
|
||
EXEC_OMP_PARALLEL_DO_SIMD.
|
||
(gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
|
||
EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
|
||
resolve_omp_clauses caller.
|
||
(gfc_resolve_omp_declare_simd): New function.
|
||
* parse.c (decode_omp_directive): Parse cancellation point, cancel,
|
||
declare simd, end do simd, end simd, end parallel do simd,
|
||
end taskgroup, parallel do simd, simd and taskgroup directives.
|
||
(case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
|
||
(case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
|
||
ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
|
||
(case_decl): Add ST_OMP_DECLARE_SIMD.
|
||
(gfc_ascii_statement): Handle ST_OMP_CANCEL,
|
||
ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
|
||
ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
|
||
ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
|
||
ST_OMP_DECLARE_SIMD.
|
||
(parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
|
||
ST_OMP_PARALLEL_DO_SIMD.
|
||
(parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
|
||
(parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
|
||
ST_OMP_PARALLEL_DO_SIMD.
|
||
(parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
|
||
ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
|
||
* trans-decl.c (gfc_get_extern_function_decl,
|
||
gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
|
||
needed.
|
||
* frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
|
||
EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
|
||
safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
|
||
of depend, aligned and linear clauses.
|
||
* match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
|
||
and EXEC_OMP_PARALLEL_DO_SIMD.
|
||
(gfc_free_omp_namelist): New function.
|
||
* dump-parse-tree.c (show_namelist): Removed.
|
||
(show_omp_namelist): New function.
|
||
(show_omp_node): Handle OpenMP 4.0 additions.
|
||
(show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
|
||
EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
|
||
EXEC_OMP_TASKGROUP.
|
||
* match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
|
||
gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
|
||
gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
|
||
gfc_match_omp_taskgroup): New prototypes.
|
||
* trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
|
||
argument, handle it. Allow current_function_decl to be NULL.
|
||
(gfc_trans_omp_variable_list): Add declare_simd argument, pass
|
||
it through to gfc_trans_omp_variable and disregard whether
|
||
sym is referenced if declare_simd is true. Work on gfc_omp_namelist
|
||
instead of gfc_namelist.
|
||
(gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
|
||
gfc_namelist. Adjust gfc_trans_omp_variable caller.
|
||
(gfc_trans_omp_clauses): Add declare_simd argument, pass it through
|
||
to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
|
||
instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
|
||
simdlen, depend, uniform, linear, proc_bind and aligned clauses.
|
||
Handle cancel kind.
|
||
(gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
|
||
adjust for GFC_OMP_ATOMIC_* changes.
|
||
(gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
|
||
functions.
|
||
(gfc_trans_omp_do): Add op argument, handle simd translation into
|
||
generic.
|
||
(GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
|
||
GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
|
||
GFC_OMP_MASK_PARALLEL): New.
|
||
(gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
|
||
(gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
|
||
(gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
|
||
functions.
|
||
(gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
|
||
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
|
||
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
|
||
Adjust gfc_trans_omp_do caller.
|
||
(gfc_trans_omp_declare_simd): New function.
|
||
* st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
|
||
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
|
||
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
|
||
For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
|
||
gfc_free_namelist.
|
||
* module.c (omp_declare_simd_clauses): New variable.
|
||
(mio_omp_declare_simd): New function.
|
||
(mio_symbol): Call it.
|
||
* trans.c (trans_code): Handle EXEC_OMP_CANCEL,
|
||
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
|
||
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
|
||
* resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
|
||
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
|
||
(resolve_code): Handle EXEC_OMP_CANCEL,
|
||
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
|
||
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
|
||
(resolve_types): Call gfc_resolve_omp_declare_simd.
|
||
|
||
2014-05-11 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-intrinsic.c (gfc_build_builtin_function_decls):
|
||
Change type of second argument to int.
|
||
|
||
2014-05-09 Mike Stump <mikestump@comcast.net>
|
||
|
||
PR fortran/61109
|
||
* trans-array.c (gfc_conv_array_initializer): Fix wide-int
|
||
conversion bug.
|
||
|
||
2014-05-08 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
|
||
and GFC_ISYM_CAF_SEND.
|
||
* intrinsic.c (add_functions): Add only internally
|
||
accessible caf_get and caf_send functions.
|
||
* resolve.c (add_caf_get_intrinsic,
|
||
remove_caf_get_intrinsic): New functions.
|
||
(resolve_variable): Resolve expression rank and
|
||
prepare for add_caf_get_intrinsic call.
|
||
(gfc_resolve_expr): For variables, remove rank
|
||
resolution.
|
||
(resolve_ordinary_assign): Prepare call to
|
||
GFC_ISYM_CAF_SEND.
|
||
(resolve_code): Avoid call to GFC_ISYM_CAF_GET for
|
||
the LHS of an assignment.
|
||
|
||
2014-05-08 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
|
||
|
||
2014-05-08 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* check.c (check_co_minmaxsum, gfc_check_co_minmax,
|
||
gfc_check_co_sum): New.
|
||
* error.c (gfc_notify_std): Update -std=f2008ts.
|
||
* gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
|
||
GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
|
||
* intrinsic.h (gfc_check_co_minmax,
|
||
gfc_check_co_sum): Declare.
|
||
* intrinsic.c (add_subroutines): Add co_min, co_max
|
||
and co_sum.
|
||
(gfc_check_intrinsic_standard): Update text for
|
||
-std=f2008ts.
|
||
* intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
|
||
them.
|
||
* invoke.texi (-std=f2008ts): Update wording.
|
||
* trans.h (gfor_fndecl_co_max,
|
||
gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
|
||
* trans-decl.c (gfor_fndecl_co_max,
|
||
gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
|
||
(gfc_build_builtin_function_decls): Assign to it.
|
||
* trans-intrinsic.c (conv_co_minmaxsum): New.
|
||
(gfc_conv_intrinsic_subroutine): Call it.
|
||
|
||
2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
Mike Stump <mikestump@comcast.net>
|
||
Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* target-memory.c: Include wide-int.h.
|
||
(gfc_interpret_logical): Use wide-int interfaces.
|
||
* trans-array.c: Include wide-int.h.
|
||
(gfc_conv_array_initializer): Use wide-int interfaces.
|
||
* trans-const.c: Include wide-int.h.
|
||
(gfc_conv_string_init): Use wide-int interfaces.
|
||
(gfc_conv_mpz_to_tree): Likewise.
|
||
(gfc_conv_tree_to_mpz): Likewise.
|
||
* trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
|
||
* trans-expr.c: Include wide-int.h.
|
||
(gfc_conv_cst_int_power): Use wide-int interfaces.
|
||
(gfc_string_to_single_character): Likewise.
|
||
(gfc_optimize_len_trim): Likewise.
|
||
* trans-intrinsic.c: Include wide-int.h.
|
||
(trans_this_image): Use wide-int interfaces.
|
||
(gfc_conv_intrinsic_bound): Likewise.
|
||
(conv_intrinsic_cobound): Likewise.
|
||
* trans-types.c (gfc_init_types): Likewise.
|
||
(gfc_get_array_type_bounds): Pass an integer of the correct type
|
||
instead of using integer_one_node.
|
||
|
||
2014-04-30 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-decl.c (create_function_arglist): Add hidden coarray arguments
|
||
also for polymorphic coarrays.
|
||
* trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
|
||
also for polymorphic coarrays.
|
||
|
||
2014-04-30 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* resolve.c (resolve_function): Don't do
|
||
assumed-size check for lcobound/ucobound.
|
||
* trans-types.c (gfc_build_array_type): Only build an array
|
||
descriptor with codimensions for allocatable coarrays.
|
||
|
||
2014-04-30 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.h (gfc_init_coarray_decl): Remove.
|
||
* parse.c (translate_all_program_units): Remove call to it.
|
||
(gfc_parse_file): Update call.
|
||
* trans.h (gfor_fndecl_caf_this_image,
|
||
gfor_fndecl_caf_num_images): Add.
|
||
(gfort_gvar_caf_num_images,
|
||
gfort_gvar_caf_this_image): Remove.
|
||
* trans-decl.c (gfor_fndecl_caf_this_image,
|
||
gfor_fndecl_caf_num_images): Add.
|
||
(gfort_gvar_caf_num_images,
|
||
gfort_gvar_caf_this_image): Remove.
|
||
(gfc_build_builtin_function_decls): Init new decl.
|
||
(gfc_init_coarray_dec): Remove.
|
||
(create_main_function): Change calls.
|
||
* trans-intrinsic.c (trans_this_image, trans_image_index,
|
||
conv_intrinsic_cobound): Generate call to new library function
|
||
instead of to a static variable.
|
||
* trans-stmt.c (gfc_trans_sync): Ditto.
|
||
|
||
2014-04-30 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
|
||
and derived-type coarrays.
|
||
|
||
2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/59604
|
||
PR fortran/58003
|
||
* gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
|
||
* arith.c (gfc_int2int): Convert number to signed if
|
||
arithmetic overflow is not checked.
|
||
* simplify.c (convert_mpz_to_unsigned): Only trigger assert for
|
||
size if range checking is in force.
|
||
(convert_mpz_to_signed): Make non-static, rename to
|
||
(gfc_convert_mpz_to_signed).
|
||
(simplify_dshift): Use gfc_convert_mpz_to_signed.
|
||
(gfc_simplify_ibclr): Likewise.
|
||
(gfc_simplify_ibits): Likewise.
|
||
(gfc_simplify_ibset): Likewise.
|
||
(simplify_shift): Likewise.
|
||
(gfc_simplify_ishiftc): Likewise.
|
||
(gfc_simplify_maskr): Likewise.
|
||
(gfc_simplify_maskl): Likewise.
|
||
|
||
2014-04-22 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/60881
|
||
* trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
|
||
of scalar coarrays.
|
||
|
||
2014-04-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
|
||
argument is enum machine_mode.
|
||
|
||
2014-04-13 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/58085
|
||
PR fortran/60717
|
||
* trans.h: Add 'use_offset' bitfield to gfc_se.
|
||
* trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
|
||
as a trigger to unconditionally recalculate the offset for
|
||
array slices and constant arrays.
|
||
trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
|
||
trans-stmt.c (trans_associate_var): Ditto.
|
||
(gfc_conv_procedure_call): Ditto.
|
||
|
||
2014-04-11 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/58880
|
||
PR fortran/60495
|
||
* resolve.c (gfc_resolve_finalizers): Ensure that vtables
|
||
and finalization wrappers are generated.
|
||
|
||
2014-04-11 Janne Blomqvist <jb@gcc.gnu.org>
|
||
|
||
* intrinsic.texi (RANDOM_SEED): Improve example.
|
||
|
||
2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
* class.c (gfc_build_class_symbol): Append "_t" to target class
|
||
names to make the generated type names unique.
|
||
|
||
2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
PR fortran/60191
|
||
* trans-types.c (gfc_get_function_type): In case of recursion
|
||
build a variadic function type with empty argument list instead of a
|
||
stdarg-like function type with incomplete argument list.
|
||
|
||
2014-04-04 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* check.c (gfc_check_cmplx): Fix typo.
|
||
|
||
2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
|
||
Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/60576
|
||
* trans-expr.c (gfc_conv_derived_to_class): Avoid
|
||
generation of out-of-bounds range expr.
|
||
|
||
2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/60677
|
||
* trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
|
||
list buffer.
|
||
|
||
2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/60522
|
||
* frontend-passes.c (cfe_code): Do not walk subtrees
|
||
for WHERE.
|
||
|
||
2014-03-27 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/58880
|
||
* trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
|
||
of nonpointers.
|
||
|
||
2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
|
||
|
||
PR fortran/34928
|
||
* fortran.texi: Document Volatile COMMON as not supported.
|
||
|
||
2014-03-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/60603
|
||
* cpp.c (gfc_cpp_init): Restore cb_change_file call to
|
||
<built-in>.
|
||
|
||
2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/60148
|
||
* gfortran.texi: Add description of namelist DELIM= behavior.
|
||
|
||
2014-03-19 Tobias Burnus <burnus@net-b.>
|
||
|
||
PR fortran/60543
|
||
* io.c (check_io_constraints): Use gfc_unset_implicit_pure.
|
||
* resolve.c (resolve_ordinary_assign): Ditto.
|
||
|
||
2014-03-19 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/60543
|
||
PR fortran/60283
|
||
* gfortran.h (gfc_unset_implicit_pure): New prototype.
|
||
* resolve.c (gfc_unset_implicit_pure): New.
|
||
(resolve_structure_cons, resolve_function,
|
||
pure_subroutine): Use it.
|
||
* decl.c (match_old_style_init, gfc_match_data,
|
||
match_pointer_init, variable_decl): Ditto.
|
||
* expr.c (gfc_check_pointer_assign): Ditto.
|
||
* intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
|
||
* io.c (match_vtag, gfc_match_open, gfc_match_close,
|
||
match_filepos, gfc_match_inquire, gfc_match_print,
|
||
gfc_match_wait): Ditto.
|
||
* match.c (gfc_match_critical, gfc_match_stopcode,
|
||
lock_unlock_statement, sync_statement, gfc_match_allocate,
|
||
gfc_match_deallocate): Ditto.
|
||
* parse.c (decode_omp_directive): Ditto.
|
||
* symbol.c (gfc_add_save): Ditto.
|
||
|
||
2014-03-18 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/55207
|
||
PR fortran/60549
|
||
* decl.c (match_attr_spec): Revert r208590.
|
||
|
||
2014-03-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR ipa/58721
|
||
* trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
|
||
if !optimize.
|
||
|
||
2014-03-18 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR ipa/58721
|
||
* trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
|
||
(gfc_trans_io_runtime_check): Remove.
|
||
* trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
|
||
as argument, add predictor to block.
|
||
(set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
|
||
gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
|
||
* trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
|
||
(gfc_trans_runtime_check, gfc_allocate_using_malloc,
|
||
gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
|
||
branch predictor.
|
||
* trans-expr.c (gfc_conv_procedure_call): Ditto.
|
||
* trans-stmt.c (gfc_trans_allocate): Ditto.
|
||
* trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
|
||
|
||
2014-03-15 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/55207
|
||
* decl.c (match_attr_spec): Variables in the main program implicitly
|
||
get the SAVE attribute in Fortran 2008.
|
||
|
||
2014-03-14 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/60392
|
||
* trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
|
||
if it has transposed dimensions.
|
||
|
||
2014-03-08 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/60447
|
||
* f95-lang.c (gfc_init): Return false when only
|
||
preprocessing.
|
||
* options.c (gfc_post_options): Ditto.
|
||
|
||
2014-03-08 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortran.texi (Fortran 2003 Status): Mention finalization,
|
||
deferred-length character support and input rounding.
|
||
(Fortran 2008 Status): Mention that at termination
|
||
signalling exceptions are shown.
|
||
|
||
2014-03-06 Paul Thomas <pault@gcc.gnu.org>
|
||
Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/51976
|
||
* gfortran.h (symbol_attribute): Add deferred_parameter attribute.
|
||
* primary.c (build_actual_constructor): It is not an error if
|
||
a missing component has the deferred_parameter attribute;
|
||
equally, if one is given a value, it is an error.
|
||
* resolve.c (resolve_fl_derived0): Remove error for deferred
|
||
character length components. Add the hidden string length
|
||
field to the structure. Give it the deferred_parameter
|
||
attribute.
|
||
* trans-array.c (duplicate_allocatable): Add a strlen field
|
||
which is used as the element size if it is non-null.
|
||
(gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
|
||
NULL to the new argument in duplicate_allocatable.
|
||
(structure_alloc_comps): Set the hidden string length as
|
||
appropriate. Use it in calls to duplicate_allocatable.
|
||
(gfc_alloc_allocatable_for_assignment): When a deferred length
|
||
backend declaration is variable, use that; otherwise use the
|
||
string length from the expression evaluation.
|
||
* trans-expr.c (gfc_conv_component_ref): If this is a deferred
|
||
character length component, the string length should have the
|
||
value of the hidden string length field.
|
||
(gfc_trans_subcomponent_assign): Set the hidden string length
|
||
field for deferred character length components. Allocate the
|
||
necessary memory for the string.
|
||
(alloc_scalar_allocatable_for_assignment): Same change as in
|
||
gfc_alloc_allocatable_for_assignment above.
|
||
* trans-stmt.c (gfc_trans_allocate): Likewise.
|
||
* trans-intrinsic (size_of_string_in_bytes): Make non-static.
|
||
* trans-types.c (gfc_get_derived_type): Set the tree type for
|
||
a deferred character length component.
|
||
* trans.c (gfc_deferred_strlen): New function.
|
||
* trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
|
||
|
||
2014-03-01 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/60341
|
||
* frontend-passes.c (optimize_comparison): Guard two union accesses
|
||
with the corresponding tag checks.
|
||
|
||
2014-02-28 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/60359
|
||
* class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
|
||
procedure for characters.
|
||
|
||
2014-02-21 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/60302
|
||
* check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
|
||
is successful.
|
||
|
||
2014-02-21 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/60234
|
||
* gfortran.h (gfc_build_class_symbol): Removed argument.
|
||
* class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
|
||
(gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
|
||
delayed now, except for unlimited polymorphics.
|
||
(comp_is_finalizable): Procedure pointer components are not finalizable.
|
||
* decl. (build_sym, build_struct, attr_decl1): Removed argument of
|
||
'gfc_build_class_symbol'.
|
||
* match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
|
||
Ditto.
|
||
* symbol.c (gfc_set_default_type): Ditto.
|
||
|
||
2014-02-19 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/60232
|
||
* expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
|
||
functions, which are used as procedure pointer target.
|
||
|
||
2014-02-18 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR fortran/49397
|
||
* expr.c (gfc_check_pointer_assign): Add check for
|
||
F2008Cor2, C729.
|
||
* trans-decl.c (gfc_get_symbol_decl): Correctly generate external
|
||
decl in a corner case.
|
||
|
||
2014-02-18 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/60231
|
||
* resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
|
||
arguments to prevent ICE.
|
||
|
||
2014-02-17 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/55907
|
||
* resolve.c (build_default_init_expr): Don't initialize character
|
||
variable if -fno-automatic is given.
|
||
|
||
2014-02-15 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/59599
|
||
* trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
|
||
number of arguments.
|
||
|
||
2014-02-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/52370
|
||
* trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
|
||
on decl if sym->attr.optional.
|
||
|
||
2014-02-09 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/57522
|
||
* resolve.c (resolve_assoc_var): Set the subref_array_pointer
|
||
attribute for the 'associate-name' if necessary.
|
||
* trans-stmt.c (trans_associate_var): If the 'associate-name'
|
||
is a subref_array_pointer, assign the element size of the
|
||
associate variable to 'span'.
|
||
|
||
2014-02-09 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/59026
|
||
* trans-expr.c (gfc_conv_procedure_call): Pass the value of the
|
||
actual argument to a formal argument with the value attribute
|
||
in an elemental procedure.
|
||
|
||
2014-02-08 Janus Weil <janus@gcc.gnu.org>
|
||
Mikael Morin <mikael.morin@gcc.gnu.org>
|
||
|
||
PR fortran/58470
|
||
* class.c (generate_finalization_wrapper): Assert that proc_tree has
|
||
been set in gfc_resolve_finalizers.
|
||
* resolve.c (resolve_fl_derived0): Remove unnecessary call to
|
||
gfc_is_finalizable.
|
||
|
||
2014-02-07 Benno Schulenberg <bensberg@justemail.net>
|
||
|
||
PR translation/52289
|
||
* fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
|
||
in an error message.
|
||
|
||
2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/57033
|
||
* primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
|
||
dereference.
|
||
|
||
2014-02-01 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/59906
|
||
* trans-stmt.c (gfc_add_loop_ss_code): In the case of character
|
||
SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
|
||
pointer to the string is stored.
|
||
* trans-expr.c (gfc_conv_expr_reference): Likewise, use
|
||
gfc_conv_string_parameter to ensure that a pointer to is passed
|
||
to the elemental function.
|
||
|
||
2014-01-28 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/59414
|
||
* trans-stmt.c (gfc_trans_allocate): Before the pointer
|
||
assignment to transfer the source _vptr to a class allocate
|
||
expression, the final class reference should be exposed. The
|
||
tail that includes the _data and array references is stored.
|
||
This reduced expression is transferred to 'lhs' and the _vptr
|
||
added. Then the tail is restored to the allocate expression.
|
||
|
||
2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/58007
|
||
* module.c (read_module): Assert for component name correctness.
|
||
|
||
2014-01-18 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/58007
|
||
* module.c (MOD_VERSION): Bump.
|
||
(fp2, find_pointer2): Remove.
|
||
(mio_component_ref): Don't forcedfully set the containing derived type
|
||
symbol for loading. Remove unused argument.
|
||
(mio_ref): Update caller
|
||
(mio_symbol): Dump component list earlier.
|
||
(skip_list): New argument nest_level. Initialize level with the new
|
||
argument.
|
||
(read_module): Add forced pointer components association for derived
|
||
type symbols.
|
||
|
||
2014-01-12 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/58026
|
||
* decl.c (gfc_match_data_decl): Improve error recovery.
|
||
|
||
2014-01-09 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* cpp.c (gfc_cpp_handle_option): Add missing break.
|
||
* trans-io.c (transfer_expr): Silence unused value warning.
|
||
|
||
2014-01-08 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/58182
|
||
* resolve.c (gfc_verify_binding_labels): Modify order of checks.
|
||
|
||
2014-01-06 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/59589
|
||
* class.c (comp_is_finalizable): New function to dermine if a given
|
||
component is finalizable.
|
||
(finalize_component, generate_finalization_wrapper): Use it.
|
||
|
||
2014-01-06 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/59023
|
||
PR fortran/59662
|
||
* resolve.c (resolve_global_procedure): Don't apply to c-binding
|
||
procedures.
|
||
(gfc_verify_binding_labels): Remove duplicate line.
|
||
|
||
2014-01-04 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/59547
|
||
* class.c (add_proc_comp): Copy pure attribute.
|
||
|
||
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
Update copyright years
|
||
|
||
2014-01-02 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gfortranspec.c (lang_specific_driver): Update copyright notice
|
||
dates.
|
||
* gfc-internals.texi: Bump @copying's copyright year.
|
||
* gfortran.texi: Ditto.
|
||
* intrinsic.texi: Ditto.
|
||
* invoke.texi: Ditto.
|
||
|
||
2014-01-02 Janus Weil <janus@gcc.gnu.org>
|
||
|
||
PR fortran/59654
|
||
* resolve.c (resolve_typebound_procedures): No need to create the vtab
|
||
here.
|
||
|
||
Copyright (C) 2014 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|