1 2014-10-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4 * resolve.c (resolve_fl_procedure): Clean up obsolescence warning.
6 2014-09-25 Tobias Burnus <burnus@net-b.de>
8 * check.c (check_co_collective): Renamed from check_co_minmaxsum,
10 (gfc_check_co_minmax, gfc_check_co_sum): Update call.
11 (gfc_check_co_broadcast, gfc_check_co_reduce): New.
12 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
14 * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
15 * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
17 * intrinsic.texi (CO_BROADCAST): Add.
18 * trans.h (gfor_fndecl_co_broadcast): New.
19 * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
20 (gfc_build_builtin_function_decls): Add decl for it,
21 * trans-intrinsic.c (conv_co_collective): Renamed from
22 conv_co_minmaxsum. Handle co_reduce.
23 (gfc_conv_intrinsic_subroutine): Handle co_reduce.
25 2014-09-23 Jakub Jelinek <jakub@redhat.com>
28 * trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL
29 instead of VAR_DECL for base_decl.
31 2014-09-21 Jan Hubicka <hubicka@ucw.cz>
33 * openmp.c (omp_context): Rename to ...
34 (fortran_omp_context): ... this one.
36 2014-09-21 Dominique d'Humieres <dominiq@lps.ens.fr>
38 * resolve.c (resolve_fl_procedure): Remove duplicated lines.
40 2014-09-20 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
41 Tobias Burnus <burnus@net-b.de>
43 * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with
44 generating temporary for value argument.
46 2014-09-20 Joost VandeVondele <vondele@gcc.gnu.org>
48 * trans-expr.c (gfc_reset_vptr): Fix comment whitespace.
49 (gfc_conv_class_to_class): Likewise.
50 (gfc_conv_procedure_call): Likewise.
51 (arrayfunc_assign_needs_temporary): Likewise.
52 (realloc_lhs_loop_for_fcn_call): Likewise.
53 (gfc_trans_assignment_1): Likewise.
54 * trans-array.c (gfc_conv_array_ref): Likewise.
55 (gfc_array_allocate): Likewise.
56 (gfc_alloc_allocatable_for_assignment): Likewise.
57 * symbol.c (generate_isocbinding_symbol): Likewise.
58 * class.c (finalization_scalarizer): Likewise.
59 (finalizer_insert_packed_call): Likewise.
60 (generate_finalization_wrapper): Likewise.
61 (find_intrinsic_vtab): Likewise.
62 * decl.c (gfc_match_import): Likewise.
63 (match_procedure_decl): Likewise.
64 (gfc_match_subroutine): Likewise.
65 (gfc_match_bind_c): Likewise.
66 (gfc_match_volatile): Likewise.
67 * trans-common.c (create_common): Likewise.
68 * error.c (gfc_diagnostic_starter): Likewise.
69 * trans-stmt.c (gfc_trans_sync): Likewise.
70 (gfc_trans_critical): Likewise.
71 (gfc_trans_simple_do): Likewise.
72 (gfc_trans_do): Likewise.
73 (gfc_trans_where_assign): Likewise.
74 * expr.c (gfc_is_simply_contiguous): Likewise.
75 * module.c (unquote_string): Likewise.
76 * trans.c (gfc_add_finalizer_call): Likewise.
77 * trans-types.c (gfc_init_kinds): Likewise.
78 * scanner.c (preprocessor_line): Likewise.
79 * gfortranspec.c (lang_specific_driver): Likewise.
80 * frontend-passes.c (create_var): Likewise.
81 (cfe_expr_0): Likewise.
82 * resolve.c (check_host_association): Likewise.
83 (gfc_resolve_code): Likewise.
84 (resolve_fl_derived0): Likewise.
85 (resolve_symbol): Likewise.
86 * f95-lang.c (poplevel): Likewise.
87 * trans-decl.c (create_main_function): Likewise.
88 * trans-io.c (transfer_expr): Likewise.
89 * arith.c (gfc_arith_divide): Likewise.
90 * parse.c (resolve_all_program_units): Likewise.
91 * check.c (gfc_check_rank): Likewise.
92 (gfc_check_sizeof): Likewise.
93 (is_c_interoperable): Likewise.
94 * dependency.c (gfc_dep_difference): Likewise.
95 * primary.c (gfc_match_rvalue): Likewise.
96 * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise.
97 (conv_isocbinding_subroutine): Likewise.
98 * options.c (gfc_post_options): Likewise.
99 (gfc_handle_fpe_option): Likewise.
100 (gfc_get_option_string): Likewise.
101 * simplify.c (simplify_transformation_to_scalar): Likewise.
102 (gfc_simplify_spread): Likewise.
104 2014-09-19 Joost VandeVondele <vondele@gcc.gnu.org>
107 * trans-array.c (gfc_trans_deferred_array): Only nullify allocatables.
109 2014-09-15 Jakub Jelinek <jakub@redhat.com>
111 * Make-lang.in (check_gfortran_parallelize): Change to just an upper
114 2014-09-13 Tobias Burnus <burnus@net-b.de>
117 * trans-decl.c (gfc_build_builtin_function_decls): Fix
118 caf_unlock declaration.
120 2014-09-12 Joseph Myers <joseph@codesourcery.com>
122 * trans-types.c (gfc_init_kinds): Check
123 targetm.libgcc_floating_mode_supported_p for floating-point
124 modes. Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
126 2014-09-05 Joost VandeVondele <vondele@gcc.gnu.org>
129 * intrinsic.texi (INT): clarify result.
131 2014-09-03 Fritz Reese <Reese-Fritz@zai.com>
134 * decl.c (variable_decl): Don't overwrite typespecs of Cray pointees
135 when matching a component declaration.
137 2014-09-02 Marek Polacek <polacek@redhat.com>
140 * interface.c (compare_parameter): Fix condition.
141 * trans-expr.c (gfc_conv_procedure_call): Likewise.
143 2014-08-31 Fritz Reese <Reese-Fritz@zai.com>
146 * resolve.c (apply_default_init_local): Don't treat variables
147 in RECURSIVE procedures as saved.
149 2014-08-31 Tobias Burnus <burnus@net-b.de>
151 * trans-decl.c (gfc_build_builtin_function_decls): Add
152 may_require_tmp dummy argument.
153 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
154 conv_caf_send): Handle may_require_tmp argument.
155 (gfc_conv_intrinsic_function): Update call.
156 * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
157 _gfortran_caf_sendget): Update interface description.
159 2014-08-30 Tobias Burnus <burnus@net-b.de>
161 * trans.h (gfc_caf_get_image_index,
162 gfc_get_caf_token_offset): New prototypes.
163 * trans-expr.c (gfc_caf_get_image_index): Moved from
164 trans-intrinsic.c and renamed.
165 (gfc_get_caf_token_offset) Ditto; support offset = NULL
167 * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
169 (gfc_conv_intrinsic_caf_get, conv_caf_send,
170 conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
171 conv_intrinsic_atomic_cas): Update callers.
173 2014-08-30 Tobias Burnus <burnus@net-b.de>
178 * dependency.c (gfc_check_dependency): Allow for optimizations
179 in the pointer-alias check.
181 2014-08-30 Janne Blomqvist <jb@gcc.gnu.org>
183 * module.c (gfc_dump_module): Use ISO C remove() instead of POSIX
186 2014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com>
189 * module.c (gfc_dump_module): Unlink old module file before
192 2014-08-26 Thomas Koenig <tkoenig@gcc.gnu.org>
194 * frontend_passes (expr_array): Replace by vec template.
196 (expr_count): Remove.
197 (doloop_list): Replace by vec template.
198 (doloop_size): Remove.
199 (gfc_run_passes): Adjust to use of vec template.
200 (cfe_register_funcs): Likewise.
201 (cfe_expr_0): Likewise.
202 (doloop_code): Likewise.
204 2014-08-22 Steven Bosscher <steven@gcc.gnu.org>
207 * resolve.c (resolve_select): Fix list traversal in case the
208 last element of the CASE list was dropped as unreachable code.
210 2014-08-22 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
213 * lang.opt (Wuse-without-only): New flag.
214 * gfortran.h (gfc_option_t): Add it.
215 * invoke.texi: Document it.
216 * module.c (gfc_use_module): Warn if needed.
217 * options.c (gfc_init_options,gfc_handle_option): Init accordingly.
219 2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
222 * frontend-passes.c (optimize_binop_array_assignment):
223 Do not try to optimize the array assignment for string
226 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
229 * error.c (gfc_diagnostic_build_locus_prefix): New function.
230 (gfc_diagnostic_starter): Follow Fortran FE diagnostics.
231 (gfc_diagnostic_finalizer): Do not call default finalizer.
233 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
236 * error.c (gfc_diagnostic_finalizer): Call default finalizer.
238 2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
240 * options.c (gfc_init_options_struct): assert that the frontend sets
241 flag_errno_math and flag_associative_math.
243 2014-08-17 Tobias Burnus <burnus@net-b.de>
245 * resolve.c (gfc_resolve_finalizers): Ensure that parents are
248 2014-08-17 Tobias Burnus <burnus@net-b.de>
250 * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
252 (transfer_namelist_element): Use proper int type as argument.
254 2014-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
257 * trans-expr.c (is_runtime_conformable): Add NULL pointer checks.
259 2014-08-15 Tobias Burnus <burnus@net-b.de>
261 * resolve.c (resolve_critical): Fix name mangling.
262 * trans-stmt.c (gfc_trans_critical): Fix lock call.
264 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
267 * gfortran.h: Define GCC_DIAG_STYLE.
268 (gfc_diagnostics_init,gfc_warning_cmdline): Declare.
269 * trans-array.c: Include gfortran.h before diagnostic-core.h.
270 * trans-expr.c: Likewise.
271 * trans-openmp.c: Likewise.
272 * trans-const.c: Likewise.
274 * trans-types.c: Likewise.
275 * f95-lang.c: Likewise.
276 * trans-decl.c: Likewise.
277 * trans-io.c: Likewise.
278 * trans-intrinsic.c: Likewise.
279 * error.c: Include diagnostic.h and diagnostic-color.h.
280 (gfc_diagnostic_build_prefix): New.
281 (gfc_diagnostic_starter): New.
282 (gfc_diagnostic_finalizer): New.
283 (gfc_warning_cmdline): New.
284 (gfc_diagnostics_init): New.
285 * gfc-diagnostic.def: New.
286 * options.c (gfc_init_options): Call gfc_diagnostics_init.
287 (gfc_post_options): Use gfc_warning_cmdline.
289 2014-08-15 Jakub Jelinek <jakub@redhat.com>
290 Tobias Burnus <burnus@net-b.de>
293 * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
294 is allocatable, rather than whenever var->attr.allocatable.
296 2014-08-15 Jakub Jelinek <jakub@redhat.com>
299 * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
300 or allocatable passed by reference.
301 (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
303 2014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
306 * gfortran.h (symbol_attribute): Add fe_temp flag.
307 * frontend-passes.c (is_fe_temp): New function.
308 (create_var): Don't add a temporary for an already
309 created variable or for a constant.
310 (combine_ARRAY_constructor): Remove special handling
313 2014-08-14 Tobias Burnus <burnus@net-b.de>
315 * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
316 (_gfortran_caf_register): Update for locking/critical.
317 (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
318 * resolve.c (resolve_critical): New.
319 (gfc_resolve_code): Call it.
320 * trans-decl.c (gfor_fndecl_caf_critical,
321 gfor_fndecl_caf_end_critical): Remove.
322 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
323 (gfc_build_builtin_function_decls): Remove critical,
324 assign locking declarations.
325 (generate_coarray_sym_init): Handle locking and
327 * trans-stmt.c (gfc_trans_critical): Add calls to
328 lock/unlock libcaf functions.
329 * trans.h (gfc_coarray_type): Update locking, add
330 critical enum values.
331 (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
332 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
334 2014-08-14 Tobias Burnus <burnus@net-b.de>
336 * gfortran.texi (Coarray Programming): Add first ABI
339 2014-08-14 Jakub Jelinek <jakub@redhat.com>
342 * openmp.c (gfc_match_omp_clauses): When failed to match
343 operator name, defined op name or name, set buffer to
344 empty string. Don't call gfc_find_omp_udr if buffer is empty
346 (gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
347 before calling gfc_free_omp_udr.
349 2014-08-11 Richard Biener <rguenther@suse.de>
352 * trans-expr.c (gfc_conv_structure): Initialize _size with
353 a value of proper type.
355 2014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
358 * simplify.c (gfc_simplify_dot_product): Convert types of
359 vectors before calculating the result.
361 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
363 * openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
365 2014-07-26 Tobias Burnus <burnus@net-b.de>
370 * intrinsic.texi (SIZEOF): Document changed behavior
371 for polymorphic arrays.
373 2014-07-26 Tobias Burnus <burnus@net-b.de>
378 * check.c (gfc_check_sizeof): Permit for assumed type if and
379 only if it has an array descriptor.
380 * intrinsic.c (do_ts29113_check): Permit SIZEOF.
381 (add_functions): SIZEOF is an Inquiry function.
382 * intrinsic.texi (SIZEOF): Add note that only contiguous
383 arrays are permitted.
384 * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
386 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
387 assumed type + array descriptor, CLASS and assumed rank.
388 (gfc_conv_intrinsic_storage_size): Handle class arrays.
390 2014-07-25 Tobias Burnus <burnus@net-b.de>
392 * simplify.c (gfc_simplify_storage_size): Use proper
393 integer kind for the returned value.
395 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
397 * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
398 correct menu position to match sectioning.
400 2014-06-15 Tobias Burnus <burnus@net-b.de>
402 * symbol.c (check_conflict): Add codimension conflict with
403 pointer; fix cray-pointee check.
405 2014-06-14 Tobias Burnus <burnus@net-b.de>
407 * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
408 for kind mismatch with -fcoarray=lib.
410 2014-07-12 Paul Thomas <pault@gcc.gnu.org>
413 * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
414 that elements are skipped. This then correctly aligns 'reverse'
415 with the scalarizer loops.
417 2014-07-12 Tobias Burnus <burnus@net-b.de>
420 * trans-types.c (gfc_init_types): Fix data-type bug
421 with gfc_max_array_element_size.
423 2014-07-12 Tobias Burnus <burnus@net-b.de>
425 * libgfortran.h (libcaf_atomic_codes): Add.
426 * trans-decl.c (gfor_fndecl_caf_atomic_def,
427 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
428 gfor_fndecl_caf_atomic_op): New variables.
429 (gfc_build_builtin_function_decls): Initialize them.
430 * trans.h (gfor_fndecl_caf_atomic_def,
431 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
432 gfor_fndecl_caf_atomic_op): New variables.
433 * trans-intrinsic.c (conv_intrinsic_atomic_op,
434 conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
435 Add library calls with -fcoarray=lib.
437 2014-07-12 Tobias Burnus <burnus@net-b.de>
439 * check.c (gfc_check_atomic): Update for STAT=.
440 (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
441 (gfc_check_atomic_op, gfc_check_atomic_cas,
442 gfc_check_atomic_fetch_op): New.
443 * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
444 GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
445 GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
446 GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
447 * intrinsic.c (add_subroutines): Handle them.
448 * intrinsic.texi: Add documentation for them.
449 (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
450 (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
451 * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
452 gfc_check_atomic_fetch_op): New
454 * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
455 * iso-fortran-env.def: Add it.
456 * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
457 conv_intrinsic_atomic_ref; handle more atomics.
458 (conv_intrinsic_atomic_def): Handle STAT=.
459 (conv_intrinsic_atomic_cas): New.
460 (gfc_conv_intrinsic_subroutine): Handle new atomics.
462 2014-07-09 Bernd Schmidt <bernds@codesourcery.com>
464 * trans-array.c (gfc_build_constant_array_constructor): Build a
465 static decl manually.
466 * trans-decl.c (create_main_function): Likewise.
468 2014-07-07 Paul Thomas <pault@gcc.gnu.org>
472 * trans-expr.c (fcncall_realloc_result): Use the natural type
473 for the address expression of 'res_desc'.
475 2014-07-07 Gerald Pfeifer <gerald@pfeifer.com>
477 * gfortran.texi (Fortran 2003 status): Fix grammar.
479 2014-07-04 Tobias Burnus <burnus@net-b.de>
481 * resolve.c (resolve_assoc_var): Fix corank setting.
482 * trans-array.c (gfc_conv_descriptor_token): Change assert.
483 for select-type temporaries.
484 * trans-decl.c (generate_coarray_sym_init): Skip for
485 attr.select_type_temporary.
486 * trans-expr.c (gfc_conv_procedure_call): Fix for
487 select-type temporaries.
488 * trans-intrinsic.c (get_caf_token_offset): Ditto.
489 (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
491 * trans-types.h (gfc_get_dtype_rank_type): New.
492 * trans-types.c (gfc_get_dtype_rank_type): Ditto.
494 2014-07-03 Tobias Burnus <burnus@net-b.de>
496 * scanner.c (skip_free_comments): Fix indentation.
498 2014-07-02 Jakub Jelinek <jakub@redhat.com>
499 Fritz Reese <Reese-Fritz@zai.com>
501 * decl.c (variable_decl): Reject old style initialization
502 for derived type components.
504 2014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
508 * decl.c (check_bind_name_identifier): New function.
509 (gfc_match_bind_c): Match any constant expression as binding
511 * match.c (gfc_match_name_C): Remove.
513 2014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
516 * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
517 * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
519 * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
520 * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
521 * module.c (mio_symbol): Keep track of symbols which came from
523 (gfc_use_module): Keep track of the IEEE modules.
524 * trans-decl.c (gfc_get_symbol_decl): Adjust code since
525 we have new intrinsic modules.
526 (gfc_build_builtin_function_decls): Build decls for
527 ieee_procedure_entry and ieee_procedure_exit.
528 (is_from_ieee_module, is_ieee_module_used, save_fp_state,
529 restore_fp_state): New functions.
530 (gfc_generate_function_code): Save and restore floating-point
531 state on procedure entry/exit, when IEEE modules are used.
532 * intrinsic.texi: Document the IEEE modules.
534 2014-06-25 Tobias Burnus <burnus@net-b.de>
536 * interface.c (check_intents): Fix diagnostic with
539 2014-06-25 Tobias Burnus <burnus@net-b.de>
541 * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
542 when assigning a coindexed RHS scalar to a noncoindexed LHS
544 * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
545 for a noncoindexed scalar RHS.
547 2014-06-25 Tobias Burnus <burnus@net-b.de>
549 * check.c (check_co_minmaxsum): Add definable check.
550 * expr.c (gfc_check_vardef_context): Fix context == NULL case.
551 * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
553 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
556 2014-06-25 Jakub Jelinek <jakub@redhat.com>
558 * trans.h (gfc_omp_clause_linear_ctor): New prototype.
559 * trans-openmp.c (gfc_omp_linear_clause_add_loop,
560 gfc_omp_clause_linear_ctor): New functions.
561 (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
562 correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
563 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
565 2014-06-24 Jakub Jelinek <jakub@redhat.com>
567 * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
569 * f95-lang.c (gfc_init_builtin_functions): Initialize
570 BUILT_IN_ASSUME_ALIGNED.
571 * gfortran.h (gfc_omp_namelist): Change udr field type to
572 struct gfc_omp_namelist_udr.
573 (gfc_omp_namelist_udr): New type.
574 (gfc_get_omp_namelist_udr): Define.
575 (gfc_resolve_code): New prototype.
576 * match.c (gfc_free_omp_namelist): Free name->udr.
577 * module.c (intrinsics): Add INTRINSIC_USER.
578 (fix_mio_expr): Likewise.
579 (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
580 * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
581 (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
582 Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
583 (struct resolve_omp_udr_callback_data): New type.
584 (resolve_omp_udr_callback, resolve_omp_udr_callback2,
585 resolve_omp_udr_clause): New functions.
586 (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
588 (omp_udr_callback): Don't check for implicitly declared functions
590 (gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
591 implicitly declared subroutines here.
592 * resolve.c (resolve_function): If value.function.isym is non-NULL,
593 consider it already resolved.
594 (resolve_code): Renamed to ...
595 (gfc_resolve_code): ... this. No longer static.
596 (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
598 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
599 by reference type (C_PTR) variables.
600 (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
601 (gfc_trans_omp_udr_expr): Remove.
602 (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
603 Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
604 expand it as assignment or subroutine call. Don't initialize
607 2014-06-23 Tobias Burnus <burnus@net-b.de>
609 * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
610 explicit-size arrays with -fcoarray=lib.
612 2014-06-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
615 * invoke.texi: Don't mention nonexisting -fcase-lower option.
617 2014-06-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
620 * expr.c (scalarize_intrinsic_call): Take care of optional
623 2014-06-19 Tobias Burnus <burnus@net-b.de>
625 * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
628 2014-06-18 Tobias Burnus <burnus@net-b.de>
630 * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
631 * intrinsic.texi (OpenMP Modules): Ditto.
633 2014-06-18 Jakub Jelinek <jakub@redhat.com>
635 * cpp.c (cpp_define_builtins): Change _OPENMP macro to
637 * dump-parse-tree.c (show_omp_namelist): Add list_type
638 argument. Adjust for rop being u.reduction_op now,
639 handle depend_op or map_op.
640 (show_omp_node): Adjust callers. Print some new
641 OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
642 becoming a single OMP_LIST_DEPEND.
643 * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
645 (gfc_attribute_table): New variable.
646 (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
647 * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
648 EXEC_OMP_* codes and new clauses.
649 * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
650 ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
651 ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
652 ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
653 ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
654 ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
655 ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
656 ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
657 ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
658 ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
659 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
660 ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
661 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
662 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
663 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
664 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
665 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
666 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
667 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
668 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
669 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
670 (symbol_attribute): Add omp_declare_target field.
671 (gfc_omp_depend_op, gfc_omp_map_op): New enums.
672 (gfc_omp_namelist): Replace rop field with union
673 containing reduction_op, depend_op and map_op.
674 (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
675 (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
676 (gfc_omp_clauses): Add num_teams, device, thread_limit,
677 dist_sched_kind, dist_chunk_size fields.
678 (gfc_common_head): Add omp_declare_target field.
679 (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
680 EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
681 EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
682 EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
683 EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
684 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
685 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
686 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
687 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
688 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
689 EXEC_OMP_TARGET_UPDATE.
690 (gfc_add_omp_declare_target): New prototype.
691 * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
692 gfc_match_omp_distribute_parallel_do,
693 gfc_match_omp_distribute_parallel_do_simd,
694 gfc_match_omp_distribute_simd, gfc_match_omp_target,
695 gfc_match_omp_target_data, gfc_match_omp_target_teams,
696 gfc_match_omp_target_teams_distribute,
697 gfc_match_omp_target_teams_distribute_parallel_do,
698 gfc_match_omp_target_teams_distribute_parallel_do_simd,
699 gfc_match_omp_target_teams_distribute_simd,
700 gfc_match_omp_target_update, gfc_match_omp_teams,
701 gfc_match_omp_teams_distribute,
702 gfc_match_omp_teams_distribute_parallel_do,
703 gfc_match_omp_teams_distribute_parallel_do_simd,
704 gfc_match_omp_teams_distribute_simd): New prototypes.
705 * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
706 (attr_bits): Likewise.
707 (mio_symbol_attribute): Handle omp_declare_target attribute.
708 (gfc_free_omp_clauses): Free num_teams, device, thread_limit
709 and dist_chunk_size expressions.
710 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
711 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
712 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
713 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
714 OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
715 OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
716 OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
717 OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
718 OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
719 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
720 OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
721 OMP_CLAUSE_DIST_SCHEDULE): Define.
722 (gfc_match_omp_clauses): Change mask parameter to unsigned int.
723 Adjust for rop becoming u.reduction_op. Disallow inbranch with
724 notinbranch. For depend clause, always create OMP_LIST_DEPEND
725 and fill in u.depend_op. Handle num_teams, device, map,
726 to, from, thread_limit and dist_schedule clauses.
727 (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
728 OMP_CLAUSE_NOTINBRANCH.
729 (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
730 OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
731 OMP_DISTRIBUTE_CLAUSES): Define.
732 (match_omp): New function.
733 (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
734 gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
735 gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
736 gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
737 gfc_match_omp_task): Rewritten using match_omp.
738 (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
739 Diagnose if the directives are followed by unexpected junk.
740 (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
741 gfc_match_omp_distribute_parallel_do_simd,
742 gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
743 gfc_match_omp_target, gfc_match_omp_target_data,
744 gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
745 gfc_match_omp_target_teams_distribute_parallel_do,
746 gfc_match_omp_target_teams_distribute_parallel_do_simd,
747 gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
748 gfc_match_omp_teams, gfc_match_omp_teams_distribute,
749 gfc_match_omp_teams_distribute_parallel_do,
750 gfc_match_omp_teams_distribute_parallel_do_simd,
751 gfc_match_omp_teams_distrbute_simd): New functions.
752 * openmp.c (resolve_omp_clauses): Adjust for
753 OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
754 OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
755 dist_chunk_size and thread_limit.
756 (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
757 ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
758 new EXEC_OMP_* codes.
759 (resolve_omp_do): Handle various new EXEC_OMP_* codes.
760 (gfc_resolve_omp_directive): Likewise.
761 (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
762 * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
763 offloading related directives.
764 (case_executable): Add ST_OMP_TARGET_UPDATE.
765 (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
767 (case_decl): Add ST_OMP_DECLARE_TARGET.
768 (gfc_ascii_statement): Handle new ST_OMP_* codes.
769 (parse_omp_do): Handle various new ST_OMP_* codes.
770 (parse_executable): Likewise.
771 * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
773 (resolve_code): Likewise.
774 (resolve_symbol): Change that !$OMP DECLARE TARGET variables
776 * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
777 * symbol.c (check_conflict): Check omp_declare_target conflicts.
778 (gfc_add_omp_declare_target): New function.
779 (gfc_copy_attr): Copy omp_declare_target.
780 * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
781 * trans-common.c (build_common_decl): Add "omp declare target"
783 * trans-decl.c (add_attributes_to_decl): Likewise.
784 * trans.h (gfc_omp_finish_clause): New prototype.
785 * trans-openmp.c (gfc_omp_finish_clause): New function.
786 (gfc_trans_omp_reduction_list): Adjust for rop being renamed
788 (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
789 change to OMP_LIST_DEPEND and fix up depend handling.
790 Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
791 thread_limit, device, dist_chunk_size and dist_sched_kind.
792 (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
793 (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
794 GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
795 GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
796 (gfc_split_omp_clauses): Handle splitting of clauses for new
798 (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
799 callable for combined constructs.
800 (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
801 (gfc_trans_omp_distribute, gfc_trans_omp_teams,
802 gfc_trans_omp_target, gfc_trans_omp_target_data,
803 gfc_trans_omp_target_update): New functions.
804 (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
805 new EXEC_OMP_* codes.
807 2014-06-18 Tobias Burnus <burnus@net-b.de>
810 * invoke.texi (-Wunused-parameter): Make clearer when
811 -Wextra implies this option.
813 2014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
816 * options.c (gfc_handle_option): Remove call to
817 handle_generated_option.
819 2014-06-17 Tobias Burnus <burnus@net-b.de>
821 * check.c (gfc_check_atomic, gfc_check_atomic_def):
822 Use argument for GFC_ISYM_CAF_GET.
823 * resolve.c (resolve_variable): Enable CAF_GET insertion.
824 (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
825 (resolve_ordinary_assign): Enable CAF_SEND insertion.
826 * trans-const.c (gfc_build_string_const,
827 gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
828 * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
829 gfor_fndecl_caf_sendget): New global variables.
830 (gfc_build_builtin_function_decls): Initialize them;
831 update co_min/max/sum initialization.
832 * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
833 get_tree_for_caf_expr and removed static.
834 (gfc_conv_procedure_call): Update call.
835 * trans-intrinsic.c (caf_get_image_index,
836 conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
837 get_caf_token_offset, gfc_conv_intrinsic_caf_get,
839 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
840 gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
841 (conv_co_minmaxsum): Update call for remove unused vector
843 (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
844 Skip a CAF_GET of the argument.
845 * trans-types.c (gfc_get_caf_vector_type): New.
846 * trans-types.h (gfc_get_caf_vector_type): New.
847 * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
848 gfor_fndecl_caf_sendget): New global variables.
849 (gfc_get_tree_for_caf_expr): New prototypes.
851 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
853 * trans-common.c (build_common_decl): Use
855 * trans-decl.c (gfc_finish_var_decl): Likewise.
856 (get_proc_pointer_decl): Likewise.
858 2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
862 * check.c (gfc_check_system_clock): Improve checking of arguments.
863 * intrinsic.texi: Update doc of SYSTEM_CLOCK.
864 * iresolve.c (gfc_resolve_system_clock): Choose library function
865 used depending on argument kinds.
866 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
867 decls for system_clock_4 and system_clock_8.
868 * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
869 (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
870 * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
873 2014-06-12 Tobias Burnus <burnus@net-b.de>
875 * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
876 * symbol.c (gfc_copy_formal_args_intr): Handle the case
877 that absent optional arguments should be ignored.
878 * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
879 (gfc_conv_intrinsic_funcall,
880 conv_generic_with_optional_char_arg): Update call.
881 * resolve.c (gfc_resolve_intrinsic): Ditto.
883 2014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr>
884 Mikael Morin <mikael@gcc.gnu.org>
887 * trans-expr.c (gfc_conv_expr_reference): Deallocate array
890 2014-06-10 Jakub Jelinek <jakub@redhat.com>
893 * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
895 * openmp.c (resolve_omp_clauses): Remove allocatable components
896 diagnostics. Add associate-name and intent(in) pointer
897 diagnostics for various clauses, diagnose procedure pointers in
899 * parse.c (match_word_omp_simd): New function.
900 (matchs, matcho): New macros.
901 (decode_omp_directive): Change match macros to either matchs
902 or matcho. Handle -fopenmp-simd.
903 (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
904 * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
906 * trans-array.c (get_full_array_size): Rename to...
907 (gfc_full_array_size): ... this. No longer static.
908 (duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
910 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
911 duplicate_allocatable callers.
912 (gfc_duplicate_allocatable_nocopy): New function.
913 (structure_alloc_comps): Adjust g*_full_array_size and
914 duplicate_allocatable caller.
915 * trans-array.h (gfc_full_array_size,
916 gfc_duplicate_allocatable_nocopy): New prototypes.
917 * trans-common.c (create_common): Call gfc_finish_decl_attrs.
918 * trans-decl.c (gfc_finish_decl_attrs): New function.
919 (gfc_finish_var_decl, create_function_arglist,
920 gfc_get_fake_result_decl): Call it.
921 (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
922 don't allocate it again.
923 (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
925 * trans.h (gfc_finish_decl_attrs): New prototype.
926 (struct lang_decl): Add scalar_allocatable and scalar_pointer
928 (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
929 GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
930 GFC_DECL_ASSOCIATE_VAR_P): Define.
931 (GFC_POINTER_TYPE_P): Remove.
932 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
933 GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
934 GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
935 (gfc_omp_predetermined_sharing): Associate-names are predetermined.
936 (enum walk_alloc_comps): New.
937 (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
938 gfc_walk_alloc_comps): New functions.
939 (gfc_omp_private_outer_ref): Return true for scalar allocatables or
940 decls with allocatable components.
941 (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
942 gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
943 allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
944 allocatables and decls with allocatable components.
945 (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
947 (gfc_trans_omp_reduction_list): Call
948 gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
949 (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
950 (gfc_trans_omp_parallel_do_simd): Likewise.
951 * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
952 (gfc_get_derived_type): Call gfc_finish_decl_attrs.
954 2014-06-09 Paul Thomas <pault@gcc.gnu.org>
957 * trans-stmt.c (trans_associate_var): Check that array
958 constructors are constant for direct reference.
960 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
963 * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
964 BESSEL_Y0, and BESSEL_Y1.
966 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
969 * trans-decl.c (gfc_create_module_variable): Don't create
970 Cray-pointee decls twice.
972 2014-06-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
974 * io.c (resolve_tag): Warn on non-default kind for NUMBER,
975 NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
977 2014-06-06 Jakub Jelinek <jakub@redhat.com>
979 * dump-parse-tree.c (show_omp_namelist): Dump reduction
980 id in each list item.
981 (show_omp_node): Only handle OMP_LIST_REDUCTION, not
982 OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
983 dump reduction id here.
984 * frontend-passes.c (dummy_code_callback): Renamed to...
985 (gfc_dummy_code_callback): ... this. No longer static.
986 (optimize_reduction): Use gfc_dummy_code_callback instead of
988 * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
989 (symbol_attribute): Add omp_udr_artificial_var bitfield.
990 (gfc_omp_reduction_op): New enum.
991 (gfc_omp_namelist): Add rop and udr fields.
992 (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
993 OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
994 OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
995 OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
996 (OMP_LIST_REDUCTION): New.
997 (gfc_omp_udr): New type.
998 (gfc_get_omp_udr): Define.
999 (gfc_symtree): Add n.omp_udr field.
1000 (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
1001 (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
1002 gfc_dummy_code_callback): New prototypes.
1003 * match.h (gfc_match_omp_declare_reduction): New prototype.
1004 * module.c (MOD_VERSION): Increase to 13.
1005 (omp_declare_reduction_stmt): New array.
1006 (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
1008 (read_module): Read OpenMP user defined reductions.
1009 (write_module): Write OpenMP user defined reductions.
1010 * openmp.c: Include arith.h.
1011 (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
1012 (gfc_match_omp_clauses): Handle user defined reductions.
1013 Store reduction kind into gfc_omp_namelist instead of using
1014 several OMP_LIST_* entries.
1015 (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
1016 gfc_match_omp_declare_reduction): New functions.
1017 (resolve_omp_clauses): Adjust for reduction clauses being only
1018 in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
1019 (struct omp_udr_callback_data): New type.
1020 (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
1022 * parse.c (decode_omp_directive): Handle !$omp declare reduction.
1023 (case_decl): Add ST_OMP_DECLARE_REDUCTION.
1024 (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
1025 * resolve.c (resolve_fl_variable): Allow len=: or len=* on
1026 sym->attr.omp_udr_artificial_var symbols.
1027 (resolve_types): Call gfc_resolve_omp_udrs.
1028 * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
1029 use parent ns instead of gfc_current_ns.
1030 (gfc_get_sym_tree): Don't insert symbols into
1031 namespaces with omp_udr_ns set.
1032 (free_omp_udr_tree): New function.
1033 (gfc_free_namespace): Call it.
1034 * trans-openmp.c (struct omp_udr_find_orig_data): New type.
1035 (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
1036 (gfc_trans_omp_array_reduction): Renamed to...
1037 (gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
1038 argument, instead pass gfc_omp_namelist pointer N. Handle
1039 user defined reductions.
1040 (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
1041 Handle user defined reductions and reduction ops in gfc_omp_namelist.
1042 (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
1044 (gfc_split_omp_clauses): Likewise.
1046 2014-06-05 Richard Biener <rguenther@suse.de>
1049 * gfortranspec.c (spec_file): Remove.
1050 (find_spec_file): Likewise.
1051 (lang_specific_driver): Do not look for specs file in -L
1052 or append -specs command line argument.
1053 (lang_specific_pre_link): Always %:include libgfortran.spec.
1055 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
1057 * fortran/trans.c (trans_runtime_error_vararg): Call
1058 fold_build_call_array_loc instead of fold_builtin_call_array.
1060 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
1062 * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
1063 arguments to caf_init.
1065 2014-05-26 Tobias Burnus <burnus@net-b.de>
1067 * gfortran.texi (Project Status): Fix broken link.
1069 2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
1072 * intrinsics.texi (CTIME): Remove mention of locale-dependent
1075 2014-05-26 Tobias Burnus <burnus@net-b.de>
1078 * trans-io.c (nml_full_name, transfer_namelist_element): Insert
1079 a '+' rather then '%' to differentiate namelist variable names
1080 that are based on extended derived types.
1082 2014-05-25 Tobias Burnus <burnus@net-b.de>
1084 * check.c (gfc_check_num_images): New.
1085 (gfc_check_this_image): Handle distance argument.
1086 * intrinsic.c (add_functions): Update this_image and num_images
1087 for new distance and failed arguments.
1088 * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
1090 * intrinsic.h (gfc_check_num_images): New.
1091 (gfc_check_this_image, gfc_simplify_num_images,
1092 gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
1093 * iresolve.c (gfc_resolve_this_image): Handle distance argument.
1094 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1095 Handle new arguments.
1096 * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
1097 (gfc_conv_intrinsic_function): Update trans_num_images call.
1099 2014-05-23 Tobias Burnus <burnus@net-b.de>
1101 * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
1102 * gfortran.texi: Ditto.
1104 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
1106 * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
1107 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
1108 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
1109 * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
1111 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
1113 * f95-lang.c (pushlevel): Adjust.
1114 * trans-decl.c (gfc_allocate_lang_decl): Adjust.
1115 (gfc_find_module): Likewise.
1116 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1117 (gfc_get_array_type_bounds): Likewise.
1118 (gfc_nonrestricted_type): Likewise.
1119 * trans.h: Don't use variable_size gty attribute.
1121 2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr>
1123 * check.c (gfc_check_fn_rc2008): move "argument" to the right
1126 2014-05-12 Tobias Burnus <burnus@net-b.de>
1129 * openmp.c (resolve_omp_do): Reject do concurrent loops.
1131 2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1134 * frontend-passes.c (in_assoc_list): New variable.
1135 (optimize_namespace): Initialize in_assoc_list
1136 (combine_array_constructor): Don't try to combine
1138 (gfc_code_walker): Keep track of in_assoc_list.
1140 2014-05-11 Jakub Jelinek <jakub@redhat.com>
1142 * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
1143 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1144 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1145 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1146 ST_OMP_DECLARE_SIMD.
1147 (gfc_omp_namelist): New typedef.
1148 (gfc_get_omp_namelist): Define.
1149 (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
1150 OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
1151 (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
1152 (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
1153 Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
1154 simdlen_expr fields.
1155 (gfc_omp_declare_simd): New typedef.
1156 (gfc_get_omp_declare_simd): Define.
1157 (gfc_namespace): Add omp_declare_simd field.
1158 (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1159 EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
1160 EXEC_OMP_PARALLEL_DO_SIMD.
1161 (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
1162 and GFC_OMP_ATOMIC_SWAP.
1163 (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
1164 (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
1165 gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
1167 * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
1168 * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
1169 * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
1170 simdlen_expr. Use gfc_free_omp_namelist instead of
1172 (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
1174 (gfc_match_omp_variable_list): Add end_colon, headp and
1175 allow_sections arguments. Handle parsing of array sections.
1176 Use *omp_namelist* instead of *namelist* data structure and
1177 functions/macros. Allow termination at : character.
1178 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
1179 OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
1180 OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
1181 (gfc_match_omp_clauses): Change first and needs_space variables
1182 into arguments with default values. Parse inbranch, notinbranch,
1183 proc_bind, safelen, simdlen, uniform, linear, aligned and
1185 (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
1186 (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
1187 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
1188 (gfc_match_omp_do_simd): New function.
1189 (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
1190 data structure and functions/macros.
1191 (gfc_match_omp_simd, gfc_match_omp_declare_simd,
1192 gfc_match_omp_parallel_do_simd): New functions.
1193 (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
1194 (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
1195 gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
1197 (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
1198 Use *omp_namelist* instead of *namelist* data structure and
1199 functions/macros. Resolve uniform, aligned, linear, depend,
1200 safelen and simdlen clauses.
1201 (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
1202 addition, recognize atomic swap.
1203 (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
1204 of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
1205 EXEC_OMP_PARALLEL_DO.
1206 (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
1207 data structure and functions/macros.
1208 (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1209 EXEC_OMP_PARALLEL_DO_SIMD.
1210 (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1211 EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
1212 resolve_omp_clauses caller.
1213 (gfc_resolve_omp_declare_simd): New function.
1214 * parse.c (decode_omp_directive): Parse cancellation point, cancel,
1215 declare simd, end do simd, end simd, end parallel do simd,
1216 end taskgroup, parallel do simd, simd and taskgroup directives.
1217 (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
1218 (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
1219 ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
1220 (case_decl): Add ST_OMP_DECLARE_SIMD.
1221 (gfc_ascii_statement): Handle ST_OMP_CANCEL,
1222 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1223 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1224 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1225 ST_OMP_DECLARE_SIMD.
1226 (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
1227 ST_OMP_PARALLEL_DO_SIMD.
1228 (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
1229 (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
1230 ST_OMP_PARALLEL_DO_SIMD.
1231 (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
1232 ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
1233 * trans-decl.c (gfc_get_extern_function_decl,
1234 gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
1236 * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
1237 EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
1238 safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
1239 of depend, aligned and linear clauses.
1240 * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
1241 and EXEC_OMP_PARALLEL_DO_SIMD.
1242 (gfc_free_omp_namelist): New function.
1243 * dump-parse-tree.c (show_namelist): Removed.
1244 (show_omp_namelist): New function.
1245 (show_omp_node): Handle OpenMP 4.0 additions.
1246 (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1247 EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
1249 * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
1250 gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
1251 gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
1252 gfc_match_omp_taskgroup): New prototypes.
1253 * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
1254 argument, handle it. Allow current_function_decl to be NULL.
1255 (gfc_trans_omp_variable_list): Add declare_simd argument, pass
1256 it through to gfc_trans_omp_variable and disregard whether
1257 sym is referenced if declare_simd is true. Work on gfc_omp_namelist
1258 instead of gfc_namelist.
1259 (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
1260 gfc_namelist. Adjust gfc_trans_omp_variable caller.
1261 (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
1262 to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
1263 instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
1264 simdlen, depend, uniform, linear, proc_bind and aligned clauses.
1266 (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
1267 adjust for GFC_OMP_ATOMIC_* changes.
1268 (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
1270 (gfc_trans_omp_do): Add op argument, handle simd translation into
1272 (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
1273 GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
1274 GFC_OMP_MASK_PARALLEL): New.
1275 (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
1276 (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
1277 (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
1279 (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
1280 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1281 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1282 Adjust gfc_trans_omp_do caller.
1283 (gfc_trans_omp_declare_simd): New function.
1284 * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
1285 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1286 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1287 For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
1289 * module.c (omp_declare_simd_clauses): New variable.
1290 (mio_omp_declare_simd): New function.
1291 (mio_symbol): Call it.
1292 * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
1293 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1294 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1295 * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
1296 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1297 (resolve_code): Handle EXEC_OMP_CANCEL,
1298 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1299 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1300 (resolve_types): Call gfc_resolve_omp_declare_simd.
1302 2014-05-11 Tobias Burnus <burnus@net-b.de>
1304 * trans-intrinsic.c (gfc_build_builtin_function_decls):
1305 Change type of second argument to int.
1307 2014-05-09 Mike Stump <mikestump@comcast.net>
1310 * trans-array.c (gfc_conv_array_initializer): Fix wide-int
1313 2014-05-08 Tobias Burnus <burnus@net-b.de>
1315 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
1316 and GFC_ISYM_CAF_SEND.
1317 * intrinsic.c (add_functions): Add only internally
1318 accessible caf_get and caf_send functions.
1319 * resolve.c (add_caf_get_intrinsic,
1320 remove_caf_get_intrinsic): New functions.
1321 (resolve_variable): Resolve expression rank and
1322 prepare for add_caf_get_intrinsic call.
1323 (gfc_resolve_expr): For variables, remove rank
1325 (resolve_ordinary_assign): Prepare call to
1327 (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
1328 the LHS of an assignment.
1330 2014-05-08 Tobias Burnus <burnus@net-b.de>
1332 * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
1334 2014-05-08 Tobias Burnus <burnus@net-b.de>
1336 * check.c (check_co_minmaxsum, gfc_check_co_minmax,
1337 gfc_check_co_sum): New.
1338 * error.c (gfc_notify_std): Update -std=f2008ts.
1339 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
1340 GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
1341 * intrinsic.h (gfc_check_co_minmax,
1342 gfc_check_co_sum): Declare.
1343 * intrinsic.c (add_subroutines): Add co_min, co_max
1345 (gfc_check_intrinsic_standard): Update text for
1347 * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
1349 * invoke.texi (-std=f2008ts): Update wording.
1350 * trans.h (gfor_fndecl_co_max,
1351 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1352 * trans-decl.c (gfor_fndecl_co_max,
1353 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1354 (gfc_build_builtin_function_decls): Assign to it.
1355 * trans-intrinsic.c (conv_co_minmaxsum): New.
1356 (gfc_conv_intrinsic_subroutine): Call it.
1358 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1359 Mike Stump <mikestump@comcast.net>
1360 Richard Sandiford <rdsandiford@googlemail.com>
1362 * target-memory.c: Include wide-int.h.
1363 (gfc_interpret_logical): Use wide-int interfaces.
1364 * trans-array.c: Include wide-int.h.
1365 (gfc_conv_array_initializer): Use wide-int interfaces.
1366 * trans-const.c: Include wide-int.h.
1367 (gfc_conv_string_init): Use wide-int interfaces.
1368 (gfc_conv_mpz_to_tree): Likewise.
1369 (gfc_conv_tree_to_mpz): Likewise.
1370 * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
1371 * trans-expr.c: Include wide-int.h.
1372 (gfc_conv_cst_int_power): Use wide-int interfaces.
1373 (gfc_string_to_single_character): Likewise.
1374 (gfc_optimize_len_trim): Likewise.
1375 * trans-intrinsic.c: Include wide-int.h.
1376 (trans_this_image): Use wide-int interfaces.
1377 (gfc_conv_intrinsic_bound): Likewise.
1378 (conv_intrinsic_cobound): Likewise.
1379 * trans-types.c (gfc_init_types): Likewise.
1380 (gfc_get_array_type_bounds): Pass an integer of the correct type
1381 instead of using integer_one_node.
1383 2014-04-30 Tobias Burnus <burnus@net-b.de>
1385 * trans-decl.c (create_function_arglist): Add hidden coarray arguments
1386 also for polymorphic coarrays.
1387 * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
1388 also for polymorphic coarrays.
1390 2014-04-30 Tobias Burnus <burnus@net-b.de>
1392 * resolve.c (resolve_function): Don't do
1393 assumed-size check for lcobound/ucobound.
1394 * trans-types.c (gfc_build_array_type): Only build an array
1395 descriptor with codimensions for allocatable coarrays.
1397 2014-04-30 Tobias Burnus <burnus@net-b.de>
1399 * gfortran.h (gfc_init_coarray_decl): Remove.
1400 * parse.c (translate_all_program_units): Remove call to it.
1401 (gfc_parse_file): Update call.
1402 * trans.h (gfor_fndecl_caf_this_image,
1403 gfor_fndecl_caf_num_images): Add.
1404 (gfort_gvar_caf_num_images,
1405 gfort_gvar_caf_this_image): Remove.
1406 * trans-decl.c (gfor_fndecl_caf_this_image,
1407 gfor_fndecl_caf_num_images): Add.
1408 (gfort_gvar_caf_num_images,
1409 gfort_gvar_caf_this_image): Remove.
1410 (gfc_build_builtin_function_decls): Init new decl.
1411 (gfc_init_coarray_dec): Remove.
1412 (create_main_function): Change calls.
1413 * trans-intrinsic.c (trans_this_image, trans_image_index,
1414 conv_intrinsic_cobound): Generate call to new library function
1415 instead of to a static variable.
1416 * trans-stmt.c (gfc_trans_sync): Ditto.
1418 2014-04-30 Tobias Burnus <burnus@net-b.de>
1420 * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
1421 and derived-type coarrays.
1423 2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1427 * gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
1428 * arith.c (gfc_int2int): Convert number to signed if
1429 arithmetic overflow is not checked.
1430 * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
1431 size if range checking is in force.
1432 (convert_mpz_to_signed): Make non-static, rename to
1433 (gfc_convert_mpz_to_signed).
1434 (simplify_dshift): Use gfc_convert_mpz_to_signed.
1435 (gfc_simplify_ibclr): Likewise.
1436 (gfc_simplify_ibits): Likewise.
1437 (gfc_simplify_ibset): Likewise.
1438 (simplify_shift): Likewise.
1439 (gfc_simplify_ishiftc): Likewise.
1440 (gfc_simplify_maskr): Likewise.
1441 (gfc_simplify_maskl): Likewise.
1443 2014-04-22 Tobias Burnus <burnus@net-b.de>
1446 * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1449 2014-04-17 Jakub Jelinek <jakub@redhat.com>
1451 * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
1452 argument is enum machine_mode.
1454 2014-04-13 Paul Thomas <pault@gcc.gnu.org>
1458 * trans.h: Add 'use_offset' bitfield to gfc_se.
1459 * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
1460 as a trigger to unconditionally recalculate the offset for
1461 array slices and constant arrays.
1462 trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
1463 trans-stmt.c (trans_associate_var): Ditto.
1464 (gfc_conv_procedure_call): Ditto.
1466 2014-04-11 Tobias Burnus <burnus@net-b.de>
1470 * resolve.c (gfc_resolve_finalizers): Ensure that vtables
1471 and finalization wrappers are generated.
1473 2014-04-11 Janne Blomqvist <jb@gcc.gnu.org>
1475 * intrinsic.texi (RANDOM_SEED): Improve example.
1477 2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1479 * class.c (gfc_build_class_symbol): Append "_t" to target class
1480 names to make the generated type names unique.
1482 2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1485 * trans-types.c (gfc_get_function_type): In case of recursion
1486 build a variadic function type with empty argument list instead of a
1487 stdarg-like function type with incomplete argument list.
1489 2014-04-04 Tobias Burnus <burnus@net-b.de>
1491 * check.c (gfc_check_cmplx): Fix typo.
1493 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1494 Tobias Burnus <burnus@net-b.de>
1497 * trans-expr.c (gfc_conv_derived_to_class): Avoid
1498 generation of out-of-bounds range expr.
1500 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1503 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1506 2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1509 * frontend-passes.c (cfe_code): Do not walk subtrees
1512 2014-03-27 Tobias Burnus <burnus@net-b.de>
1515 * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1518 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
1521 * fortran.texi: Document Volatile COMMON as not supported.
1523 2014-03-22 Jakub Jelinek <jakub@redhat.com>
1526 * cpp.c (gfc_cpp_init): Restore cb_change_file call to
1529 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1532 * gfortran.texi: Add description of namelist DELIM= behavior.
1534 2014-03-19 Tobias Burnus <burnus@net-b.>
1537 * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
1538 * resolve.c (resolve_ordinary_assign): Ditto.
1540 2014-03-19 Tobias Burnus <burnus@net-b.de>
1544 * gfortran.h (gfc_unset_implicit_pure): New prototype.
1545 * resolve.c (gfc_unset_implicit_pure): New.
1546 (resolve_structure_cons, resolve_function,
1547 pure_subroutine): Use it.
1548 * decl.c (match_old_style_init, gfc_match_data,
1549 match_pointer_init, variable_decl): Ditto.
1550 * expr.c (gfc_check_pointer_assign): Ditto.
1551 * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
1552 * io.c (match_vtag, gfc_match_open, gfc_match_close,
1553 match_filepos, gfc_match_inquire, gfc_match_print,
1554 gfc_match_wait): Ditto.
1555 * match.c (gfc_match_critical, gfc_match_stopcode,
1556 lock_unlock_statement, sync_statement, gfc_match_allocate,
1557 gfc_match_deallocate): Ditto.
1558 * parse.c (decode_omp_directive): Ditto.
1559 * symbol.c (gfc_add_save): Ditto.
1561 2014-03-18 Janus Weil <janus@gcc.gnu.org>
1565 * decl.c (match_attr_spec): Revert r208590.
1567 2014-03-18 Jakub Jelinek <jakub@redhat.com>
1570 * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
1573 2014-03-18 Tobias Burnus <burnus@net-b.de>
1576 * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
1577 (gfc_trans_io_runtime_check): Remove.
1578 * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
1579 as argument, add predictor to block.
1580 (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
1581 gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
1582 * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
1583 (gfc_trans_runtime_check, gfc_allocate_using_malloc,
1584 gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
1586 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1587 * trans-stmt.c (gfc_trans_allocate): Ditto.
1588 * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
1590 2014-03-15 Janus Weil <janus@gcc.gnu.org>
1593 * decl.c (match_attr_spec): Variables in the main program implicitly
1594 get the SAVE attribute in Fortran 2008.
1596 2014-03-14 Mikael Morin <mikael@gcc.gnu.org>
1599 * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
1600 if it has transposed dimensions.
1602 2014-03-08 Tobias Burnus <burnus@net-b.de>
1605 * f95-lang.c (gfc_init): Return false when only
1607 * options.c (gfc_post_options): Ditto.
1609 2014-03-08 Tobias Burnus <burnus@net-b.de>
1611 * gfortran.texi (Fortran 2003 Status): Mention finalization,
1612 deferred-length character support and input rounding.
1613 (Fortran 2008 Status): Mention that at termination
1614 signalling exceptions are shown.
1616 2014-03-06 Paul Thomas <pault@gcc.gnu.org>
1617 Janus Weil <janus@gcc.gnu.org>
1620 * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
1621 * primary.c (build_actual_constructor): It is not an error if
1622 a missing component has the deferred_parameter attribute;
1623 equally, if one is given a value, it is an error.
1624 * resolve.c (resolve_fl_derived0): Remove error for deferred
1625 character length components. Add the hidden string length
1626 field to the structure. Give it the deferred_parameter
1628 * trans-array.c (duplicate_allocatable): Add a strlen field
1629 which is used as the element size if it is non-null.
1630 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
1631 NULL to the new argument in duplicate_allocatable.
1632 (structure_alloc_comps): Set the hidden string length as
1633 appropriate. Use it in calls to duplicate_allocatable.
1634 (gfc_alloc_allocatable_for_assignment): When a deferred length
1635 backend declaration is variable, use that; otherwise use the
1636 string length from the expression evaluation.
1637 * trans-expr.c (gfc_conv_component_ref): If this is a deferred
1638 character length component, the string length should have the
1639 value of the hidden string length field.
1640 (gfc_trans_subcomponent_assign): Set the hidden string length
1641 field for deferred character length components. Allocate the
1642 necessary memory for the string.
1643 (alloc_scalar_allocatable_for_assignment): Same change as in
1644 gfc_alloc_allocatable_for_assignment above.
1645 * trans-stmt.c (gfc_trans_allocate): Likewise.
1646 * trans-intrinsic (size_of_string_in_bytes): Make non-static.
1647 * trans-types.c (gfc_get_derived_type): Set the tree type for
1648 a deferred character length component.
1649 * trans.c (gfc_deferred_strlen): New function.
1650 * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
1652 2014-03-01 Mikael Morin <mikael@gcc.gnu.org>
1655 * frontend-passes.c (optimize_comparison): Guard two union accesses
1656 with the corresponding tag checks.
1658 2014-02-28 Janus Weil <janus@gcc.gnu.org>
1661 * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
1662 procedure for characters.
1664 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1667 * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
1670 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1673 * gfortran.h (gfc_build_class_symbol): Removed argument.
1674 * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
1675 (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
1676 delayed now, except for unlimited polymorphics.
1677 (comp_is_finalizable): Procedure pointer components are not finalizable.
1678 * decl. (build_sym, build_struct, attr_decl1): Removed argument of
1679 'gfc_build_class_symbol'.
1680 * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
1682 * symbol.c (gfc_set_default_type): Ditto.
1684 2014-02-19 Janus Weil <janus@gcc.gnu.org>
1687 * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
1688 functions, which are used as procedure pointer target.
1690 2014-02-18 Tobias Burnus <burnus@net-b.de>
1693 * expr.c (gfc_check_pointer_assign): Add check for
1695 * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
1696 decl in a corner case.
1698 2014-02-18 Janus Weil <janus@gcc.gnu.org>
1701 * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
1702 arguments to prevent ICE.
1704 2014-02-17 Janus Weil <janus@gcc.gnu.org>
1707 * resolve.c (build_default_init_expr): Don't initialize character
1708 variable if -fno-automatic is given.
1710 2014-02-15 Mikael Morin <mikael@gcc.gnu.org>
1713 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
1714 number of arguments.
1716 2014-02-11 Jakub Jelinek <jakub@redhat.com>
1719 * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
1720 on decl if sym->attr.optional.
1722 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1725 * resolve.c (resolve_assoc_var): Set the subref_array_pointer
1726 attribute for the 'associate-name' if necessary.
1727 * trans-stmt.c (trans_associate_var): If the 'associate-name'
1728 is a subref_array_pointer, assign the element size of the
1729 associate variable to 'span'.
1731 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1734 * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
1735 actual argument to a formal argument with the value attribute
1736 in an elemental procedure.
1738 2014-02-08 Janus Weil <janus@gcc.gnu.org>
1739 Mikael Morin <mikael.morin@gcc.gnu.org>
1742 * class.c (generate_finalization_wrapper): Assert that proc_tree has
1743 been set in gfc_resolve_finalizers.
1744 * resolve.c (resolve_fl_derived0): Remove unnecessary call to
1747 2014-02-07 Benno Schulenberg <bensberg@justemail.net>
1749 PR translation/52289
1750 * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
1751 in an error message.
1753 2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
1756 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
1759 2014-02-01 Paul Thomas <pault@gcc.gnu.org>
1762 * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
1763 SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
1764 pointer to the string is stored.
1765 * trans-expr.c (gfc_conv_expr_reference): Likewise, use
1766 gfc_conv_string_parameter to ensure that a pointer to is passed
1767 to the elemental function.
1769 2014-01-28 Paul Thomas <pault@gcc.gnu.org>
1772 * trans-stmt.c (gfc_trans_allocate): Before the pointer
1773 assignment to transfer the source _vptr to a class allocate
1774 expression, the final class reference should be exposed. The
1775 tail that includes the _data and array references is stored.
1776 This reduced expression is transferred to 'lhs' and the _vptr
1777 added. Then the tail is restored to the allocate expression.
1779 2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
1782 * module.c (read_module): Assert for component name correctness.
1784 2014-01-18 Mikael Morin <mikael@gcc.gnu.org>
1787 * module.c (MOD_VERSION): Bump.
1788 (fp2, find_pointer2): Remove.
1789 (mio_component_ref): Don't forcedfully set the containing derived type
1790 symbol for loading. Remove unused argument.
1791 (mio_ref): Update caller
1792 (mio_symbol): Dump component list earlier.
1793 (skip_list): New argument nest_level. Initialize level with the new
1795 (read_module): Add forced pointer components association for derived
1798 2014-01-12 Janus Weil <janus@gcc.gnu.org>
1801 * decl.c (gfc_match_data_decl): Improve error recovery.
1803 2014-01-09 Tobias Burnus <burnus@net-b.de>
1805 * cpp.c (gfc_cpp_handle_option): Add missing break.
1806 * trans-io.c (transfer_expr): Silence unused value warning.
1808 2014-01-08 Janus Weil <janus@gcc.gnu.org>
1811 * resolve.c (gfc_verify_binding_labels): Modify order of checks.
1813 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1816 * class.c (comp_is_finalizable): New function to dermine if a given
1817 component is finalizable.
1818 (finalize_component, generate_finalization_wrapper): Use it.
1820 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1824 * resolve.c (resolve_global_procedure): Don't apply to c-binding
1826 (gfc_verify_binding_labels): Remove duplicate line.
1828 2014-01-04 Janus Weil <janus@gcc.gnu.org>
1831 * class.c (add_proc_comp): Copy pure attribute.
1833 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1835 Update copyright years
1837 2014-01-02 Tobias Burnus <burnus@net-b.de>
1839 * gfortranspec.c (lang_specific_driver): Update copyright notice
1841 * gfc-internals.texi: Bump @copying's copyright year.
1842 * gfortran.texi: Ditto.
1843 * intrinsic.texi: Ditto.
1844 * invoke.texi: Ditto.
1846 2014-01-02 Janus Weil <janus@gcc.gnu.org>
1849 * resolve.c (resolve_typebound_procedures): No need to create the vtab
1852 Copyright (C) 2014 Free Software Foundation, Inc.
1854 Copying and distribution of this file, with or without modification,
1855 are permitted in any medium without royalty provided the copyright
1856 notice and this notice are preserved.