1 2014-10-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
5 * gfortran.h (gfc_warning_cmdline): Add overload that takes an
7 (gfc_error_cmdline): Declare.
8 * error.c (gfc_warning_cmdline): New overload that takes an option.
9 (gfc_error_cmdline): New.
10 * lang.opt (Wmissing-include-dirs): New.
11 * scanner.c (add_path_to_list): Use the new functions.
12 (load_file): Likewise.
13 * options.c (gfc_init_options): Wmissing-include-dirs is enabled
14 by default in Fortran.
15 (gfc_handle_option): Accept automatically handled options.
17 2014-10-06 Tobias Burnus <burnus@net-b.de>
19 * libgfortran.h (GFC_STD_F2015): Add.
20 * decl.c (gfc_match_implicit_none): Handle spec list.
21 (gfc_match_implicit): Move double intrinsic warning here.
22 * gfortran.h (gfc_namespace): Add has_implicit_none_export:1.
23 (gfc_set_implicit_none): Update interface.
24 * interface.c (gfc_procedure_use): Add implicit-none external
26 * parse.c (accept_statement): Remove call.
27 (verify_st_order): Permit that external-implict-none follows
29 * symbol.c (gfc_set_implicit_none): Handle external/type
32 2014-10-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
35 * resolve.c (resolve_fl_procedure): Clean up obsolescence warning.
37 2014-09-25 Tobias Burnus <burnus@net-b.de>
39 * check.c (check_co_collective): Renamed from check_co_minmaxsum,
41 (gfc_check_co_minmax, gfc_check_co_sum): Update call.
42 (gfc_check_co_broadcast, gfc_check_co_reduce): New.
43 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
45 * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
46 * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
48 * intrinsic.texi (CO_BROADCAST): Add.
49 * trans.h (gfor_fndecl_co_broadcast): New.
50 * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
51 (gfc_build_builtin_function_decls): Add decl for it,
52 * trans-intrinsic.c (conv_co_collective): Renamed from
53 conv_co_minmaxsum. Handle co_reduce.
54 (gfc_conv_intrinsic_subroutine): Handle co_reduce.
56 2014-09-23 Jakub Jelinek <jakub@redhat.com>
59 * trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL
60 instead of VAR_DECL for base_decl.
62 2014-09-21 Jan Hubicka <hubicka@ucw.cz>
64 * openmp.c (omp_context): Rename to ...
65 (fortran_omp_context): ... this one.
67 2014-09-21 Dominique d'Humieres <dominiq@lps.ens.fr>
69 * resolve.c (resolve_fl_procedure): Remove duplicated lines.
71 2014-09-20 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
72 Tobias Burnus <burnus@net-b.de>
74 * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with
75 generating temporary for value argument.
77 2014-09-20 Joost VandeVondele <vondele@gcc.gnu.org>
79 * trans-expr.c (gfc_reset_vptr): Fix comment whitespace.
80 (gfc_conv_class_to_class): Likewise.
81 (gfc_conv_procedure_call): Likewise.
82 (arrayfunc_assign_needs_temporary): Likewise.
83 (realloc_lhs_loop_for_fcn_call): Likewise.
84 (gfc_trans_assignment_1): Likewise.
85 * trans-array.c (gfc_conv_array_ref): Likewise.
86 (gfc_array_allocate): Likewise.
87 (gfc_alloc_allocatable_for_assignment): Likewise.
88 * symbol.c (generate_isocbinding_symbol): Likewise.
89 * class.c (finalization_scalarizer): Likewise.
90 (finalizer_insert_packed_call): Likewise.
91 (generate_finalization_wrapper): Likewise.
92 (find_intrinsic_vtab): Likewise.
93 * decl.c (gfc_match_import): Likewise.
94 (match_procedure_decl): Likewise.
95 (gfc_match_subroutine): Likewise.
96 (gfc_match_bind_c): Likewise.
97 (gfc_match_volatile): Likewise.
98 * trans-common.c (create_common): Likewise.
99 * error.c (gfc_diagnostic_starter): Likewise.
100 * trans-stmt.c (gfc_trans_sync): Likewise.
101 (gfc_trans_critical): Likewise.
102 (gfc_trans_simple_do): Likewise.
103 (gfc_trans_do): Likewise.
104 (gfc_trans_where_assign): Likewise.
105 * expr.c (gfc_is_simply_contiguous): Likewise.
106 * module.c (unquote_string): Likewise.
107 * trans.c (gfc_add_finalizer_call): Likewise.
108 * trans-types.c (gfc_init_kinds): Likewise.
109 * scanner.c (preprocessor_line): Likewise.
110 * gfortranspec.c (lang_specific_driver): Likewise.
111 * frontend-passes.c (create_var): Likewise.
112 (cfe_expr_0): Likewise.
113 * resolve.c (check_host_association): Likewise.
114 (gfc_resolve_code): Likewise.
115 (resolve_fl_derived0): Likewise.
116 (resolve_symbol): Likewise.
117 * f95-lang.c (poplevel): Likewise.
118 * trans-decl.c (create_main_function): Likewise.
119 * trans-io.c (transfer_expr): Likewise.
120 * arith.c (gfc_arith_divide): Likewise.
121 * parse.c (resolve_all_program_units): Likewise.
122 * check.c (gfc_check_rank): Likewise.
123 (gfc_check_sizeof): Likewise.
124 (is_c_interoperable): Likewise.
125 * dependency.c (gfc_dep_difference): Likewise.
126 * primary.c (gfc_match_rvalue): Likewise.
127 * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise.
128 (conv_isocbinding_subroutine): Likewise.
129 * options.c (gfc_post_options): Likewise.
130 (gfc_handle_fpe_option): Likewise.
131 (gfc_get_option_string): Likewise.
132 * simplify.c (simplify_transformation_to_scalar): Likewise.
133 (gfc_simplify_spread): Likewise.
135 2014-09-19 Joost VandeVondele <vondele@gcc.gnu.org>
138 * trans-array.c (gfc_trans_deferred_array): Only nullify allocatables.
140 2014-09-15 Jakub Jelinek <jakub@redhat.com>
142 * Make-lang.in (check_gfortran_parallelize): Change to just an upper
145 2014-09-13 Tobias Burnus <burnus@net-b.de>
148 * trans-decl.c (gfc_build_builtin_function_decls): Fix
149 caf_unlock declaration.
151 2014-09-12 Joseph Myers <joseph@codesourcery.com>
153 * trans-types.c (gfc_init_kinds): Check
154 targetm.libgcc_floating_mode_supported_p for floating-point
155 modes. Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
157 2014-09-05 Joost VandeVondele <vondele@gcc.gnu.org>
160 * intrinsic.texi (INT): clarify result.
162 2014-09-03 Fritz Reese <Reese-Fritz@zai.com>
165 * decl.c (variable_decl): Don't overwrite typespecs of Cray pointees
166 when matching a component declaration.
168 2014-09-02 Marek Polacek <polacek@redhat.com>
171 * interface.c (compare_parameter): Fix condition.
172 * trans-expr.c (gfc_conv_procedure_call): Likewise.
174 2014-08-31 Fritz Reese <Reese-Fritz@zai.com>
177 * resolve.c (apply_default_init_local): Don't treat variables
178 in RECURSIVE procedures as saved.
180 2014-08-31 Tobias Burnus <burnus@net-b.de>
182 * trans-decl.c (gfc_build_builtin_function_decls): Add
183 may_require_tmp dummy argument.
184 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
185 conv_caf_send): Handle may_require_tmp argument.
186 (gfc_conv_intrinsic_function): Update call.
187 * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
188 _gfortran_caf_sendget): Update interface description.
190 2014-08-30 Tobias Burnus <burnus@net-b.de>
192 * trans.h (gfc_caf_get_image_index,
193 gfc_get_caf_token_offset): New prototypes.
194 * trans-expr.c (gfc_caf_get_image_index): Moved from
195 trans-intrinsic.c and renamed.
196 (gfc_get_caf_token_offset) Ditto; support offset = NULL
198 * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
200 (gfc_conv_intrinsic_caf_get, conv_caf_send,
201 conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
202 conv_intrinsic_atomic_cas): Update callers.
204 2014-08-30 Tobias Burnus <burnus@net-b.de>
209 * dependency.c (gfc_check_dependency): Allow for optimizations
210 in the pointer-alias check.
212 2014-08-30 Janne Blomqvist <jb@gcc.gnu.org>
214 * module.c (gfc_dump_module): Use ISO C remove() instead of POSIX
217 2014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com>
220 * module.c (gfc_dump_module): Unlink old module file before
223 2014-08-26 Thomas Koenig <tkoenig@gcc.gnu.org>
225 * frontend_passes (expr_array): Replace by vec template.
227 (expr_count): Remove.
228 (doloop_list): Replace by vec template.
229 (doloop_size): Remove.
230 (gfc_run_passes): Adjust to use of vec template.
231 (cfe_register_funcs): Likewise.
232 (cfe_expr_0): Likewise.
233 (doloop_code): Likewise.
235 2014-08-22 Steven Bosscher <steven@gcc.gnu.org>
238 * resolve.c (resolve_select): Fix list traversal in case the
239 last element of the CASE list was dropped as unreachable code.
241 2014-08-22 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
244 * lang.opt (Wuse-without-only): New flag.
245 * gfortran.h (gfc_option_t): Add it.
246 * invoke.texi: Document it.
247 * module.c (gfc_use_module): Warn if needed.
248 * options.c (gfc_init_options,gfc_handle_option): Init accordingly.
250 2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
253 * frontend-passes.c (optimize_binop_array_assignment):
254 Do not try to optimize the array assignment for string
257 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
260 * error.c (gfc_diagnostic_build_locus_prefix): New function.
261 (gfc_diagnostic_starter): Follow Fortran FE diagnostics.
262 (gfc_diagnostic_finalizer): Do not call default finalizer.
264 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
267 * error.c (gfc_diagnostic_finalizer): Call default finalizer.
269 2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
271 * options.c (gfc_init_options_struct): assert that the frontend sets
272 flag_errno_math and flag_associative_math.
274 2014-08-17 Tobias Burnus <burnus@net-b.de>
276 * resolve.c (gfc_resolve_finalizers): Ensure that parents are
279 2014-08-17 Tobias Burnus <burnus@net-b.de>
281 * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
283 (transfer_namelist_element): Use proper int type as argument.
285 2014-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
288 * trans-expr.c (is_runtime_conformable): Add NULL pointer checks.
290 2014-08-15 Tobias Burnus <burnus@net-b.de>
292 * resolve.c (resolve_critical): Fix name mangling.
293 * trans-stmt.c (gfc_trans_critical): Fix lock call.
295 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
298 * gfortran.h: Define GCC_DIAG_STYLE.
299 (gfc_diagnostics_init,gfc_warning_cmdline): Declare.
300 * trans-array.c: Include gfortran.h before diagnostic-core.h.
301 * trans-expr.c: Likewise.
302 * trans-openmp.c: Likewise.
303 * trans-const.c: Likewise.
305 * trans-types.c: Likewise.
306 * f95-lang.c: Likewise.
307 * trans-decl.c: Likewise.
308 * trans-io.c: Likewise.
309 * trans-intrinsic.c: Likewise.
310 * error.c: Include diagnostic.h and diagnostic-color.h.
311 (gfc_diagnostic_build_prefix): New.
312 (gfc_diagnostic_starter): New.
313 (gfc_diagnostic_finalizer): New.
314 (gfc_warning_cmdline): New.
315 (gfc_diagnostics_init): New.
316 * gfc-diagnostic.def: New.
317 * options.c (gfc_init_options): Call gfc_diagnostics_init.
318 (gfc_post_options): Use gfc_warning_cmdline.
320 2014-08-15 Jakub Jelinek <jakub@redhat.com>
321 Tobias Burnus <burnus@net-b.de>
324 * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
325 is allocatable, rather than whenever var->attr.allocatable.
327 2014-08-15 Jakub Jelinek <jakub@redhat.com>
330 * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
331 or allocatable passed by reference.
332 (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
334 2014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
337 * gfortran.h (symbol_attribute): Add fe_temp flag.
338 * frontend-passes.c (is_fe_temp): New function.
339 (create_var): Don't add a temporary for an already
340 created variable or for a constant.
341 (combine_ARRAY_constructor): Remove special handling
344 2014-08-14 Tobias Burnus <burnus@net-b.de>
346 * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
347 (_gfortran_caf_register): Update for locking/critical.
348 (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
349 * resolve.c (resolve_critical): New.
350 (gfc_resolve_code): Call it.
351 * trans-decl.c (gfor_fndecl_caf_critical,
352 gfor_fndecl_caf_end_critical): Remove.
353 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
354 (gfc_build_builtin_function_decls): Remove critical,
355 assign locking declarations.
356 (generate_coarray_sym_init): Handle locking and
358 * trans-stmt.c (gfc_trans_critical): Add calls to
359 lock/unlock libcaf functions.
360 * trans.h (gfc_coarray_type): Update locking, add
361 critical enum values.
362 (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
363 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
365 2014-08-14 Tobias Burnus <burnus@net-b.de>
367 * gfortran.texi (Coarray Programming): Add first ABI
370 2014-08-14 Jakub Jelinek <jakub@redhat.com>
373 * openmp.c (gfc_match_omp_clauses): When failed to match
374 operator name, defined op name or name, set buffer to
375 empty string. Don't call gfc_find_omp_udr if buffer is empty
377 (gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
378 before calling gfc_free_omp_udr.
380 2014-08-11 Richard Biener <rguenther@suse.de>
383 * trans-expr.c (gfc_conv_structure): Initialize _size with
384 a value of proper type.
386 2014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
389 * simplify.c (gfc_simplify_dot_product): Convert types of
390 vectors before calculating the result.
392 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
394 * openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
396 2014-07-26 Tobias Burnus <burnus@net-b.de>
401 * intrinsic.texi (SIZEOF): Document changed behavior
402 for polymorphic arrays.
404 2014-07-26 Tobias Burnus <burnus@net-b.de>
409 * check.c (gfc_check_sizeof): Permit for assumed type if and
410 only if it has an array descriptor.
411 * intrinsic.c (do_ts29113_check): Permit SIZEOF.
412 (add_functions): SIZEOF is an Inquiry function.
413 * intrinsic.texi (SIZEOF): Add note that only contiguous
414 arrays are permitted.
415 * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
417 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
418 assumed type + array descriptor, CLASS and assumed rank.
419 (gfc_conv_intrinsic_storage_size): Handle class arrays.
421 2014-07-25 Tobias Burnus <burnus@net-b.de>
423 * simplify.c (gfc_simplify_storage_size): Use proper
424 integer kind for the returned value.
426 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
428 * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
429 correct menu position to match sectioning.
431 2014-06-15 Tobias Burnus <burnus@net-b.de>
433 * symbol.c (check_conflict): Add codimension conflict with
434 pointer; fix cray-pointee check.
436 2014-06-14 Tobias Burnus <burnus@net-b.de>
438 * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
439 for kind mismatch with -fcoarray=lib.
441 2014-07-12 Paul Thomas <pault@gcc.gnu.org>
444 * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
445 that elements are skipped. This then correctly aligns 'reverse'
446 with the scalarizer loops.
448 2014-07-12 Tobias Burnus <burnus@net-b.de>
451 * trans-types.c (gfc_init_types): Fix data-type bug
452 with gfc_max_array_element_size.
454 2014-07-12 Tobias Burnus <burnus@net-b.de>
456 * libgfortran.h (libcaf_atomic_codes): Add.
457 * trans-decl.c (gfor_fndecl_caf_atomic_def,
458 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
459 gfor_fndecl_caf_atomic_op): New variables.
460 (gfc_build_builtin_function_decls): Initialize them.
461 * trans.h (gfor_fndecl_caf_atomic_def,
462 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
463 gfor_fndecl_caf_atomic_op): New variables.
464 * trans-intrinsic.c (conv_intrinsic_atomic_op,
465 conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
466 Add library calls with -fcoarray=lib.
468 2014-07-12 Tobias Burnus <burnus@net-b.de>
470 * check.c (gfc_check_atomic): Update for STAT=.
471 (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
472 (gfc_check_atomic_op, gfc_check_atomic_cas,
473 gfc_check_atomic_fetch_op): New.
474 * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
475 GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
476 GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
477 GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
478 * intrinsic.c (add_subroutines): Handle them.
479 * intrinsic.texi: Add documentation for them.
480 (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
481 (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
482 * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
483 gfc_check_atomic_fetch_op): New
485 * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
486 * iso-fortran-env.def: Add it.
487 * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
488 conv_intrinsic_atomic_ref; handle more atomics.
489 (conv_intrinsic_atomic_def): Handle STAT=.
490 (conv_intrinsic_atomic_cas): New.
491 (gfc_conv_intrinsic_subroutine): Handle new atomics.
493 2014-07-09 Bernd Schmidt <bernds@codesourcery.com>
495 * trans-array.c (gfc_build_constant_array_constructor): Build a
496 static decl manually.
497 * trans-decl.c (create_main_function): Likewise.
499 2014-07-07 Paul Thomas <pault@gcc.gnu.org>
503 * trans-expr.c (fcncall_realloc_result): Use the natural type
504 for the address expression of 'res_desc'.
506 2014-07-07 Gerald Pfeifer <gerald@pfeifer.com>
508 * gfortran.texi (Fortran 2003 status): Fix grammar.
510 2014-07-04 Tobias Burnus <burnus@net-b.de>
512 * resolve.c (resolve_assoc_var): Fix corank setting.
513 * trans-array.c (gfc_conv_descriptor_token): Change assert.
514 for select-type temporaries.
515 * trans-decl.c (generate_coarray_sym_init): Skip for
516 attr.select_type_temporary.
517 * trans-expr.c (gfc_conv_procedure_call): Fix for
518 select-type temporaries.
519 * trans-intrinsic.c (get_caf_token_offset): Ditto.
520 (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
522 * trans-types.h (gfc_get_dtype_rank_type): New.
523 * trans-types.c (gfc_get_dtype_rank_type): Ditto.
525 2014-07-03 Tobias Burnus <burnus@net-b.de>
527 * scanner.c (skip_free_comments): Fix indentation.
529 2014-07-02 Jakub Jelinek <jakub@redhat.com>
530 Fritz Reese <Reese-Fritz@zai.com>
532 * decl.c (variable_decl): Reject old style initialization
533 for derived type components.
535 2014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
539 * decl.c (check_bind_name_identifier): New function.
540 (gfc_match_bind_c): Match any constant expression as binding
542 * match.c (gfc_match_name_C): Remove.
544 2014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
547 * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
548 * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
550 * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
551 * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
552 * module.c (mio_symbol): Keep track of symbols which came from
554 (gfc_use_module): Keep track of the IEEE modules.
555 * trans-decl.c (gfc_get_symbol_decl): Adjust code since
556 we have new intrinsic modules.
557 (gfc_build_builtin_function_decls): Build decls for
558 ieee_procedure_entry and ieee_procedure_exit.
559 (is_from_ieee_module, is_ieee_module_used, save_fp_state,
560 restore_fp_state): New functions.
561 (gfc_generate_function_code): Save and restore floating-point
562 state on procedure entry/exit, when IEEE modules are used.
563 * intrinsic.texi: Document the IEEE modules.
565 2014-06-25 Tobias Burnus <burnus@net-b.de>
567 * interface.c (check_intents): Fix diagnostic with
570 2014-06-25 Tobias Burnus <burnus@net-b.de>
572 * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
573 when assigning a coindexed RHS scalar to a noncoindexed LHS
575 * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
576 for a noncoindexed scalar RHS.
578 2014-06-25 Tobias Burnus <burnus@net-b.de>
580 * check.c (check_co_minmaxsum): Add definable check.
581 * expr.c (gfc_check_vardef_context): Fix context == NULL case.
582 * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
584 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
587 2014-06-25 Jakub Jelinek <jakub@redhat.com>
589 * trans.h (gfc_omp_clause_linear_ctor): New prototype.
590 * trans-openmp.c (gfc_omp_linear_clause_add_loop,
591 gfc_omp_clause_linear_ctor): New functions.
592 (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
593 correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
594 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
596 2014-06-24 Jakub Jelinek <jakub@redhat.com>
598 * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
600 * f95-lang.c (gfc_init_builtin_functions): Initialize
601 BUILT_IN_ASSUME_ALIGNED.
602 * gfortran.h (gfc_omp_namelist): Change udr field type to
603 struct gfc_omp_namelist_udr.
604 (gfc_omp_namelist_udr): New type.
605 (gfc_get_omp_namelist_udr): Define.
606 (gfc_resolve_code): New prototype.
607 * match.c (gfc_free_omp_namelist): Free name->udr.
608 * module.c (intrinsics): Add INTRINSIC_USER.
609 (fix_mio_expr): Likewise.
610 (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
611 * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
612 (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
613 Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
614 (struct resolve_omp_udr_callback_data): New type.
615 (resolve_omp_udr_callback, resolve_omp_udr_callback2,
616 resolve_omp_udr_clause): New functions.
617 (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
619 (omp_udr_callback): Don't check for implicitly declared functions
621 (gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
622 implicitly declared subroutines here.
623 * resolve.c (resolve_function): If value.function.isym is non-NULL,
624 consider it already resolved.
625 (resolve_code): Renamed to ...
626 (gfc_resolve_code): ... this. No longer static.
627 (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
629 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
630 by reference type (C_PTR) variables.
631 (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
632 (gfc_trans_omp_udr_expr): Remove.
633 (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
634 Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
635 expand it as assignment or subroutine call. Don't initialize
638 2014-06-23 Tobias Burnus <burnus@net-b.de>
640 * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
641 explicit-size arrays with -fcoarray=lib.
643 2014-06-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
646 * invoke.texi: Don't mention nonexisting -fcase-lower option.
648 2014-06-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
651 * expr.c (scalarize_intrinsic_call): Take care of optional
654 2014-06-19 Tobias Burnus <burnus@net-b.de>
656 * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
659 2014-06-18 Tobias Burnus <burnus@net-b.de>
661 * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
662 * intrinsic.texi (OpenMP Modules): Ditto.
664 2014-06-18 Jakub Jelinek <jakub@redhat.com>
666 * cpp.c (cpp_define_builtins): Change _OPENMP macro to
668 * dump-parse-tree.c (show_omp_namelist): Add list_type
669 argument. Adjust for rop being u.reduction_op now,
670 handle depend_op or map_op.
671 (show_omp_node): Adjust callers. Print some new
672 OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
673 becoming a single OMP_LIST_DEPEND.
674 * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
676 (gfc_attribute_table): New variable.
677 (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
678 * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
679 EXEC_OMP_* codes and new clauses.
680 * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
681 ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
682 ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
683 ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
684 ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
685 ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
686 ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
687 ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
688 ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
689 ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
690 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
691 ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
692 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
693 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
694 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
695 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
696 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
697 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
698 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
699 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
700 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
701 (symbol_attribute): Add omp_declare_target field.
702 (gfc_omp_depend_op, gfc_omp_map_op): New enums.
703 (gfc_omp_namelist): Replace rop field with union
704 containing reduction_op, depend_op and map_op.
705 (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
706 (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
707 (gfc_omp_clauses): Add num_teams, device, thread_limit,
708 dist_sched_kind, dist_chunk_size fields.
709 (gfc_common_head): Add omp_declare_target field.
710 (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
711 EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
712 EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
713 EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
714 EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
715 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
716 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
717 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
718 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
719 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
720 EXEC_OMP_TARGET_UPDATE.
721 (gfc_add_omp_declare_target): New prototype.
722 * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
723 gfc_match_omp_distribute_parallel_do,
724 gfc_match_omp_distribute_parallel_do_simd,
725 gfc_match_omp_distribute_simd, gfc_match_omp_target,
726 gfc_match_omp_target_data, gfc_match_omp_target_teams,
727 gfc_match_omp_target_teams_distribute,
728 gfc_match_omp_target_teams_distribute_parallel_do,
729 gfc_match_omp_target_teams_distribute_parallel_do_simd,
730 gfc_match_omp_target_teams_distribute_simd,
731 gfc_match_omp_target_update, gfc_match_omp_teams,
732 gfc_match_omp_teams_distribute,
733 gfc_match_omp_teams_distribute_parallel_do,
734 gfc_match_omp_teams_distribute_parallel_do_simd,
735 gfc_match_omp_teams_distribute_simd): New prototypes.
736 * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
737 (attr_bits): Likewise.
738 (mio_symbol_attribute): Handle omp_declare_target attribute.
739 (gfc_free_omp_clauses): Free num_teams, device, thread_limit
740 and dist_chunk_size expressions.
741 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
742 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
743 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
744 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
745 OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
746 OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
747 OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
748 OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
749 OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
750 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
751 OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
752 OMP_CLAUSE_DIST_SCHEDULE): Define.
753 (gfc_match_omp_clauses): Change mask parameter to unsigned int.
754 Adjust for rop becoming u.reduction_op. Disallow inbranch with
755 notinbranch. For depend clause, always create OMP_LIST_DEPEND
756 and fill in u.depend_op. Handle num_teams, device, map,
757 to, from, thread_limit and dist_schedule clauses.
758 (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
759 OMP_CLAUSE_NOTINBRANCH.
760 (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
761 OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
762 OMP_DISTRIBUTE_CLAUSES): Define.
763 (match_omp): New function.
764 (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
765 gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
766 gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
767 gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
768 gfc_match_omp_task): Rewritten using match_omp.
769 (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
770 Diagnose if the directives are followed by unexpected junk.
771 (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
772 gfc_match_omp_distribute_parallel_do_simd,
773 gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
774 gfc_match_omp_target, gfc_match_omp_target_data,
775 gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
776 gfc_match_omp_target_teams_distribute_parallel_do,
777 gfc_match_omp_target_teams_distribute_parallel_do_simd,
778 gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
779 gfc_match_omp_teams, gfc_match_omp_teams_distribute,
780 gfc_match_omp_teams_distribute_parallel_do,
781 gfc_match_omp_teams_distribute_parallel_do_simd,
782 gfc_match_omp_teams_distrbute_simd): New functions.
783 * openmp.c (resolve_omp_clauses): Adjust for
784 OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
785 OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
786 dist_chunk_size and thread_limit.
787 (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
788 ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
789 new EXEC_OMP_* codes.
790 (resolve_omp_do): Handle various new EXEC_OMP_* codes.
791 (gfc_resolve_omp_directive): Likewise.
792 (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
793 * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
794 offloading related directives.
795 (case_executable): Add ST_OMP_TARGET_UPDATE.
796 (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
798 (case_decl): Add ST_OMP_DECLARE_TARGET.
799 (gfc_ascii_statement): Handle new ST_OMP_* codes.
800 (parse_omp_do): Handle various new ST_OMP_* codes.
801 (parse_executable): Likewise.
802 * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
804 (resolve_code): Likewise.
805 (resolve_symbol): Change that !$OMP DECLARE TARGET variables
807 * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
808 * symbol.c (check_conflict): Check omp_declare_target conflicts.
809 (gfc_add_omp_declare_target): New function.
810 (gfc_copy_attr): Copy omp_declare_target.
811 * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
812 * trans-common.c (build_common_decl): Add "omp declare target"
814 * trans-decl.c (add_attributes_to_decl): Likewise.
815 * trans.h (gfc_omp_finish_clause): New prototype.
816 * trans-openmp.c (gfc_omp_finish_clause): New function.
817 (gfc_trans_omp_reduction_list): Adjust for rop being renamed
819 (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
820 change to OMP_LIST_DEPEND and fix up depend handling.
821 Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
822 thread_limit, device, dist_chunk_size and dist_sched_kind.
823 (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
824 (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
825 GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
826 GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
827 (gfc_split_omp_clauses): Handle splitting of clauses for new
829 (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
830 callable for combined constructs.
831 (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
832 (gfc_trans_omp_distribute, gfc_trans_omp_teams,
833 gfc_trans_omp_target, gfc_trans_omp_target_data,
834 gfc_trans_omp_target_update): New functions.
835 (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
836 new EXEC_OMP_* codes.
838 2014-06-18 Tobias Burnus <burnus@net-b.de>
841 * invoke.texi (-Wunused-parameter): Make clearer when
842 -Wextra implies this option.
844 2014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
847 * options.c (gfc_handle_option): Remove call to
848 handle_generated_option.
850 2014-06-17 Tobias Burnus <burnus@net-b.de>
852 * check.c (gfc_check_atomic, gfc_check_atomic_def):
853 Use argument for GFC_ISYM_CAF_GET.
854 * resolve.c (resolve_variable): Enable CAF_GET insertion.
855 (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
856 (resolve_ordinary_assign): Enable CAF_SEND insertion.
857 * trans-const.c (gfc_build_string_const,
858 gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
859 * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
860 gfor_fndecl_caf_sendget): New global variables.
861 (gfc_build_builtin_function_decls): Initialize them;
862 update co_min/max/sum initialization.
863 * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
864 get_tree_for_caf_expr and removed static.
865 (gfc_conv_procedure_call): Update call.
866 * trans-intrinsic.c (caf_get_image_index,
867 conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
868 get_caf_token_offset, gfc_conv_intrinsic_caf_get,
870 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
871 gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
872 (conv_co_minmaxsum): Update call for remove unused vector
874 (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
875 Skip a CAF_GET of the argument.
876 * trans-types.c (gfc_get_caf_vector_type): New.
877 * trans-types.h (gfc_get_caf_vector_type): New.
878 * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
879 gfor_fndecl_caf_sendget): New global variables.
880 (gfc_get_tree_for_caf_expr): New prototypes.
882 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
884 * trans-common.c (build_common_decl): Use
886 * trans-decl.c (gfc_finish_var_decl): Likewise.
887 (get_proc_pointer_decl): Likewise.
889 2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
893 * check.c (gfc_check_system_clock): Improve checking of arguments.
894 * intrinsic.texi: Update doc of SYSTEM_CLOCK.
895 * iresolve.c (gfc_resolve_system_clock): Choose library function
896 used depending on argument kinds.
897 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
898 decls for system_clock_4 and system_clock_8.
899 * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
900 (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
901 * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
904 2014-06-12 Tobias Burnus <burnus@net-b.de>
906 * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
907 * symbol.c (gfc_copy_formal_args_intr): Handle the case
908 that absent optional arguments should be ignored.
909 * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
910 (gfc_conv_intrinsic_funcall,
911 conv_generic_with_optional_char_arg): Update call.
912 * resolve.c (gfc_resolve_intrinsic): Ditto.
914 2014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr>
915 Mikael Morin <mikael@gcc.gnu.org>
918 * trans-expr.c (gfc_conv_expr_reference): Deallocate array
921 2014-06-10 Jakub Jelinek <jakub@redhat.com>
924 * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
926 * openmp.c (resolve_omp_clauses): Remove allocatable components
927 diagnostics. Add associate-name and intent(in) pointer
928 diagnostics for various clauses, diagnose procedure pointers in
930 * parse.c (match_word_omp_simd): New function.
931 (matchs, matcho): New macros.
932 (decode_omp_directive): Change match macros to either matchs
933 or matcho. Handle -fopenmp-simd.
934 (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
935 * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
937 * trans-array.c (get_full_array_size): Rename to...
938 (gfc_full_array_size): ... this. No longer static.
939 (duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
941 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
942 duplicate_allocatable callers.
943 (gfc_duplicate_allocatable_nocopy): New function.
944 (structure_alloc_comps): Adjust g*_full_array_size and
945 duplicate_allocatable caller.
946 * trans-array.h (gfc_full_array_size,
947 gfc_duplicate_allocatable_nocopy): New prototypes.
948 * trans-common.c (create_common): Call gfc_finish_decl_attrs.
949 * trans-decl.c (gfc_finish_decl_attrs): New function.
950 (gfc_finish_var_decl, create_function_arglist,
951 gfc_get_fake_result_decl): Call it.
952 (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
953 don't allocate it again.
954 (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
956 * trans.h (gfc_finish_decl_attrs): New prototype.
957 (struct lang_decl): Add scalar_allocatable and scalar_pointer
959 (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
960 GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
961 GFC_DECL_ASSOCIATE_VAR_P): Define.
962 (GFC_POINTER_TYPE_P): Remove.
963 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
964 GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
965 GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
966 (gfc_omp_predetermined_sharing): Associate-names are predetermined.
967 (enum walk_alloc_comps): New.
968 (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
969 gfc_walk_alloc_comps): New functions.
970 (gfc_omp_private_outer_ref): Return true for scalar allocatables or
971 decls with allocatable components.
972 (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
973 gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
974 allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
975 allocatables and decls with allocatable components.
976 (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
978 (gfc_trans_omp_reduction_list): Call
979 gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
980 (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
981 (gfc_trans_omp_parallel_do_simd): Likewise.
982 * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
983 (gfc_get_derived_type): Call gfc_finish_decl_attrs.
985 2014-06-09 Paul Thomas <pault@gcc.gnu.org>
988 * trans-stmt.c (trans_associate_var): Check that array
989 constructors are constant for direct reference.
991 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
994 * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
995 BESSEL_Y0, and BESSEL_Y1.
997 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1000 * trans-decl.c (gfc_create_module_variable): Don't create
1001 Cray-pointee decls twice.
1003 2014-06-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1005 * io.c (resolve_tag): Warn on non-default kind for NUMBER,
1006 NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
1008 2014-06-06 Jakub Jelinek <jakub@redhat.com>
1010 * dump-parse-tree.c (show_omp_namelist): Dump reduction
1011 id in each list item.
1012 (show_omp_node): Only handle OMP_LIST_REDUCTION, not
1013 OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
1014 dump reduction id here.
1015 * frontend-passes.c (dummy_code_callback): Renamed to...
1016 (gfc_dummy_code_callback): ... this. No longer static.
1017 (optimize_reduction): Use gfc_dummy_code_callback instead of
1018 dummy_code_callback.
1019 * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
1020 (symbol_attribute): Add omp_udr_artificial_var bitfield.
1021 (gfc_omp_reduction_op): New enum.
1022 (gfc_omp_namelist): Add rop and udr fields.
1023 (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
1024 OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
1025 OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
1026 OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
1027 (OMP_LIST_REDUCTION): New.
1028 (gfc_omp_udr): New type.
1029 (gfc_get_omp_udr): Define.
1030 (gfc_symtree): Add n.omp_udr field.
1031 (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
1032 (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
1033 gfc_dummy_code_callback): New prototypes.
1034 * match.h (gfc_match_omp_declare_reduction): New prototype.
1035 * module.c (MOD_VERSION): Increase to 13.
1036 (omp_declare_reduction_stmt): New array.
1037 (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
1039 (read_module): Read OpenMP user defined reductions.
1040 (write_module): Write OpenMP user defined reductions.
1041 * openmp.c: Include arith.h.
1042 (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
1043 (gfc_match_omp_clauses): Handle user defined reductions.
1044 Store reduction kind into gfc_omp_namelist instead of using
1045 several OMP_LIST_* entries.
1046 (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
1047 gfc_match_omp_declare_reduction): New functions.
1048 (resolve_omp_clauses): Adjust for reduction clauses being only
1049 in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
1050 (struct omp_udr_callback_data): New type.
1051 (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
1053 * parse.c (decode_omp_directive): Handle !$omp declare reduction.
1054 (case_decl): Add ST_OMP_DECLARE_REDUCTION.
1055 (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
1056 * resolve.c (resolve_fl_variable): Allow len=: or len=* on
1057 sym->attr.omp_udr_artificial_var symbols.
1058 (resolve_types): Call gfc_resolve_omp_udrs.
1059 * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
1060 use parent ns instead of gfc_current_ns.
1061 (gfc_get_sym_tree): Don't insert symbols into
1062 namespaces with omp_udr_ns set.
1063 (free_omp_udr_tree): New function.
1064 (gfc_free_namespace): Call it.
1065 * trans-openmp.c (struct omp_udr_find_orig_data): New type.
1066 (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
1067 (gfc_trans_omp_array_reduction): Renamed to...
1068 (gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
1069 argument, instead pass gfc_omp_namelist pointer N. Handle
1070 user defined reductions.
1071 (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
1072 Handle user defined reductions and reduction ops in gfc_omp_namelist.
1073 (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
1075 (gfc_split_omp_clauses): Likewise.
1077 2014-06-05 Richard Biener <rguenther@suse.de>
1080 * gfortranspec.c (spec_file): Remove.
1081 (find_spec_file): Likewise.
1082 (lang_specific_driver): Do not look for specs file in -L
1083 or append -specs command line argument.
1084 (lang_specific_pre_link): Always %:include libgfortran.spec.
1086 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
1088 * fortran/trans.c (trans_runtime_error_vararg): Call
1089 fold_build_call_array_loc instead of fold_builtin_call_array.
1091 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
1093 * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
1094 arguments to caf_init.
1096 2014-05-26 Tobias Burnus <burnus@net-b.de>
1098 * gfortran.texi (Project Status): Fix broken link.
1100 2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
1103 * intrinsics.texi (CTIME): Remove mention of locale-dependent
1106 2014-05-26 Tobias Burnus <burnus@net-b.de>
1109 * trans-io.c (nml_full_name, transfer_namelist_element): Insert
1110 a '+' rather then '%' to differentiate namelist variable names
1111 that are based on extended derived types.
1113 2014-05-25 Tobias Burnus <burnus@net-b.de>
1115 * check.c (gfc_check_num_images): New.
1116 (gfc_check_this_image): Handle distance argument.
1117 * intrinsic.c (add_functions): Update this_image and num_images
1118 for new distance and failed arguments.
1119 * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
1121 * intrinsic.h (gfc_check_num_images): New.
1122 (gfc_check_this_image, gfc_simplify_num_images,
1123 gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
1124 * iresolve.c (gfc_resolve_this_image): Handle distance argument.
1125 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1126 Handle new arguments.
1127 * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
1128 (gfc_conv_intrinsic_function): Update trans_num_images call.
1130 2014-05-23 Tobias Burnus <burnus@net-b.de>
1132 * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
1133 * gfortran.texi: Ditto.
1135 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
1137 * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
1138 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
1139 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
1140 * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
1142 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
1144 * f95-lang.c (pushlevel): Adjust.
1145 * trans-decl.c (gfc_allocate_lang_decl): Adjust.
1146 (gfc_find_module): Likewise.
1147 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1148 (gfc_get_array_type_bounds): Likewise.
1149 (gfc_nonrestricted_type): Likewise.
1150 * trans.h: Don't use variable_size gty attribute.
1152 2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr>
1154 * check.c (gfc_check_fn_rc2008): move "argument" to the right
1157 2014-05-12 Tobias Burnus <burnus@net-b.de>
1160 * openmp.c (resolve_omp_do): Reject do concurrent loops.
1162 2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1165 * frontend-passes.c (in_assoc_list): New variable.
1166 (optimize_namespace): Initialize in_assoc_list
1167 (combine_array_constructor): Don't try to combine
1169 (gfc_code_walker): Keep track of in_assoc_list.
1171 2014-05-11 Jakub Jelinek <jakub@redhat.com>
1173 * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
1174 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1175 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1176 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1177 ST_OMP_DECLARE_SIMD.
1178 (gfc_omp_namelist): New typedef.
1179 (gfc_get_omp_namelist): Define.
1180 (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
1181 OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
1182 (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
1183 (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
1184 Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
1185 simdlen_expr fields.
1186 (gfc_omp_declare_simd): New typedef.
1187 (gfc_get_omp_declare_simd): Define.
1188 (gfc_namespace): Add omp_declare_simd field.
1189 (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1190 EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
1191 EXEC_OMP_PARALLEL_DO_SIMD.
1192 (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
1193 and GFC_OMP_ATOMIC_SWAP.
1194 (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
1195 (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
1196 gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
1198 * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
1199 * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
1200 * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
1201 simdlen_expr. Use gfc_free_omp_namelist instead of
1203 (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
1205 (gfc_match_omp_variable_list): Add end_colon, headp and
1206 allow_sections arguments. Handle parsing of array sections.
1207 Use *omp_namelist* instead of *namelist* data structure and
1208 functions/macros. Allow termination at : character.
1209 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
1210 OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
1211 OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
1212 (gfc_match_omp_clauses): Change first and needs_space variables
1213 into arguments with default values. Parse inbranch, notinbranch,
1214 proc_bind, safelen, simdlen, uniform, linear, aligned and
1216 (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
1217 (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
1218 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
1219 (gfc_match_omp_do_simd): New function.
1220 (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
1221 data structure and functions/macros.
1222 (gfc_match_omp_simd, gfc_match_omp_declare_simd,
1223 gfc_match_omp_parallel_do_simd): New functions.
1224 (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
1225 (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
1226 gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
1228 (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
1229 Use *omp_namelist* instead of *namelist* data structure and
1230 functions/macros. Resolve uniform, aligned, linear, depend,
1231 safelen and simdlen clauses.
1232 (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
1233 addition, recognize atomic swap.
1234 (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
1235 of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
1236 EXEC_OMP_PARALLEL_DO.
1237 (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
1238 data structure and functions/macros.
1239 (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1240 EXEC_OMP_PARALLEL_DO_SIMD.
1241 (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1242 EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
1243 resolve_omp_clauses caller.
1244 (gfc_resolve_omp_declare_simd): New function.
1245 * parse.c (decode_omp_directive): Parse cancellation point, cancel,
1246 declare simd, end do simd, end simd, end parallel do simd,
1247 end taskgroup, parallel do simd, simd and taskgroup directives.
1248 (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
1249 (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
1250 ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
1251 (case_decl): Add ST_OMP_DECLARE_SIMD.
1252 (gfc_ascii_statement): Handle ST_OMP_CANCEL,
1253 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1254 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1255 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1256 ST_OMP_DECLARE_SIMD.
1257 (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
1258 ST_OMP_PARALLEL_DO_SIMD.
1259 (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
1260 (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
1261 ST_OMP_PARALLEL_DO_SIMD.
1262 (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
1263 ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
1264 * trans-decl.c (gfc_get_extern_function_decl,
1265 gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
1267 * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
1268 EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
1269 safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
1270 of depend, aligned and linear clauses.
1271 * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
1272 and EXEC_OMP_PARALLEL_DO_SIMD.
1273 (gfc_free_omp_namelist): New function.
1274 * dump-parse-tree.c (show_namelist): Removed.
1275 (show_omp_namelist): New function.
1276 (show_omp_node): Handle OpenMP 4.0 additions.
1277 (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1278 EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
1280 * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
1281 gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
1282 gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
1283 gfc_match_omp_taskgroup): New prototypes.
1284 * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
1285 argument, handle it. Allow current_function_decl to be NULL.
1286 (gfc_trans_omp_variable_list): Add declare_simd argument, pass
1287 it through to gfc_trans_omp_variable and disregard whether
1288 sym is referenced if declare_simd is true. Work on gfc_omp_namelist
1289 instead of gfc_namelist.
1290 (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
1291 gfc_namelist. Adjust gfc_trans_omp_variable caller.
1292 (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
1293 to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
1294 instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
1295 simdlen, depend, uniform, linear, proc_bind and aligned clauses.
1297 (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
1298 adjust for GFC_OMP_ATOMIC_* changes.
1299 (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
1301 (gfc_trans_omp_do): Add op argument, handle simd translation into
1303 (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
1304 GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
1305 GFC_OMP_MASK_PARALLEL): New.
1306 (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
1307 (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
1308 (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
1310 (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
1311 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1312 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1313 Adjust gfc_trans_omp_do caller.
1314 (gfc_trans_omp_declare_simd): New function.
1315 * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
1316 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1317 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1318 For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
1320 * module.c (omp_declare_simd_clauses): New variable.
1321 (mio_omp_declare_simd): New function.
1322 (mio_symbol): Call it.
1323 * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
1324 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1325 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1326 * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
1327 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1328 (resolve_code): Handle EXEC_OMP_CANCEL,
1329 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1330 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1331 (resolve_types): Call gfc_resolve_omp_declare_simd.
1333 2014-05-11 Tobias Burnus <burnus@net-b.de>
1335 * trans-intrinsic.c (gfc_build_builtin_function_decls):
1336 Change type of second argument to int.
1338 2014-05-09 Mike Stump <mikestump@comcast.net>
1341 * trans-array.c (gfc_conv_array_initializer): Fix wide-int
1344 2014-05-08 Tobias Burnus <burnus@net-b.de>
1346 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
1347 and GFC_ISYM_CAF_SEND.
1348 * intrinsic.c (add_functions): Add only internally
1349 accessible caf_get and caf_send functions.
1350 * resolve.c (add_caf_get_intrinsic,
1351 remove_caf_get_intrinsic): New functions.
1352 (resolve_variable): Resolve expression rank and
1353 prepare for add_caf_get_intrinsic call.
1354 (gfc_resolve_expr): For variables, remove rank
1356 (resolve_ordinary_assign): Prepare call to
1358 (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
1359 the LHS of an assignment.
1361 2014-05-08 Tobias Burnus <burnus@net-b.de>
1363 * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
1365 2014-05-08 Tobias Burnus <burnus@net-b.de>
1367 * check.c (check_co_minmaxsum, gfc_check_co_minmax,
1368 gfc_check_co_sum): New.
1369 * error.c (gfc_notify_std): Update -std=f2008ts.
1370 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
1371 GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
1372 * intrinsic.h (gfc_check_co_minmax,
1373 gfc_check_co_sum): Declare.
1374 * intrinsic.c (add_subroutines): Add co_min, co_max
1376 (gfc_check_intrinsic_standard): Update text for
1378 * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
1380 * invoke.texi (-std=f2008ts): Update wording.
1381 * trans.h (gfor_fndecl_co_max,
1382 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1383 * trans-decl.c (gfor_fndecl_co_max,
1384 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1385 (gfc_build_builtin_function_decls): Assign to it.
1386 * trans-intrinsic.c (conv_co_minmaxsum): New.
1387 (gfc_conv_intrinsic_subroutine): Call it.
1389 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1390 Mike Stump <mikestump@comcast.net>
1391 Richard Sandiford <rdsandiford@googlemail.com>
1393 * target-memory.c: Include wide-int.h.
1394 (gfc_interpret_logical): Use wide-int interfaces.
1395 * trans-array.c: Include wide-int.h.
1396 (gfc_conv_array_initializer): Use wide-int interfaces.
1397 * trans-const.c: Include wide-int.h.
1398 (gfc_conv_string_init): Use wide-int interfaces.
1399 (gfc_conv_mpz_to_tree): Likewise.
1400 (gfc_conv_tree_to_mpz): Likewise.
1401 * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
1402 * trans-expr.c: Include wide-int.h.
1403 (gfc_conv_cst_int_power): Use wide-int interfaces.
1404 (gfc_string_to_single_character): Likewise.
1405 (gfc_optimize_len_trim): Likewise.
1406 * trans-intrinsic.c: Include wide-int.h.
1407 (trans_this_image): Use wide-int interfaces.
1408 (gfc_conv_intrinsic_bound): Likewise.
1409 (conv_intrinsic_cobound): Likewise.
1410 * trans-types.c (gfc_init_types): Likewise.
1411 (gfc_get_array_type_bounds): Pass an integer of the correct type
1412 instead of using integer_one_node.
1414 2014-04-30 Tobias Burnus <burnus@net-b.de>
1416 * trans-decl.c (create_function_arglist): Add hidden coarray arguments
1417 also for polymorphic coarrays.
1418 * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
1419 also for polymorphic coarrays.
1421 2014-04-30 Tobias Burnus <burnus@net-b.de>
1423 * resolve.c (resolve_function): Don't do
1424 assumed-size check for lcobound/ucobound.
1425 * trans-types.c (gfc_build_array_type): Only build an array
1426 descriptor with codimensions for allocatable coarrays.
1428 2014-04-30 Tobias Burnus <burnus@net-b.de>
1430 * gfortran.h (gfc_init_coarray_decl): Remove.
1431 * parse.c (translate_all_program_units): Remove call to it.
1432 (gfc_parse_file): Update call.
1433 * trans.h (gfor_fndecl_caf_this_image,
1434 gfor_fndecl_caf_num_images): Add.
1435 (gfort_gvar_caf_num_images,
1436 gfort_gvar_caf_this_image): Remove.
1437 * trans-decl.c (gfor_fndecl_caf_this_image,
1438 gfor_fndecl_caf_num_images): Add.
1439 (gfort_gvar_caf_num_images,
1440 gfort_gvar_caf_this_image): Remove.
1441 (gfc_build_builtin_function_decls): Init new decl.
1442 (gfc_init_coarray_dec): Remove.
1443 (create_main_function): Change calls.
1444 * trans-intrinsic.c (trans_this_image, trans_image_index,
1445 conv_intrinsic_cobound): Generate call to new library function
1446 instead of to a static variable.
1447 * trans-stmt.c (gfc_trans_sync): Ditto.
1449 2014-04-30 Tobias Burnus <burnus@net-b.de>
1451 * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
1452 and derived-type coarrays.
1454 2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1458 * gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
1459 * arith.c (gfc_int2int): Convert number to signed if
1460 arithmetic overflow is not checked.
1461 * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
1462 size if range checking is in force.
1463 (convert_mpz_to_signed): Make non-static, rename to
1464 (gfc_convert_mpz_to_signed).
1465 (simplify_dshift): Use gfc_convert_mpz_to_signed.
1466 (gfc_simplify_ibclr): Likewise.
1467 (gfc_simplify_ibits): Likewise.
1468 (gfc_simplify_ibset): Likewise.
1469 (simplify_shift): Likewise.
1470 (gfc_simplify_ishiftc): Likewise.
1471 (gfc_simplify_maskr): Likewise.
1472 (gfc_simplify_maskl): Likewise.
1474 2014-04-22 Tobias Burnus <burnus@net-b.de>
1477 * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1480 2014-04-17 Jakub Jelinek <jakub@redhat.com>
1482 * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
1483 argument is enum machine_mode.
1485 2014-04-13 Paul Thomas <pault@gcc.gnu.org>
1489 * trans.h: Add 'use_offset' bitfield to gfc_se.
1490 * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
1491 as a trigger to unconditionally recalculate the offset for
1492 array slices and constant arrays.
1493 trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
1494 trans-stmt.c (trans_associate_var): Ditto.
1495 (gfc_conv_procedure_call): Ditto.
1497 2014-04-11 Tobias Burnus <burnus@net-b.de>
1501 * resolve.c (gfc_resolve_finalizers): Ensure that vtables
1502 and finalization wrappers are generated.
1504 2014-04-11 Janne Blomqvist <jb@gcc.gnu.org>
1506 * intrinsic.texi (RANDOM_SEED): Improve example.
1508 2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1510 * class.c (gfc_build_class_symbol): Append "_t" to target class
1511 names to make the generated type names unique.
1513 2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1516 * trans-types.c (gfc_get_function_type): In case of recursion
1517 build a variadic function type with empty argument list instead of a
1518 stdarg-like function type with incomplete argument list.
1520 2014-04-04 Tobias Burnus <burnus@net-b.de>
1522 * check.c (gfc_check_cmplx): Fix typo.
1524 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1525 Tobias Burnus <burnus@net-b.de>
1528 * trans-expr.c (gfc_conv_derived_to_class): Avoid
1529 generation of out-of-bounds range expr.
1531 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1534 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1537 2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1540 * frontend-passes.c (cfe_code): Do not walk subtrees
1543 2014-03-27 Tobias Burnus <burnus@net-b.de>
1546 * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1549 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
1552 * fortran.texi: Document Volatile COMMON as not supported.
1554 2014-03-22 Jakub Jelinek <jakub@redhat.com>
1557 * cpp.c (gfc_cpp_init): Restore cb_change_file call to
1560 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1563 * gfortran.texi: Add description of namelist DELIM= behavior.
1565 2014-03-19 Tobias Burnus <burnus@net-b.>
1568 * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
1569 * resolve.c (resolve_ordinary_assign): Ditto.
1571 2014-03-19 Tobias Burnus <burnus@net-b.de>
1575 * gfortran.h (gfc_unset_implicit_pure): New prototype.
1576 * resolve.c (gfc_unset_implicit_pure): New.
1577 (resolve_structure_cons, resolve_function,
1578 pure_subroutine): Use it.
1579 * decl.c (match_old_style_init, gfc_match_data,
1580 match_pointer_init, variable_decl): Ditto.
1581 * expr.c (gfc_check_pointer_assign): Ditto.
1582 * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
1583 * io.c (match_vtag, gfc_match_open, gfc_match_close,
1584 match_filepos, gfc_match_inquire, gfc_match_print,
1585 gfc_match_wait): Ditto.
1586 * match.c (gfc_match_critical, gfc_match_stopcode,
1587 lock_unlock_statement, sync_statement, gfc_match_allocate,
1588 gfc_match_deallocate): Ditto.
1589 * parse.c (decode_omp_directive): Ditto.
1590 * symbol.c (gfc_add_save): Ditto.
1592 2014-03-18 Janus Weil <janus@gcc.gnu.org>
1596 * decl.c (match_attr_spec): Revert r208590.
1598 2014-03-18 Jakub Jelinek <jakub@redhat.com>
1601 * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
1604 2014-03-18 Tobias Burnus <burnus@net-b.de>
1607 * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
1608 (gfc_trans_io_runtime_check): Remove.
1609 * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
1610 as argument, add predictor to block.
1611 (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
1612 gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
1613 * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
1614 (gfc_trans_runtime_check, gfc_allocate_using_malloc,
1615 gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
1617 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1618 * trans-stmt.c (gfc_trans_allocate): Ditto.
1619 * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
1621 2014-03-15 Janus Weil <janus@gcc.gnu.org>
1624 * decl.c (match_attr_spec): Variables in the main program implicitly
1625 get the SAVE attribute in Fortran 2008.
1627 2014-03-14 Mikael Morin <mikael@gcc.gnu.org>
1630 * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
1631 if it has transposed dimensions.
1633 2014-03-08 Tobias Burnus <burnus@net-b.de>
1636 * f95-lang.c (gfc_init): Return false when only
1638 * options.c (gfc_post_options): Ditto.
1640 2014-03-08 Tobias Burnus <burnus@net-b.de>
1642 * gfortran.texi (Fortran 2003 Status): Mention finalization,
1643 deferred-length character support and input rounding.
1644 (Fortran 2008 Status): Mention that at termination
1645 signalling exceptions are shown.
1647 2014-03-06 Paul Thomas <pault@gcc.gnu.org>
1648 Janus Weil <janus@gcc.gnu.org>
1651 * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
1652 * primary.c (build_actual_constructor): It is not an error if
1653 a missing component has the deferred_parameter attribute;
1654 equally, if one is given a value, it is an error.
1655 * resolve.c (resolve_fl_derived0): Remove error for deferred
1656 character length components. Add the hidden string length
1657 field to the structure. Give it the deferred_parameter
1659 * trans-array.c (duplicate_allocatable): Add a strlen field
1660 which is used as the element size if it is non-null.
1661 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
1662 NULL to the new argument in duplicate_allocatable.
1663 (structure_alloc_comps): Set the hidden string length as
1664 appropriate. Use it in calls to duplicate_allocatable.
1665 (gfc_alloc_allocatable_for_assignment): When a deferred length
1666 backend declaration is variable, use that; otherwise use the
1667 string length from the expression evaluation.
1668 * trans-expr.c (gfc_conv_component_ref): If this is a deferred
1669 character length component, the string length should have the
1670 value of the hidden string length field.
1671 (gfc_trans_subcomponent_assign): Set the hidden string length
1672 field for deferred character length components. Allocate the
1673 necessary memory for the string.
1674 (alloc_scalar_allocatable_for_assignment): Same change as in
1675 gfc_alloc_allocatable_for_assignment above.
1676 * trans-stmt.c (gfc_trans_allocate): Likewise.
1677 * trans-intrinsic (size_of_string_in_bytes): Make non-static.
1678 * trans-types.c (gfc_get_derived_type): Set the tree type for
1679 a deferred character length component.
1680 * trans.c (gfc_deferred_strlen): New function.
1681 * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
1683 2014-03-01 Mikael Morin <mikael@gcc.gnu.org>
1686 * frontend-passes.c (optimize_comparison): Guard two union accesses
1687 with the corresponding tag checks.
1689 2014-02-28 Janus Weil <janus@gcc.gnu.org>
1692 * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
1693 procedure for characters.
1695 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1698 * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
1701 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1704 * gfortran.h (gfc_build_class_symbol): Removed argument.
1705 * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
1706 (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
1707 delayed now, except for unlimited polymorphics.
1708 (comp_is_finalizable): Procedure pointer components are not finalizable.
1709 * decl. (build_sym, build_struct, attr_decl1): Removed argument of
1710 'gfc_build_class_symbol'.
1711 * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
1713 * symbol.c (gfc_set_default_type): Ditto.
1715 2014-02-19 Janus Weil <janus@gcc.gnu.org>
1718 * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
1719 functions, which are used as procedure pointer target.
1721 2014-02-18 Tobias Burnus <burnus@net-b.de>
1724 * expr.c (gfc_check_pointer_assign): Add check for
1726 * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
1727 decl in a corner case.
1729 2014-02-18 Janus Weil <janus@gcc.gnu.org>
1732 * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
1733 arguments to prevent ICE.
1735 2014-02-17 Janus Weil <janus@gcc.gnu.org>
1738 * resolve.c (build_default_init_expr): Don't initialize character
1739 variable if -fno-automatic is given.
1741 2014-02-15 Mikael Morin <mikael@gcc.gnu.org>
1744 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
1745 number of arguments.
1747 2014-02-11 Jakub Jelinek <jakub@redhat.com>
1750 * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
1751 on decl if sym->attr.optional.
1753 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1756 * resolve.c (resolve_assoc_var): Set the subref_array_pointer
1757 attribute for the 'associate-name' if necessary.
1758 * trans-stmt.c (trans_associate_var): If the 'associate-name'
1759 is a subref_array_pointer, assign the element size of the
1760 associate variable to 'span'.
1762 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1765 * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
1766 actual argument to a formal argument with the value attribute
1767 in an elemental procedure.
1769 2014-02-08 Janus Weil <janus@gcc.gnu.org>
1770 Mikael Morin <mikael.morin@gcc.gnu.org>
1773 * class.c (generate_finalization_wrapper): Assert that proc_tree has
1774 been set in gfc_resolve_finalizers.
1775 * resolve.c (resolve_fl_derived0): Remove unnecessary call to
1778 2014-02-07 Benno Schulenberg <bensberg@justemail.net>
1780 PR translation/52289
1781 * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
1782 in an error message.
1784 2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
1787 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
1790 2014-02-01 Paul Thomas <pault@gcc.gnu.org>
1793 * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
1794 SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
1795 pointer to the string is stored.
1796 * trans-expr.c (gfc_conv_expr_reference): Likewise, use
1797 gfc_conv_string_parameter to ensure that a pointer to is passed
1798 to the elemental function.
1800 2014-01-28 Paul Thomas <pault@gcc.gnu.org>
1803 * trans-stmt.c (gfc_trans_allocate): Before the pointer
1804 assignment to transfer the source _vptr to a class allocate
1805 expression, the final class reference should be exposed. The
1806 tail that includes the _data and array references is stored.
1807 This reduced expression is transferred to 'lhs' and the _vptr
1808 added. Then the tail is restored to the allocate expression.
1810 2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
1813 * module.c (read_module): Assert for component name correctness.
1815 2014-01-18 Mikael Morin <mikael@gcc.gnu.org>
1818 * module.c (MOD_VERSION): Bump.
1819 (fp2, find_pointer2): Remove.
1820 (mio_component_ref): Don't forcedfully set the containing derived type
1821 symbol for loading. Remove unused argument.
1822 (mio_ref): Update caller
1823 (mio_symbol): Dump component list earlier.
1824 (skip_list): New argument nest_level. Initialize level with the new
1826 (read_module): Add forced pointer components association for derived
1829 2014-01-12 Janus Weil <janus@gcc.gnu.org>
1832 * decl.c (gfc_match_data_decl): Improve error recovery.
1834 2014-01-09 Tobias Burnus <burnus@net-b.de>
1836 * cpp.c (gfc_cpp_handle_option): Add missing break.
1837 * trans-io.c (transfer_expr): Silence unused value warning.
1839 2014-01-08 Janus Weil <janus@gcc.gnu.org>
1842 * resolve.c (gfc_verify_binding_labels): Modify order of checks.
1844 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1847 * class.c (comp_is_finalizable): New function to dermine if a given
1848 component is finalizable.
1849 (finalize_component, generate_finalization_wrapper): Use it.
1851 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1855 * resolve.c (resolve_global_procedure): Don't apply to c-binding
1857 (gfc_verify_binding_labels): Remove duplicate line.
1859 2014-01-04 Janus Weil <janus@gcc.gnu.org>
1862 * class.c (add_proc_comp): Copy pure attribute.
1864 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1866 Update copyright years
1868 2014-01-02 Tobias Burnus <burnus@net-b.de>
1870 * gfortranspec.c (lang_specific_driver): Update copyright notice
1872 * gfc-internals.texi: Bump @copying's copyright year.
1873 * gfortran.texi: Ditto.
1874 * intrinsic.texi: Ditto.
1875 * invoke.texi: Ditto.
1877 2014-01-02 Janus Weil <janus@gcc.gnu.org>
1880 * resolve.c (resolve_typebound_procedures): No need to create the vtab
1883 Copyright (C) 2014 Free Software Foundation, Inc.
1885 Copying and distribution of this file, with or without modification,
1886 are permitted in any medium without royalty provided the copyright
1887 notice and this notice are preserved.