1 2014-09-20 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
2 Tobias Burnus <burnus@net-b.de>
4 * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with
5 generating temporary for value argument.
7 2014-09-20 Joost VandeVondele <vondele@gcc.gnu.org>
9 * trans-expr.c (gfc_reset_vptr): Fix comment whitespace.
10 (gfc_conv_class_to_class): Likewise.
11 (gfc_conv_procedure_call): Likewise.
12 (arrayfunc_assign_needs_temporary): Likewise.
13 (realloc_lhs_loop_for_fcn_call): Likewise.
14 (gfc_trans_assignment_1): Likewise.
15 * trans-array.c (gfc_conv_array_ref): Likewise.
16 (gfc_array_allocate): Likewise.
17 (gfc_alloc_allocatable_for_assignment): Likewise.
18 * symbol.c (generate_isocbinding_symbol): Likewise.
19 * class.c (finalization_scalarizer): Likewise.
20 (finalizer_insert_packed_call): Likewise.
21 (generate_finalization_wrapper): Likewise.
22 (find_intrinsic_vtab): Likewise.
23 * decl.c (gfc_match_import): Likewise.
24 (match_procedure_decl): Likewise.
25 (gfc_match_subroutine): Likewise.
26 (gfc_match_bind_c): Likewise.
27 (gfc_match_volatile): Likewise.
28 * trans-common.c (create_common): Likewise.
29 * error.c (gfc_diagnostic_starter): Likewise.
30 * trans-stmt.c (gfc_trans_sync): Likewise.
31 (gfc_trans_critical): Likewise.
32 (gfc_trans_simple_do): Likewise.
33 (gfc_trans_do): Likewise.
34 (gfc_trans_where_assign): Likewise.
35 * expr.c (gfc_is_simply_contiguous): Likewise.
36 * module.c (unquote_string): Likewise.
37 * trans.c (gfc_add_finalizer_call): Likewise.
38 * trans-types.c (gfc_init_kinds): Likewise.
39 * scanner.c (preprocessor_line): Likewise.
40 * gfortranspec.c (lang_specific_driver): Likewise.
41 * frontend-passes.c (create_var): Likewise.
42 (cfe_expr_0): Likewise.
43 * resolve.c (check_host_association): Likewise.
44 (gfc_resolve_code): Likewise.
45 (resolve_fl_derived0): Likewise.
46 (resolve_symbol): Likewise.
47 * f95-lang.c (poplevel): Likewise.
48 * trans-decl.c (create_main_function): Likewise.
49 * trans-io.c (transfer_expr): Likewise.
50 * arith.c (gfc_arith_divide): Likewise.
51 * parse.c (resolve_all_program_units): Likewise.
52 * check.c (gfc_check_rank): Likewise.
53 (gfc_check_sizeof): Likewise.
54 (is_c_interoperable): Likewise.
55 * dependency.c (gfc_dep_difference): Likewise.
56 * primary.c (gfc_match_rvalue): Likewise.
57 * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise.
58 (conv_isocbinding_subroutine): Likewise.
59 * options.c (gfc_post_options): Likewise.
60 (gfc_handle_fpe_option): Likewise.
61 (gfc_get_option_string): Likewise.
62 * simplify.c (simplify_transformation_to_scalar): Likewise.
63 (gfc_simplify_spread): Likewise.
65 2014-09-19 Joost VandeVondele <vondele@gcc.gnu.org>
68 * trans-array.c (gfc_trans_deferred_array): Only nullify allocatables.
70 2014-09-15 Jakub Jelinek <jakub@redhat.com>
72 * Make-lang.in (check_gfortran_parallelize): Change to just an upper
75 2014-09-13 Tobias Burnus <burnus@net-b.de>
78 * trans-decl.c (gfc_build_builtin_function_decls): Fix
79 caf_unlock declaration.
81 2014-09-12 Joseph Myers <joseph@codesourcery.com>
83 * trans-types.c (gfc_init_kinds): Check
84 targetm.libgcc_floating_mode_supported_p for floating-point
85 modes. Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
87 2014-09-05 Joost VandeVondele <vondele@gcc.gnu.org>
90 * intrinsic.texi (INT): clarify result.
92 2014-09-03 Fritz Reese <Reese-Fritz@zai.com>
95 * decl.c (variable_decl): Don't overwrite typespecs of Cray pointees
96 when matching a component declaration.
98 2014-09-02 Marek Polacek <polacek@redhat.com>
101 * interface.c (compare_parameter): Fix condition.
102 * trans-expr.c (gfc_conv_procedure_call): Likewise.
104 2014-08-31 Fritz Reese <Reese-Fritz@zai.com>
107 * resolve.c (apply_default_init_local): Don't treat variables
108 in RECURSIVE procedures as saved.
110 2014-08-31 Tobias Burnus <burnus@net-b.de>
112 * trans-decl.c (gfc_build_builtin_function_decls): Add
113 may_require_tmp dummy argument.
114 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
115 conv_caf_send): Handle may_require_tmp argument.
116 (gfc_conv_intrinsic_function): Update call.
117 * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
118 _gfortran_caf_sendget): Update interface description.
120 2014-08-30 Tobias Burnus <burnus@net-b.de>
122 * trans.h (gfc_caf_get_image_index,
123 gfc_get_caf_token_offset): New prototypes.
124 * trans-expr.c (gfc_caf_get_image_index): Moved from
125 trans-intrinsic.c and renamed.
126 (gfc_get_caf_token_offset) Ditto; support offset = NULL
128 * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
130 (gfc_conv_intrinsic_caf_get, conv_caf_send,
131 conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
132 conv_intrinsic_atomic_cas): Update callers.
134 2014-08-30 Tobias Burnus <burnus@net-b.de>
139 * dependency.c (gfc_check_dependency): Allow for optimizations
140 in the pointer-alias check.
142 2014-08-30 Janne Blomqvist <jb@gcc.gnu.org>
144 * module.c (gfc_dump_module): Use ISO C remove() instead of POSIX
147 2014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com>
150 * module.c (gfc_dump_module): Unlink old module file before
153 2014-08-26 Thomas Koenig <tkoenig@gcc.gnu.org>
155 * frontend_passes (expr_array): Replace by vec template.
157 (expr_count): Remove.
158 (doloop_list): Replace by vec template.
159 (doloop_size): Remove.
160 (gfc_run_passes): Adjust to use of vec template.
161 (cfe_register_funcs): Likewise.
162 (cfe_expr_0): Likewise.
163 (doloop_code): Likewise.
165 2014-08-22 Steven Bosscher <steven@gcc.gnu.org>
168 * resolve.c (resolve_select): Fix list traversal in case the
169 last element of the CASE list was dropped as unreachable code.
171 2014-08-22 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
174 * lang.opt (Wuse-without-only): New flag.
175 * gfortran.h (gfc_option_t): Add it.
176 * invoke.texi: Document it.
177 * module.c (gfc_use_module): Warn if needed.
178 * options.c (gfc_init_options,gfc_handle_option): Init accordingly.
180 2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
183 * frontend-passes.c (optimize_binop_array_assignment):
184 Do not try to optimize the array assignment for string
187 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
190 * error.c (gfc_diagnostic_build_locus_prefix): New function.
191 (gfc_diagnostic_starter): Follow Fortran FE diagnostics.
192 (gfc_diagnostic_finalizer): Do not call default finalizer.
194 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
197 * error.c (gfc_diagnostic_finalizer): Call default finalizer.
199 2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
201 * options.c (gfc_init_options_struct): assert that the frontend sets
202 flag_errno_math and flag_associative_math.
204 2014-08-17 Tobias Burnus <burnus@net-b.de>
206 * resolve.c (gfc_resolve_finalizers): Ensure that parents are
209 2014-08-17 Tobias Burnus <burnus@net-b.de>
211 * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
213 (transfer_namelist_element): Use proper int type as argument.
215 2014-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
218 * trans-expr.c (is_runtime_conformable): Add NULL pointer checks.
220 2014-08-15 Tobias Burnus <burnus@net-b.de>
222 * resolve.c (resolve_critical): Fix name mangling.
223 * trans-stmt.c (gfc_trans_critical): Fix lock call.
225 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
228 * gfortran.h: Define GCC_DIAG_STYLE.
229 (gfc_diagnostics_init,gfc_warning_cmdline): Declare.
230 * trans-array.c: Include gfortran.h before diagnostic-core.h.
231 * trans-expr.c: Likewise.
232 * trans-openmp.c: Likewise.
233 * trans-const.c: Likewise.
235 * trans-types.c: Likewise.
236 * f95-lang.c: Likewise.
237 * trans-decl.c: Likewise.
238 * trans-io.c: Likewise.
239 * trans-intrinsic.c: Likewise.
240 * error.c: Include diagnostic.h and diagnostic-color.h.
241 (gfc_diagnostic_build_prefix): New.
242 (gfc_diagnostic_starter): New.
243 (gfc_diagnostic_finalizer): New.
244 (gfc_warning_cmdline): New.
245 (gfc_diagnostics_init): New.
246 * gfc-diagnostic.def: New.
247 * options.c (gfc_init_options): Call gfc_diagnostics_init.
248 (gfc_post_options): Use gfc_warning_cmdline.
250 2014-08-15 Jakub Jelinek <jakub@redhat.com>
251 Tobias Burnus <burnus@net-b.de>
254 * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
255 is allocatable, rather than whenever var->attr.allocatable.
257 2014-08-15 Jakub Jelinek <jakub@redhat.com>
260 * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
261 or allocatable passed by reference.
262 (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
264 2014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
267 * gfortran.h (symbol_attribute): Add fe_temp flag.
268 * frontend-passes.c (is_fe_temp): New function.
269 (create_var): Don't add a temporary for an already
270 created variable or for a constant.
271 (combine_ARRAY_constructor): Remove special handling
274 2014-08-14 Tobias Burnus <burnus@net-b.de>
276 * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
277 (_gfortran_caf_register): Update for locking/critical.
278 (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
279 * resolve.c (resolve_critical): New.
280 (gfc_resolve_code): Call it.
281 * trans-decl.c (gfor_fndecl_caf_critical,
282 gfor_fndecl_caf_end_critical): Remove.
283 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
284 (gfc_build_builtin_function_decls): Remove critical,
285 assign locking declarations.
286 (generate_coarray_sym_init): Handle locking and
288 * trans-stmt.c (gfc_trans_critical): Add calls to
289 lock/unlock libcaf functions.
290 * trans.h (gfc_coarray_type): Update locking, add
291 critical enum values.
292 (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
293 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
295 2014-08-14 Tobias Burnus <burnus@net-b.de>
297 * gfortran.texi (Coarray Programming): Add first ABI
300 2014-08-14 Jakub Jelinek <jakub@redhat.com>
303 * openmp.c (gfc_match_omp_clauses): When failed to match
304 operator name, defined op name or name, set buffer to
305 empty string. Don't call gfc_find_omp_udr if buffer is empty
307 (gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
308 before calling gfc_free_omp_udr.
310 2014-08-11 Richard Biener <rguenther@suse.de>
313 * trans-expr.c (gfc_conv_structure): Initialize _size with
314 a value of proper type.
316 2014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
319 * simplify.c (gfc_simplify_dot_product): Convert types of
320 vectors before calculating the result.
322 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
324 * openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
326 2014-07-26 Tobias Burnus <burnus@net-b.de>
331 * intrinsic.texi (SIZEOF): Document changed behavior
332 for polymorphic arrays.
334 2014-07-26 Tobias Burnus <burnus@net-b.de>
339 * check.c (gfc_check_sizeof): Permit for assumed type if and
340 only if it has an array descriptor.
341 * intrinsic.c (do_ts29113_check): Permit SIZEOF.
342 (add_functions): SIZEOF is an Inquiry function.
343 * intrinsic.texi (SIZEOF): Add note that only contiguous
344 arrays are permitted.
345 * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
347 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
348 assumed type + array descriptor, CLASS and assumed rank.
349 (gfc_conv_intrinsic_storage_size): Handle class arrays.
351 2014-07-25 Tobias Burnus <burnus@net-b.de>
353 * simplify.c (gfc_simplify_storage_size): Use proper
354 integer kind for the returned value.
356 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
358 * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
359 correct menu position to match sectioning.
361 2014-06-15 Tobias Burnus <burnus@net-b.de>
363 * symbol.c (check_conflict): Add codimension conflict with
364 pointer; fix cray-pointee check.
366 2014-06-14 Tobias Burnus <burnus@net-b.de>
368 * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
369 for kind mismatch with -fcoarray=lib.
371 2014-07-12 Paul Thomas <pault@gcc.gnu.org>
374 * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
375 that elements are skipped. This then correctly aligns 'reverse'
376 with the scalarizer loops.
378 2014-07-12 Tobias Burnus <burnus@net-b.de>
381 * trans-types.c (gfc_init_types): Fix data-type bug
382 with gfc_max_array_element_size.
384 2014-07-12 Tobias Burnus <burnus@net-b.de>
386 * libgfortran.h (libcaf_atomic_codes): Add.
387 * trans-decl.c (gfor_fndecl_caf_atomic_def,
388 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
389 gfor_fndecl_caf_atomic_op): New variables.
390 (gfc_build_builtin_function_decls): Initialize them.
391 * trans.h (gfor_fndecl_caf_atomic_def,
392 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
393 gfor_fndecl_caf_atomic_op): New variables.
394 * trans-intrinsic.c (conv_intrinsic_atomic_op,
395 conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
396 Add library calls with -fcoarray=lib.
398 2014-07-12 Tobias Burnus <burnus@net-b.de>
400 * check.c (gfc_check_atomic): Update for STAT=.
401 (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
402 (gfc_check_atomic_op, gfc_check_atomic_cas,
403 gfc_check_atomic_fetch_op): New.
404 * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
405 GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
406 GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
407 GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
408 * intrinsic.c (add_subroutines): Handle them.
409 * intrinsic.texi: Add documentation for them.
410 (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
411 (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
412 * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
413 gfc_check_atomic_fetch_op): New
415 * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
416 * iso-fortran-env.def: Add it.
417 * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
418 conv_intrinsic_atomic_ref; handle more atomics.
419 (conv_intrinsic_atomic_def): Handle STAT=.
420 (conv_intrinsic_atomic_cas): New.
421 (gfc_conv_intrinsic_subroutine): Handle new atomics.
423 2014-07-09 Bernd Schmidt <bernds@codesourcery.com>
425 * trans-array.c (gfc_build_constant_array_constructor): Build a
426 static decl manually.
427 * trans-decl.c (create_main_function): Likewise.
429 2014-07-07 Paul Thomas <pault@gcc.gnu.org>
433 * trans-expr.c (fcncall_realloc_result): Use the natural type
434 for the address expression of 'res_desc'.
436 2014-07-07 Gerald Pfeifer <gerald@pfeifer.com>
438 * gfortran.texi (Fortran 2003 status): Fix grammar.
440 2014-07-04 Tobias Burnus <burnus@net-b.de>
442 * resolve.c (resolve_assoc_var): Fix corank setting.
443 * trans-array.c (gfc_conv_descriptor_token): Change assert.
444 for select-type temporaries.
445 * trans-decl.c (generate_coarray_sym_init): Skip for
446 attr.select_type_temporary.
447 * trans-expr.c (gfc_conv_procedure_call): Fix for
448 select-type temporaries.
449 * trans-intrinsic.c (get_caf_token_offset): Ditto.
450 (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
452 * trans-types.h (gfc_get_dtype_rank_type): New.
453 * trans-types.c (gfc_get_dtype_rank_type): Ditto.
455 2014-07-03 Tobias Burnus <burnus@net-b.de>
457 * scanner.c (skip_free_comments): Fix indentation.
459 2014-07-02 Jakub Jelinek <jakub@redhat.com>
460 Fritz Reese <Reese-Fritz@zai.com>
462 * decl.c (variable_decl): Reject old style initialization
463 for derived type components.
465 2014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
469 * decl.c (check_bind_name_identifier): New function.
470 (gfc_match_bind_c): Match any constant expression as binding
472 * match.c (gfc_match_name_C): Remove.
474 2014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
477 * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
478 * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
480 * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
481 * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
482 * module.c (mio_symbol): Keep track of symbols which came from
484 (gfc_use_module): Keep track of the IEEE modules.
485 * trans-decl.c (gfc_get_symbol_decl): Adjust code since
486 we have new intrinsic modules.
487 (gfc_build_builtin_function_decls): Build decls for
488 ieee_procedure_entry and ieee_procedure_exit.
489 (is_from_ieee_module, is_ieee_module_used, save_fp_state,
490 restore_fp_state): New functions.
491 (gfc_generate_function_code): Save and restore floating-point
492 state on procedure entry/exit, when IEEE modules are used.
493 * intrinsic.texi: Document the IEEE modules.
495 2014-06-25 Tobias Burnus <burnus@net-b.de>
497 * interface.c (check_intents): Fix diagnostic with
500 2014-06-25 Tobias Burnus <burnus@net-b.de>
502 * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
503 when assigning a coindexed RHS scalar to a noncoindexed LHS
505 * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
506 for a noncoindexed scalar RHS.
508 2014-06-25 Tobias Burnus <burnus@net-b.de>
510 * check.c (check_co_minmaxsum): Add definable check.
511 * expr.c (gfc_check_vardef_context): Fix context == NULL case.
512 * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
514 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
517 2014-06-25 Jakub Jelinek <jakub@redhat.com>
519 * trans.h (gfc_omp_clause_linear_ctor): New prototype.
520 * trans-openmp.c (gfc_omp_linear_clause_add_loop,
521 gfc_omp_clause_linear_ctor): New functions.
522 (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
523 correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
524 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
526 2014-06-24 Jakub Jelinek <jakub@redhat.com>
528 * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
530 * f95-lang.c (gfc_init_builtin_functions): Initialize
531 BUILT_IN_ASSUME_ALIGNED.
532 * gfortran.h (gfc_omp_namelist): Change udr field type to
533 struct gfc_omp_namelist_udr.
534 (gfc_omp_namelist_udr): New type.
535 (gfc_get_omp_namelist_udr): Define.
536 (gfc_resolve_code): New prototype.
537 * match.c (gfc_free_omp_namelist): Free name->udr.
538 * module.c (intrinsics): Add INTRINSIC_USER.
539 (fix_mio_expr): Likewise.
540 (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
541 * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
542 (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
543 Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
544 (struct resolve_omp_udr_callback_data): New type.
545 (resolve_omp_udr_callback, resolve_omp_udr_callback2,
546 resolve_omp_udr_clause): New functions.
547 (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
549 (omp_udr_callback): Don't check for implicitly declared functions
551 (gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
552 implicitly declared subroutines here.
553 * resolve.c (resolve_function): If value.function.isym is non-NULL,
554 consider it already resolved.
555 (resolve_code): Renamed to ...
556 (gfc_resolve_code): ... this. No longer static.
557 (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
559 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
560 by reference type (C_PTR) variables.
561 (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
562 (gfc_trans_omp_udr_expr): Remove.
563 (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
564 Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
565 expand it as assignment or subroutine call. Don't initialize
568 2014-06-23 Tobias Burnus <burnus@net-b.de>
570 * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
571 explicit-size arrays with -fcoarray=lib.
573 2014-06-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
576 * invoke.texi: Don't mention nonexisting -fcase-lower option.
578 2014-06-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
581 * expr.c (scalarize_intrinsic_call): Take care of optional
584 2014-06-19 Tobias Burnus <burnus@net-b.de>
586 * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
589 2014-06-18 Tobias Burnus <burnus@net-b.de>
591 * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
592 * intrinsic.texi (OpenMP Modules): Ditto.
594 2014-06-18 Jakub Jelinek <jakub@redhat.com>
596 * cpp.c (cpp_define_builtins): Change _OPENMP macro to
598 * dump-parse-tree.c (show_omp_namelist): Add list_type
599 argument. Adjust for rop being u.reduction_op now,
600 handle depend_op or map_op.
601 (show_omp_node): Adjust callers. Print some new
602 OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
603 becoming a single OMP_LIST_DEPEND.
604 * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
606 (gfc_attribute_table): New variable.
607 (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
608 * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
609 EXEC_OMP_* codes and new clauses.
610 * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
611 ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
612 ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
613 ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
614 ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
615 ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
616 ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
617 ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
618 ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
619 ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
620 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
621 ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
622 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
623 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
624 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
625 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
626 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
627 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
628 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
629 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
630 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
631 (symbol_attribute): Add omp_declare_target field.
632 (gfc_omp_depend_op, gfc_omp_map_op): New enums.
633 (gfc_omp_namelist): Replace rop field with union
634 containing reduction_op, depend_op and map_op.
635 (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
636 (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
637 (gfc_omp_clauses): Add num_teams, device, thread_limit,
638 dist_sched_kind, dist_chunk_size fields.
639 (gfc_common_head): Add omp_declare_target field.
640 (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
641 EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
642 EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
643 EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
644 EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
645 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
646 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
647 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
648 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
649 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
650 EXEC_OMP_TARGET_UPDATE.
651 (gfc_add_omp_declare_target): New prototype.
652 * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
653 gfc_match_omp_distribute_parallel_do,
654 gfc_match_omp_distribute_parallel_do_simd,
655 gfc_match_omp_distribute_simd, gfc_match_omp_target,
656 gfc_match_omp_target_data, gfc_match_omp_target_teams,
657 gfc_match_omp_target_teams_distribute,
658 gfc_match_omp_target_teams_distribute_parallel_do,
659 gfc_match_omp_target_teams_distribute_parallel_do_simd,
660 gfc_match_omp_target_teams_distribute_simd,
661 gfc_match_omp_target_update, gfc_match_omp_teams,
662 gfc_match_omp_teams_distribute,
663 gfc_match_omp_teams_distribute_parallel_do,
664 gfc_match_omp_teams_distribute_parallel_do_simd,
665 gfc_match_omp_teams_distribute_simd): New prototypes.
666 * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
667 (attr_bits): Likewise.
668 (mio_symbol_attribute): Handle omp_declare_target attribute.
669 (gfc_free_omp_clauses): Free num_teams, device, thread_limit
670 and dist_chunk_size expressions.
671 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
672 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
673 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
674 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
675 OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
676 OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
677 OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
678 OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
679 OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
680 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
681 OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
682 OMP_CLAUSE_DIST_SCHEDULE): Define.
683 (gfc_match_omp_clauses): Change mask parameter to unsigned int.
684 Adjust for rop becoming u.reduction_op. Disallow inbranch with
685 notinbranch. For depend clause, always create OMP_LIST_DEPEND
686 and fill in u.depend_op. Handle num_teams, device, map,
687 to, from, thread_limit and dist_schedule clauses.
688 (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
689 OMP_CLAUSE_NOTINBRANCH.
690 (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
691 OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
692 OMP_DISTRIBUTE_CLAUSES): Define.
693 (match_omp): New function.
694 (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
695 gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
696 gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
697 gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
698 gfc_match_omp_task): Rewritten using match_omp.
699 (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
700 Diagnose if the directives are followed by unexpected junk.
701 (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
702 gfc_match_omp_distribute_parallel_do_simd,
703 gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
704 gfc_match_omp_target, gfc_match_omp_target_data,
705 gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
706 gfc_match_omp_target_teams_distribute_parallel_do,
707 gfc_match_omp_target_teams_distribute_parallel_do_simd,
708 gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
709 gfc_match_omp_teams, gfc_match_omp_teams_distribute,
710 gfc_match_omp_teams_distribute_parallel_do,
711 gfc_match_omp_teams_distribute_parallel_do_simd,
712 gfc_match_omp_teams_distrbute_simd): New functions.
713 * openmp.c (resolve_omp_clauses): Adjust for
714 OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
715 OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
716 dist_chunk_size and thread_limit.
717 (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
718 ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
719 new EXEC_OMP_* codes.
720 (resolve_omp_do): Handle various new EXEC_OMP_* codes.
721 (gfc_resolve_omp_directive): Likewise.
722 (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
723 * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
724 offloading related directives.
725 (case_executable): Add ST_OMP_TARGET_UPDATE.
726 (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
728 (case_decl): Add ST_OMP_DECLARE_TARGET.
729 (gfc_ascii_statement): Handle new ST_OMP_* codes.
730 (parse_omp_do): Handle various new ST_OMP_* codes.
731 (parse_executable): Likewise.
732 * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
734 (resolve_code): Likewise.
735 (resolve_symbol): Change that !$OMP DECLARE TARGET variables
737 * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
738 * symbol.c (check_conflict): Check omp_declare_target conflicts.
739 (gfc_add_omp_declare_target): New function.
740 (gfc_copy_attr): Copy omp_declare_target.
741 * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
742 * trans-common.c (build_common_decl): Add "omp declare target"
744 * trans-decl.c (add_attributes_to_decl): Likewise.
745 * trans.h (gfc_omp_finish_clause): New prototype.
746 * trans-openmp.c (gfc_omp_finish_clause): New function.
747 (gfc_trans_omp_reduction_list): Adjust for rop being renamed
749 (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
750 change to OMP_LIST_DEPEND and fix up depend handling.
751 Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
752 thread_limit, device, dist_chunk_size and dist_sched_kind.
753 (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
754 (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
755 GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
756 GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
757 (gfc_split_omp_clauses): Handle splitting of clauses for new
759 (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
760 callable for combined constructs.
761 (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
762 (gfc_trans_omp_distribute, gfc_trans_omp_teams,
763 gfc_trans_omp_target, gfc_trans_omp_target_data,
764 gfc_trans_omp_target_update): New functions.
765 (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
766 new EXEC_OMP_* codes.
768 2014-06-18 Tobias Burnus <burnus@net-b.de>
771 * invoke.texi (-Wunused-parameter): Make clearer when
772 -Wextra implies this option.
774 2014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
777 * options.c (gfc_handle_option): Remove call to
778 handle_generated_option.
780 2014-06-17 Tobias Burnus <burnus@net-b.de>
782 * check.c (gfc_check_atomic, gfc_check_atomic_def):
783 Use argument for GFC_ISYM_CAF_GET.
784 * resolve.c (resolve_variable): Enable CAF_GET insertion.
785 (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
786 (resolve_ordinary_assign): Enable CAF_SEND insertion.
787 * trans-const.c (gfc_build_string_const,
788 gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
789 * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
790 gfor_fndecl_caf_sendget): New global variables.
791 (gfc_build_builtin_function_decls): Initialize them;
792 update co_min/max/sum initialization.
793 * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
794 get_tree_for_caf_expr and removed static.
795 (gfc_conv_procedure_call): Update call.
796 * trans-intrinsic.c (caf_get_image_index,
797 conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
798 get_caf_token_offset, gfc_conv_intrinsic_caf_get,
800 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
801 gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
802 (conv_co_minmaxsum): Update call for remove unused vector
804 (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
805 Skip a CAF_GET of the argument.
806 * trans-types.c (gfc_get_caf_vector_type): New.
807 * trans-types.h (gfc_get_caf_vector_type): New.
808 * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
809 gfor_fndecl_caf_sendget): New global variables.
810 (gfc_get_tree_for_caf_expr): New prototypes.
812 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
814 * trans-common.c (build_common_decl): Use
816 * trans-decl.c (gfc_finish_var_decl): Likewise.
817 (get_proc_pointer_decl): Likewise.
819 2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
823 * check.c (gfc_check_system_clock): Improve checking of arguments.
824 * intrinsic.texi: Update doc of SYSTEM_CLOCK.
825 * iresolve.c (gfc_resolve_system_clock): Choose library function
826 used depending on argument kinds.
827 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
828 decls for system_clock_4 and system_clock_8.
829 * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
830 (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
831 * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
834 2014-06-12 Tobias Burnus <burnus@net-b.de>
836 * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
837 * symbol.c (gfc_copy_formal_args_intr): Handle the case
838 that absent optional arguments should be ignored.
839 * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
840 (gfc_conv_intrinsic_funcall,
841 conv_generic_with_optional_char_arg): Update call.
842 * resolve.c (gfc_resolve_intrinsic): Ditto.
844 2014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr>
845 Mikael Morin <mikael@gcc.gnu.org>
848 * trans-expr.c (gfc_conv_expr_reference): Deallocate array
851 2014-06-10 Jakub Jelinek <jakub@redhat.com>
854 * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
856 * openmp.c (resolve_omp_clauses): Remove allocatable components
857 diagnostics. Add associate-name and intent(in) pointer
858 diagnostics for various clauses, diagnose procedure pointers in
860 * parse.c (match_word_omp_simd): New function.
861 (matchs, matcho): New macros.
862 (decode_omp_directive): Change match macros to either matchs
863 or matcho. Handle -fopenmp-simd.
864 (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
865 * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
867 * trans-array.c (get_full_array_size): Rename to...
868 (gfc_full_array_size): ... this. No longer static.
869 (duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
871 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
872 duplicate_allocatable callers.
873 (gfc_duplicate_allocatable_nocopy): New function.
874 (structure_alloc_comps): Adjust g*_full_array_size and
875 duplicate_allocatable caller.
876 * trans-array.h (gfc_full_array_size,
877 gfc_duplicate_allocatable_nocopy): New prototypes.
878 * trans-common.c (create_common): Call gfc_finish_decl_attrs.
879 * trans-decl.c (gfc_finish_decl_attrs): New function.
880 (gfc_finish_var_decl, create_function_arglist,
881 gfc_get_fake_result_decl): Call it.
882 (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
883 don't allocate it again.
884 (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
886 * trans.h (gfc_finish_decl_attrs): New prototype.
887 (struct lang_decl): Add scalar_allocatable and scalar_pointer
889 (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
890 GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
891 GFC_DECL_ASSOCIATE_VAR_P): Define.
892 (GFC_POINTER_TYPE_P): Remove.
893 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
894 GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
895 GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
896 (gfc_omp_predetermined_sharing): Associate-names are predetermined.
897 (enum walk_alloc_comps): New.
898 (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
899 gfc_walk_alloc_comps): New functions.
900 (gfc_omp_private_outer_ref): Return true for scalar allocatables or
901 decls with allocatable components.
902 (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
903 gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
904 allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
905 allocatables and decls with allocatable components.
906 (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
908 (gfc_trans_omp_reduction_list): Call
909 gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
910 (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
911 (gfc_trans_omp_parallel_do_simd): Likewise.
912 * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
913 (gfc_get_derived_type): Call gfc_finish_decl_attrs.
915 2014-06-09 Paul Thomas <pault@gcc.gnu.org>
918 * trans-stmt.c (trans_associate_var): Check that array
919 constructors are constant for direct reference.
921 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
924 * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
925 BESSEL_Y0, and BESSEL_Y1.
927 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
930 * trans-decl.c (gfc_create_module_variable): Don't create
931 Cray-pointee decls twice.
933 2014-06-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
935 * io.c (resolve_tag): Warn on non-default kind for NUMBER,
936 NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
938 2014-06-06 Jakub Jelinek <jakub@redhat.com>
940 * dump-parse-tree.c (show_omp_namelist): Dump reduction
941 id in each list item.
942 (show_omp_node): Only handle OMP_LIST_REDUCTION, not
943 OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
944 dump reduction id here.
945 * frontend-passes.c (dummy_code_callback): Renamed to...
946 (gfc_dummy_code_callback): ... this. No longer static.
947 (optimize_reduction): Use gfc_dummy_code_callback instead of
949 * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
950 (symbol_attribute): Add omp_udr_artificial_var bitfield.
951 (gfc_omp_reduction_op): New enum.
952 (gfc_omp_namelist): Add rop and udr fields.
953 (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
954 OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
955 OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
956 OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
957 (OMP_LIST_REDUCTION): New.
958 (gfc_omp_udr): New type.
959 (gfc_get_omp_udr): Define.
960 (gfc_symtree): Add n.omp_udr field.
961 (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
962 (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
963 gfc_dummy_code_callback): New prototypes.
964 * match.h (gfc_match_omp_declare_reduction): New prototype.
965 * module.c (MOD_VERSION): Increase to 13.
966 (omp_declare_reduction_stmt): New array.
967 (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
969 (read_module): Read OpenMP user defined reductions.
970 (write_module): Write OpenMP user defined reductions.
971 * openmp.c: Include arith.h.
972 (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
973 (gfc_match_omp_clauses): Handle user defined reductions.
974 Store reduction kind into gfc_omp_namelist instead of using
975 several OMP_LIST_* entries.
976 (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
977 gfc_match_omp_declare_reduction): New functions.
978 (resolve_omp_clauses): Adjust for reduction clauses being only
979 in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
980 (struct omp_udr_callback_data): New type.
981 (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
983 * parse.c (decode_omp_directive): Handle !$omp declare reduction.
984 (case_decl): Add ST_OMP_DECLARE_REDUCTION.
985 (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
986 * resolve.c (resolve_fl_variable): Allow len=: or len=* on
987 sym->attr.omp_udr_artificial_var symbols.
988 (resolve_types): Call gfc_resolve_omp_udrs.
989 * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
990 use parent ns instead of gfc_current_ns.
991 (gfc_get_sym_tree): Don't insert symbols into
992 namespaces with omp_udr_ns set.
993 (free_omp_udr_tree): New function.
994 (gfc_free_namespace): Call it.
995 * trans-openmp.c (struct omp_udr_find_orig_data): New type.
996 (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
997 (gfc_trans_omp_array_reduction): Renamed to...
998 (gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
999 argument, instead pass gfc_omp_namelist pointer N. Handle
1000 user defined reductions.
1001 (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
1002 Handle user defined reductions and reduction ops in gfc_omp_namelist.
1003 (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
1005 (gfc_split_omp_clauses): Likewise.
1007 2014-06-05 Richard Biener <rguenther@suse.de>
1010 * gfortranspec.c (spec_file): Remove.
1011 (find_spec_file): Likewise.
1012 (lang_specific_driver): Do not look for specs file in -L
1013 or append -specs command line argument.
1014 (lang_specific_pre_link): Always %:include libgfortran.spec.
1016 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
1018 * fortran/trans.c (trans_runtime_error_vararg): Call
1019 fold_build_call_array_loc instead of fold_builtin_call_array.
1021 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
1023 * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
1024 arguments to caf_init.
1026 2014-05-26 Tobias Burnus <burnus@net-b.de>
1028 * gfortran.texi (Project Status): Fix broken link.
1030 2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
1033 * intrinsics.texi (CTIME): Remove mention of locale-dependent
1036 2014-05-26 Tobias Burnus <burnus@net-b.de>
1039 * trans-io.c (nml_full_name, transfer_namelist_element): Insert
1040 a '+' rather then '%' to differentiate namelist variable names
1041 that are based on extended derived types.
1043 2014-05-25 Tobias Burnus <burnus@net-b.de>
1045 * check.c (gfc_check_num_images): New.
1046 (gfc_check_this_image): Handle distance argument.
1047 * intrinsic.c (add_functions): Update this_image and num_images
1048 for new distance and failed arguments.
1049 * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
1051 * intrinsic.h (gfc_check_num_images): New.
1052 (gfc_check_this_image, gfc_simplify_num_images,
1053 gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
1054 * iresolve.c (gfc_resolve_this_image): Handle distance argument.
1055 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1056 Handle new arguments.
1057 * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
1058 (gfc_conv_intrinsic_function): Update trans_num_images call.
1060 2014-05-23 Tobias Burnus <burnus@net-b.de>
1062 * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
1063 * gfortran.texi: Ditto.
1065 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
1067 * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
1068 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
1069 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
1070 * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
1072 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
1074 * f95-lang.c (pushlevel): Adjust.
1075 * trans-decl.c (gfc_allocate_lang_decl): Adjust.
1076 (gfc_find_module): Likewise.
1077 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1078 (gfc_get_array_type_bounds): Likewise.
1079 (gfc_nonrestricted_type): Likewise.
1080 * trans.h: Don't use variable_size gty attribute.
1082 2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr>
1084 * check.c (gfc_check_fn_rc2008): move "argument" to the right
1087 2014-05-12 Tobias Burnus <burnus@net-b.de>
1090 * openmp.c (resolve_omp_do): Reject do concurrent loops.
1092 2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1095 * frontend-passes.c (in_assoc_list): New variable.
1096 (optimize_namespace): Initialize in_assoc_list
1097 (combine_array_constructor): Don't try to combine
1099 (gfc_code_walker): Keep track of in_assoc_list.
1101 2014-05-11 Jakub Jelinek <jakub@redhat.com>
1103 * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
1104 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1105 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1106 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1107 ST_OMP_DECLARE_SIMD.
1108 (gfc_omp_namelist): New typedef.
1109 (gfc_get_omp_namelist): Define.
1110 (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
1111 OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
1112 (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
1113 (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
1114 Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
1115 simdlen_expr fields.
1116 (gfc_omp_declare_simd): New typedef.
1117 (gfc_get_omp_declare_simd): Define.
1118 (gfc_namespace): Add omp_declare_simd field.
1119 (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1120 EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
1121 EXEC_OMP_PARALLEL_DO_SIMD.
1122 (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
1123 and GFC_OMP_ATOMIC_SWAP.
1124 (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
1125 (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
1126 gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
1128 * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
1129 * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
1130 * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
1131 simdlen_expr. Use gfc_free_omp_namelist instead of
1133 (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
1135 (gfc_match_omp_variable_list): Add end_colon, headp and
1136 allow_sections arguments. Handle parsing of array sections.
1137 Use *omp_namelist* instead of *namelist* data structure and
1138 functions/macros. Allow termination at : character.
1139 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
1140 OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
1141 OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
1142 (gfc_match_omp_clauses): Change first and needs_space variables
1143 into arguments with default values. Parse inbranch, notinbranch,
1144 proc_bind, safelen, simdlen, uniform, linear, aligned and
1146 (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
1147 (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
1148 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
1149 (gfc_match_omp_do_simd): New function.
1150 (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
1151 data structure and functions/macros.
1152 (gfc_match_omp_simd, gfc_match_omp_declare_simd,
1153 gfc_match_omp_parallel_do_simd): New functions.
1154 (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
1155 (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
1156 gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
1158 (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
1159 Use *omp_namelist* instead of *namelist* data structure and
1160 functions/macros. Resolve uniform, aligned, linear, depend,
1161 safelen and simdlen clauses.
1162 (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
1163 addition, recognize atomic swap.
1164 (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
1165 of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
1166 EXEC_OMP_PARALLEL_DO.
1167 (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
1168 data structure and functions/macros.
1169 (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1170 EXEC_OMP_PARALLEL_DO_SIMD.
1171 (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1172 EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
1173 resolve_omp_clauses caller.
1174 (gfc_resolve_omp_declare_simd): New function.
1175 * parse.c (decode_omp_directive): Parse cancellation point, cancel,
1176 declare simd, end do simd, end simd, end parallel do simd,
1177 end taskgroup, parallel do simd, simd and taskgroup directives.
1178 (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
1179 (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
1180 ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
1181 (case_decl): Add ST_OMP_DECLARE_SIMD.
1182 (gfc_ascii_statement): Handle ST_OMP_CANCEL,
1183 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1184 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1185 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1186 ST_OMP_DECLARE_SIMD.
1187 (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
1188 ST_OMP_PARALLEL_DO_SIMD.
1189 (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
1190 (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
1191 ST_OMP_PARALLEL_DO_SIMD.
1192 (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
1193 ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
1194 * trans-decl.c (gfc_get_extern_function_decl,
1195 gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
1197 * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
1198 EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
1199 safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
1200 of depend, aligned and linear clauses.
1201 * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
1202 and EXEC_OMP_PARALLEL_DO_SIMD.
1203 (gfc_free_omp_namelist): New function.
1204 * dump-parse-tree.c (show_namelist): Removed.
1205 (show_omp_namelist): New function.
1206 (show_omp_node): Handle OpenMP 4.0 additions.
1207 (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1208 EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
1210 * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
1211 gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
1212 gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
1213 gfc_match_omp_taskgroup): New prototypes.
1214 * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
1215 argument, handle it. Allow current_function_decl to be NULL.
1216 (gfc_trans_omp_variable_list): Add declare_simd argument, pass
1217 it through to gfc_trans_omp_variable and disregard whether
1218 sym is referenced if declare_simd is true. Work on gfc_omp_namelist
1219 instead of gfc_namelist.
1220 (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
1221 gfc_namelist. Adjust gfc_trans_omp_variable caller.
1222 (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
1223 to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
1224 instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
1225 simdlen, depend, uniform, linear, proc_bind and aligned clauses.
1227 (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
1228 adjust for GFC_OMP_ATOMIC_* changes.
1229 (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
1231 (gfc_trans_omp_do): Add op argument, handle simd translation into
1233 (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
1234 GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
1235 GFC_OMP_MASK_PARALLEL): New.
1236 (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
1237 (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
1238 (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
1240 (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
1241 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1242 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1243 Adjust gfc_trans_omp_do caller.
1244 (gfc_trans_omp_declare_simd): New function.
1245 * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
1246 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1247 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1248 For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
1250 * module.c (omp_declare_simd_clauses): New variable.
1251 (mio_omp_declare_simd): New function.
1252 (mio_symbol): Call it.
1253 * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
1254 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1255 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1256 * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
1257 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1258 (resolve_code): Handle EXEC_OMP_CANCEL,
1259 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1260 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1261 (resolve_types): Call gfc_resolve_omp_declare_simd.
1263 2014-05-11 Tobias Burnus <burnus@net-b.de>
1265 * trans-intrinsic.c (gfc_build_builtin_function_decls):
1266 Change type of second argument to int.
1268 2014-05-09 Mike Stump <mikestump@comcast.net>
1271 * trans-array.c (gfc_conv_array_initializer): Fix wide-int
1274 2014-05-08 Tobias Burnus <burnus@net-b.de>
1276 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
1277 and GFC_ISYM_CAF_SEND.
1278 * intrinsic.c (add_functions): Add only internally
1279 accessible caf_get and caf_send functions.
1280 * resolve.c (add_caf_get_intrinsic,
1281 remove_caf_get_intrinsic): New functions.
1282 (resolve_variable): Resolve expression rank and
1283 prepare for add_caf_get_intrinsic call.
1284 (gfc_resolve_expr): For variables, remove rank
1286 (resolve_ordinary_assign): Prepare call to
1288 (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
1289 the LHS of an assignment.
1291 2014-05-08 Tobias Burnus <burnus@net-b.de>
1293 * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
1295 2014-05-08 Tobias Burnus <burnus@net-b.de>
1297 * check.c (check_co_minmaxsum, gfc_check_co_minmax,
1298 gfc_check_co_sum): New.
1299 * error.c (gfc_notify_std): Update -std=f2008ts.
1300 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
1301 GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
1302 * intrinsic.h (gfc_check_co_minmax,
1303 gfc_check_co_sum): Declare.
1304 * intrinsic.c (add_subroutines): Add co_min, co_max
1306 (gfc_check_intrinsic_standard): Update text for
1308 * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
1310 * invoke.texi (-std=f2008ts): Update wording.
1311 * trans.h (gfor_fndecl_co_max,
1312 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1313 * trans-decl.c (gfor_fndecl_co_max,
1314 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1315 (gfc_build_builtin_function_decls): Assign to it.
1316 * trans-intrinsic.c (conv_co_minmaxsum): New.
1317 (gfc_conv_intrinsic_subroutine): Call it.
1319 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1320 Mike Stump <mikestump@comcast.net>
1321 Richard Sandiford <rdsandiford@googlemail.com>
1323 * target-memory.c: Include wide-int.h.
1324 (gfc_interpret_logical): Use wide-int interfaces.
1325 * trans-array.c: Include wide-int.h.
1326 (gfc_conv_array_initializer): Use wide-int interfaces.
1327 * trans-const.c: Include wide-int.h.
1328 (gfc_conv_string_init): Use wide-int interfaces.
1329 (gfc_conv_mpz_to_tree): Likewise.
1330 (gfc_conv_tree_to_mpz): Likewise.
1331 * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
1332 * trans-expr.c: Include wide-int.h.
1333 (gfc_conv_cst_int_power): Use wide-int interfaces.
1334 (gfc_string_to_single_character): Likewise.
1335 (gfc_optimize_len_trim): Likewise.
1336 * trans-intrinsic.c: Include wide-int.h.
1337 (trans_this_image): Use wide-int interfaces.
1338 (gfc_conv_intrinsic_bound): Likewise.
1339 (conv_intrinsic_cobound): Likewise.
1340 * trans-types.c (gfc_init_types): Likewise.
1341 (gfc_get_array_type_bounds): Pass an integer of the correct type
1342 instead of using integer_one_node.
1344 2014-04-30 Tobias Burnus <burnus@net-b.de>
1346 * trans-decl.c (create_function_arglist): Add hidden coarray arguments
1347 also for polymorphic coarrays.
1348 * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
1349 also for polymorphic coarrays.
1351 2014-04-30 Tobias Burnus <burnus@net-b.de>
1353 * resolve.c (resolve_function): Don't do
1354 assumed-size check for lcobound/ucobound.
1355 * trans-types.c (gfc_build_array_type): Only build an array
1356 descriptor with codimensions for allocatable coarrays.
1358 2014-04-30 Tobias Burnus <burnus@net-b.de>
1360 * gfortran.h (gfc_init_coarray_decl): Remove.
1361 * parse.c (translate_all_program_units): Remove call to it.
1362 (gfc_parse_file): Update call.
1363 * trans.h (gfor_fndecl_caf_this_image,
1364 gfor_fndecl_caf_num_images): Add.
1365 (gfort_gvar_caf_num_images,
1366 gfort_gvar_caf_this_image): Remove.
1367 * trans-decl.c (gfor_fndecl_caf_this_image,
1368 gfor_fndecl_caf_num_images): Add.
1369 (gfort_gvar_caf_num_images,
1370 gfort_gvar_caf_this_image): Remove.
1371 (gfc_build_builtin_function_decls): Init new decl.
1372 (gfc_init_coarray_dec): Remove.
1373 (create_main_function): Change calls.
1374 * trans-intrinsic.c (trans_this_image, trans_image_index,
1375 conv_intrinsic_cobound): Generate call to new library function
1376 instead of to a static variable.
1377 * trans-stmt.c (gfc_trans_sync): Ditto.
1379 2014-04-30 Tobias Burnus <burnus@net-b.de>
1381 * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
1382 and derived-type coarrays.
1384 2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1388 * gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
1389 * arith.c (gfc_int2int): Convert number to signed if
1390 arithmetic overflow is not checked.
1391 * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
1392 size if range checking is in force.
1393 (convert_mpz_to_signed): Make non-static, rename to
1394 (gfc_convert_mpz_to_signed).
1395 (simplify_dshift): Use gfc_convert_mpz_to_signed.
1396 (gfc_simplify_ibclr): Likewise.
1397 (gfc_simplify_ibits): Likewise.
1398 (gfc_simplify_ibset): Likewise.
1399 (simplify_shift): Likewise.
1400 (gfc_simplify_ishiftc): Likewise.
1401 (gfc_simplify_maskr): Likewise.
1402 (gfc_simplify_maskl): Likewise.
1404 2014-04-22 Tobias Burnus <burnus@net-b.de>
1407 * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1410 2014-04-17 Jakub Jelinek <jakub@redhat.com>
1412 * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
1413 argument is enum machine_mode.
1415 2014-04-13 Paul Thomas <pault@gcc.gnu.org>
1419 * trans.h: Add 'use_offset' bitfield to gfc_se.
1420 * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
1421 as a trigger to unconditionally recalculate the offset for
1422 array slices and constant arrays.
1423 trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
1424 trans-stmt.c (trans_associate_var): Ditto.
1425 (gfc_conv_procedure_call): Ditto.
1427 2014-04-11 Tobias Burnus <burnus@net-b.de>
1431 * resolve.c (gfc_resolve_finalizers): Ensure that vtables
1432 and finalization wrappers are generated.
1434 2014-04-11 Janne Blomqvist <jb@gcc.gnu.org>
1436 * intrinsic.texi (RANDOM_SEED): Improve example.
1438 2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1440 * class.c (gfc_build_class_symbol): Append "_t" to target class
1441 names to make the generated type names unique.
1443 2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1446 * trans-types.c (gfc_get_function_type): In case of recursion
1447 build a variadic function type with empty argument list instead of a
1448 stdarg-like function type with incomplete argument list.
1450 2014-04-04 Tobias Burnus <burnus@net-b.de>
1452 * check.c (gfc_check_cmplx): Fix typo.
1454 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1455 Tobias Burnus <burnus@net-b.de>
1458 * trans-expr.c (gfc_conv_derived_to_class): Avoid
1459 generation of out-of-bounds range expr.
1461 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1464 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1467 2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1470 * frontend-passes.c (cfe_code): Do not walk subtrees
1473 2014-03-27 Tobias Burnus <burnus@net-b.de>
1476 * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1479 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
1482 * fortran.texi: Document Volatile COMMON as not supported.
1484 2014-03-22 Jakub Jelinek <jakub@redhat.com>
1487 * cpp.c (gfc_cpp_init): Restore cb_change_file call to
1490 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1493 * gfortran.texi: Add description of namelist DELIM= behavior.
1495 2014-03-19 Tobias Burnus <burnus@net-b.>
1498 * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
1499 * resolve.c (resolve_ordinary_assign): Ditto.
1501 2014-03-19 Tobias Burnus <burnus@net-b.de>
1505 * gfortran.h (gfc_unset_implicit_pure): New prototype.
1506 * resolve.c (gfc_unset_implicit_pure): New.
1507 (resolve_structure_cons, resolve_function,
1508 pure_subroutine): Use it.
1509 * decl.c (match_old_style_init, gfc_match_data,
1510 match_pointer_init, variable_decl): Ditto.
1511 * expr.c (gfc_check_pointer_assign): Ditto.
1512 * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
1513 * io.c (match_vtag, gfc_match_open, gfc_match_close,
1514 match_filepos, gfc_match_inquire, gfc_match_print,
1515 gfc_match_wait): Ditto.
1516 * match.c (gfc_match_critical, gfc_match_stopcode,
1517 lock_unlock_statement, sync_statement, gfc_match_allocate,
1518 gfc_match_deallocate): Ditto.
1519 * parse.c (decode_omp_directive): Ditto.
1520 * symbol.c (gfc_add_save): Ditto.
1522 2014-03-18 Janus Weil <janus@gcc.gnu.org>
1526 * decl.c (match_attr_spec): Revert r208590.
1528 2014-03-18 Jakub Jelinek <jakub@redhat.com>
1531 * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
1534 2014-03-18 Tobias Burnus <burnus@net-b.de>
1537 * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
1538 (gfc_trans_io_runtime_check): Remove.
1539 * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
1540 as argument, add predictor to block.
1541 (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
1542 gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
1543 * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
1544 (gfc_trans_runtime_check, gfc_allocate_using_malloc,
1545 gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
1547 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1548 * trans-stmt.c (gfc_trans_allocate): Ditto.
1549 * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
1551 2014-03-15 Janus Weil <janus@gcc.gnu.org>
1554 * decl.c (match_attr_spec): Variables in the main program implicitly
1555 get the SAVE attribute in Fortran 2008.
1557 2014-03-14 Mikael Morin <mikael@gcc.gnu.org>
1560 * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
1561 if it has transposed dimensions.
1563 2014-03-08 Tobias Burnus <burnus@net-b.de>
1566 * f95-lang.c (gfc_init): Return false when only
1568 * options.c (gfc_post_options): Ditto.
1570 2014-03-08 Tobias Burnus <burnus@net-b.de>
1572 * gfortran.texi (Fortran 2003 Status): Mention finalization,
1573 deferred-length character support and input rounding.
1574 (Fortran 2008 Status): Mention that at termination
1575 signalling exceptions are shown.
1577 2014-03-06 Paul Thomas <pault@gcc.gnu.org>
1578 Janus Weil <janus@gcc.gnu.org>
1581 * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
1582 * primary.c (build_actual_constructor): It is not an error if
1583 a missing component has the deferred_parameter attribute;
1584 equally, if one is given a value, it is an error.
1585 * resolve.c (resolve_fl_derived0): Remove error for deferred
1586 character length components. Add the hidden string length
1587 field to the structure. Give it the deferred_parameter
1589 * trans-array.c (duplicate_allocatable): Add a strlen field
1590 which is used as the element size if it is non-null.
1591 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
1592 NULL to the new argument in duplicate_allocatable.
1593 (structure_alloc_comps): Set the hidden string length as
1594 appropriate. Use it in calls to duplicate_allocatable.
1595 (gfc_alloc_allocatable_for_assignment): When a deferred length
1596 backend declaration is variable, use that; otherwise use the
1597 string length from the expression evaluation.
1598 * trans-expr.c (gfc_conv_component_ref): If this is a deferred
1599 character length component, the string length should have the
1600 value of the hidden string length field.
1601 (gfc_trans_subcomponent_assign): Set the hidden string length
1602 field for deferred character length components. Allocate the
1603 necessary memory for the string.
1604 (alloc_scalar_allocatable_for_assignment): Same change as in
1605 gfc_alloc_allocatable_for_assignment above.
1606 * trans-stmt.c (gfc_trans_allocate): Likewise.
1607 * trans-intrinsic (size_of_string_in_bytes): Make non-static.
1608 * trans-types.c (gfc_get_derived_type): Set the tree type for
1609 a deferred character length component.
1610 * trans.c (gfc_deferred_strlen): New function.
1611 * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
1613 2014-03-01 Mikael Morin <mikael@gcc.gnu.org>
1616 * frontend-passes.c (optimize_comparison): Guard two union accesses
1617 with the corresponding tag checks.
1619 2014-02-28 Janus Weil <janus@gcc.gnu.org>
1622 * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
1623 procedure for characters.
1625 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1628 * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
1631 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1634 * gfortran.h (gfc_build_class_symbol): Removed argument.
1635 * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
1636 (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
1637 delayed now, except for unlimited polymorphics.
1638 (comp_is_finalizable): Procedure pointer components are not finalizable.
1639 * decl. (build_sym, build_struct, attr_decl1): Removed argument of
1640 'gfc_build_class_symbol'.
1641 * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
1643 * symbol.c (gfc_set_default_type): Ditto.
1645 2014-02-19 Janus Weil <janus@gcc.gnu.org>
1648 * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
1649 functions, which are used as procedure pointer target.
1651 2014-02-18 Tobias Burnus <burnus@net-b.de>
1654 * expr.c (gfc_check_pointer_assign): Add check for
1656 * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
1657 decl in a corner case.
1659 2014-02-18 Janus Weil <janus@gcc.gnu.org>
1662 * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
1663 arguments to prevent ICE.
1665 2014-02-17 Janus Weil <janus@gcc.gnu.org>
1668 * resolve.c (build_default_init_expr): Don't initialize character
1669 variable if -fno-automatic is given.
1671 2014-02-15 Mikael Morin <mikael@gcc.gnu.org>
1674 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
1675 number of arguments.
1677 2014-02-11 Jakub Jelinek <jakub@redhat.com>
1680 * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
1681 on decl if sym->attr.optional.
1683 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1686 * resolve.c (resolve_assoc_var): Set the subref_array_pointer
1687 attribute for the 'associate-name' if necessary.
1688 * trans-stmt.c (trans_associate_var): If the 'associate-name'
1689 is a subref_array_pointer, assign the element size of the
1690 associate variable to 'span'.
1692 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1695 * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
1696 actual argument to a formal argument with the value attribute
1697 in an elemental procedure.
1699 2014-02-08 Janus Weil <janus@gcc.gnu.org>
1700 Mikael Morin <mikael.morin@gcc.gnu.org>
1703 * class.c (generate_finalization_wrapper): Assert that proc_tree has
1704 been set in gfc_resolve_finalizers.
1705 * resolve.c (resolve_fl_derived0): Remove unnecessary call to
1708 2014-02-07 Benno Schulenberg <bensberg@justemail.net>
1710 PR translation/52289
1711 * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
1712 in an error message.
1714 2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
1717 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
1720 2014-02-01 Paul Thomas <pault@gcc.gnu.org>
1723 * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
1724 SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
1725 pointer to the string is stored.
1726 * trans-expr.c (gfc_conv_expr_reference): Likewise, use
1727 gfc_conv_string_parameter to ensure that a pointer to is passed
1728 to the elemental function.
1730 2014-01-28 Paul Thomas <pault@gcc.gnu.org>
1733 * trans-stmt.c (gfc_trans_allocate): Before the pointer
1734 assignment to transfer the source _vptr to a class allocate
1735 expression, the final class reference should be exposed. The
1736 tail that includes the _data and array references is stored.
1737 This reduced expression is transferred to 'lhs' and the _vptr
1738 added. Then the tail is restored to the allocate expression.
1740 2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
1743 * module.c (read_module): Assert for component name correctness.
1745 2014-01-18 Mikael Morin <mikael@gcc.gnu.org>
1748 * module.c (MOD_VERSION): Bump.
1749 (fp2, find_pointer2): Remove.
1750 (mio_component_ref): Don't forcedfully set the containing derived type
1751 symbol for loading. Remove unused argument.
1752 (mio_ref): Update caller
1753 (mio_symbol): Dump component list earlier.
1754 (skip_list): New argument nest_level. Initialize level with the new
1756 (read_module): Add forced pointer components association for derived
1759 2014-01-12 Janus Weil <janus@gcc.gnu.org>
1762 * decl.c (gfc_match_data_decl): Improve error recovery.
1764 2014-01-09 Tobias Burnus <burnus@net-b.de>
1766 * cpp.c (gfc_cpp_handle_option): Add missing break.
1767 * trans-io.c (transfer_expr): Silence unused value warning.
1769 2014-01-08 Janus Weil <janus@gcc.gnu.org>
1772 * resolve.c (gfc_verify_binding_labels): Modify order of checks.
1774 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1777 * class.c (comp_is_finalizable): New function to dermine if a given
1778 component is finalizable.
1779 (finalize_component, generate_finalization_wrapper): Use it.
1781 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1785 * resolve.c (resolve_global_procedure): Don't apply to c-binding
1787 (gfc_verify_binding_labels): Remove duplicate line.
1789 2014-01-04 Janus Weil <janus@gcc.gnu.org>
1792 * class.c (add_proc_comp): Copy pure attribute.
1794 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1796 Update copyright years
1798 2014-01-02 Tobias Burnus <burnus@net-b.de>
1800 * gfortranspec.c (lang_specific_driver): Update copyright notice
1802 * gfc-internals.texi: Bump @copying's copyright year.
1803 * gfortran.texi: Ditto.
1804 * intrinsic.texi: Ditto.
1805 * invoke.texi: Ditto.
1807 2014-01-02 Janus Weil <janus@gcc.gnu.org>
1810 * resolve.c (resolve_typebound_procedures): No need to create the vtab
1813 Copyright (C) 2014 Free Software Foundation, Inc.
1815 Copying and distribution of this file, with or without modification,
1816 are permitted in any medium without royalty provided the copyright
1817 notice and this notice are preserved.