1 2014-09-12 Joseph Myers <joseph@codesourcery.com>
3 * trans-types.c (gfc_init_kinds): Check
4 targetm.libgcc_floating_mode_supported_p for floating-point
5 modes. Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
7 2014-09-05 Joost VandeVondele <vondele@gcc.gnu.org>
10 * intrinsic.texi (INT): clarify result.
12 2014-09-03 Fritz Reese <Reese-Fritz@zai.com>
15 * decl.c (variable_decl): Don't overwrite typespecs of Cray pointees
16 when matching a component declaration.
18 2014-09-02 Marek Polacek <polacek@redhat.com>
21 * interface.c (compare_parameter): Fix condition.
22 * trans-expr.c (gfc_conv_procedure_call): Likewise.
24 2014-08-31 Fritz Reese <Reese-Fritz@zai.com>
27 * resolve.c (apply_default_init_local): Don't treat variables
28 in RECURSIVE procedures as saved.
30 2014-08-31 Tobias Burnus <burnus@net-b.de>
32 * trans-decl.c (gfc_build_builtin_function_decls): Add
33 may_require_tmp dummy argument.
34 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
35 conv_caf_send): Handle may_require_tmp argument.
36 (gfc_conv_intrinsic_function): Update call.
37 * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
38 _gfortran_caf_sendget): Update interface description.
40 2014-08-30 Tobias Burnus <burnus@net-b.de>
42 * trans.h (gfc_caf_get_image_index,
43 gfc_get_caf_token_offset): New prototypes.
44 * trans-expr.c (gfc_caf_get_image_index): Moved from
45 trans-intrinsic.c and renamed.
46 (gfc_get_caf_token_offset) Ditto; support offset = NULL
48 * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
50 (gfc_conv_intrinsic_caf_get, conv_caf_send,
51 conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
52 conv_intrinsic_atomic_cas): Update callers.
54 2014-08-30 Tobias Burnus <burnus@net-b.de>
59 * dependency.c (gfc_check_dependency): Allow for optimizations
60 in the pointer-alias check.
62 2014-08-30 Janne Blomqvist <jb@gcc.gnu.org>
64 * module.c (gfc_dump_module): Use ISO C remove() instead of POSIX
67 2014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com>
70 * module.c (gfc_dump_module): Unlink old module file before
73 2014-08-26 Thomas Koenig <tkoenig@gcc.gnu.org>
75 * frontend_passes (expr_array): Replace by vec template.
78 (doloop_list): Replace by vec template.
79 (doloop_size): Remove.
80 (gfc_run_passes): Adjust to use of vec template.
81 (cfe_register_funcs): Likewise.
82 (cfe_expr_0): Likewise.
83 (doloop_code): Likewise.
85 2014-08-22 Steven Bosscher <steven@gcc.gnu.org>
88 * resolve.c (resolve_select): Fix list traversal in case the
89 last element of the CASE list was dropped as unreachable code.
91 2014-08-22 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
94 * lang.opt (Wuse-without-only): New flag.
95 * gfortran.h (gfc_option_t): Add it.
96 * invoke.texi: Document it.
97 * module.c (gfc_use_module): Warn if needed.
98 * options.c (gfc_init_options,gfc_handle_option): Init accordingly.
100 2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
103 * frontend-passes.c (optimize_binop_array_assignment):
104 Do not try to optimize the array assignment for string
107 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
110 * error.c (gfc_diagnostic_build_locus_prefix): New function.
111 (gfc_diagnostic_starter): Follow Fortran FE diagnostics.
112 (gfc_diagnostic_finalizer): Do not call default finalizer.
114 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
117 * error.c (gfc_diagnostic_finalizer): Call default finalizer.
119 2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
121 * options.c (gfc_init_options_struct): assert that the frontend sets
122 flag_errno_math and flag_associative_math.
124 2014-08-17 Tobias Burnus <burnus@net-b.de>
126 * resolve.c (gfc_resolve_finalizers): Ensure that parents are
129 2014-08-17 Tobias Burnus <burnus@net-b.de>
131 * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
133 (transfer_namelist_element): Use proper int type as argument.
135 2014-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
138 * trans-expr.c (is_runtime_conformable): Add NULL pointer checks.
140 2014-08-15 Tobias Burnus <burnus@net-b.de>
142 * resolve.c (resolve_critical): Fix name mangling.
143 * trans-stmt.c (gfc_trans_critical): Fix lock call.
145 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
148 * gfortran.h: Define GCC_DIAG_STYLE.
149 (gfc_diagnostics_init,gfc_warning_cmdline): Declare.
150 * trans-array.c: Include gfortran.h before diagnostic-core.h.
151 * trans-expr.c: Likewise.
152 * trans-openmp.c: Likewise.
153 * trans-const.c: Likewise.
155 * trans-types.c: Likewise.
156 * f95-lang.c: Likewise.
157 * trans-decl.c: Likewise.
158 * trans-io.c: Likewise.
159 * trans-intrinsic.c: Likewise.
160 * error.c: Include diagnostic.h and diagnostic-color.h.
161 (gfc_diagnostic_build_prefix): New.
162 (gfc_diagnostic_starter): New.
163 (gfc_diagnostic_finalizer): New.
164 (gfc_warning_cmdline): New.
165 (gfc_diagnostics_init): New.
166 * gfc-diagnostic.def: New.
167 * options.c (gfc_init_options): Call gfc_diagnostics_init.
168 (gfc_post_options): Use gfc_warning_cmdline.
170 2014-08-15 Jakub Jelinek <jakub@redhat.com>
171 Tobias Burnus <burnus@net-b.de>
174 * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
175 is allocatable, rather than whenever var->attr.allocatable.
177 2014-08-15 Jakub Jelinek <jakub@redhat.com>
180 * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
181 or allocatable passed by reference.
182 (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
184 2014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
187 * gfortran.h (symbol_attribute): Add fe_temp flag.
188 * frontend-passes.c (is_fe_temp): New function.
189 (create_var): Don't add a temporary for an already
190 created variable or for a constant.
191 (combine_ARRAY_constructor): Remove special handling
194 2014-08-14 Tobias Burnus <burnus@net-b.de>
196 * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
197 (_gfortran_caf_register): Update for locking/critical.
198 (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
199 * resolve.c (resolve_critical): New.
200 (gfc_resolve_code): Call it.
201 * trans-decl.c (gfor_fndecl_caf_critical,
202 gfor_fndecl_caf_end_critical): Remove.
203 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
204 (gfc_build_builtin_function_decls): Remove critical,
205 assign locking declarations.
206 (generate_coarray_sym_init): Handle locking and
208 * trans-stmt.c (gfc_trans_critical): Add calls to
209 lock/unlock libcaf functions.
210 * trans.h (gfc_coarray_type): Update locking, add
211 critical enum values.
212 (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
213 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
215 2014-08-14 Tobias Burnus <burnus@net-b.de>
217 * gfortran.texi (Coarray Programming): Add first ABI
220 2014-08-14 Jakub Jelinek <jakub@redhat.com>
223 * openmp.c (gfc_match_omp_clauses): When failed to match
224 operator name, defined op name or name, set buffer to
225 empty string. Don't call gfc_find_omp_udr if buffer is empty
227 (gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
228 before calling gfc_free_omp_udr.
230 2014-08-11 Richard Biener <rguenther@suse.de>
233 * trans-expr.c (gfc_conv_structure): Initialize _size with
234 a value of proper type.
236 2014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
239 * simplify.c (gfc_simplify_dot_product): Convert types of
240 vectors before calculating the result.
242 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
244 * openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
246 2014-07-26 Tobias Burnus <burnus@net-b.de>
251 * intrinsic.texi (SIZEOF): Document changed behavior
252 for polymorphic arrays.
254 2014-07-26 Tobias Burnus <burnus@net-b.de>
259 * check.c (gfc_check_sizeof): Permit for assumed type if and
260 only if it has an array descriptor.
261 * intrinsic.c (do_ts29113_check): Permit SIZEOF.
262 (add_functions): SIZEOF is an Inquiry function.
263 * intrinsic.texi (SIZEOF): Add note that only contiguous
264 arrays are permitted.
265 * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
267 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
268 assumed type + array descriptor, CLASS and assumed rank.
269 (gfc_conv_intrinsic_storage_size): Handle class arrays.
271 2014-07-25 Tobias Burnus <burnus@net-b.de>
273 * simplify.c (gfc_simplify_storage_size): Use proper
274 integer kind for the returned value.
276 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
278 * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
279 correct menu position to match sectioning.
281 2014-06-15 Tobias Burnus <burnus@net-b.de>
283 * symbol.c (check_conflict): Add codimension conflict with
284 pointer; fix cray-pointee check.
286 2014-06-14 Tobias Burnus <burnus@net-b.de>
288 * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
289 for kind mismatch with -fcoarray=lib.
291 2014-07-12 Paul Thomas <pault@gcc.gnu.org>
294 * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
295 that elements are skipped. This then correctly aligns 'reverse'
296 with the scalarizer loops.
298 2014-07-12 Tobias Burnus <burnus@net-b.de>
301 * trans-types.c (gfc_init_types): Fix data-type bug
302 with gfc_max_array_element_size.
304 2014-07-12 Tobias Burnus <burnus@net-b.de>
306 * libgfortran.h (libcaf_atomic_codes): Add.
307 * trans-decl.c (gfor_fndecl_caf_atomic_def,
308 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
309 gfor_fndecl_caf_atomic_op): New variables.
310 (gfc_build_builtin_function_decls): Initialize them.
311 * trans.h (gfor_fndecl_caf_atomic_def,
312 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
313 gfor_fndecl_caf_atomic_op): New variables.
314 * trans-intrinsic.c (conv_intrinsic_atomic_op,
315 conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
316 Add library calls with -fcoarray=lib.
318 2014-07-12 Tobias Burnus <burnus@net-b.de>
320 * check.c (gfc_check_atomic): Update for STAT=.
321 (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
322 (gfc_check_atomic_op, gfc_check_atomic_cas,
323 gfc_check_atomic_fetch_op): New.
324 * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
325 GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
326 GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
327 GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
328 * intrinsic.c (add_subroutines): Handle them.
329 * intrinsic.texi: Add documentation for them.
330 (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
331 (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
332 * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
333 gfc_check_atomic_fetch_op): New
335 * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
336 * iso-fortran-env.def: Add it.
337 * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
338 conv_intrinsic_atomic_ref; handle more atomics.
339 (conv_intrinsic_atomic_def): Handle STAT=.
340 (conv_intrinsic_atomic_cas): New.
341 (gfc_conv_intrinsic_subroutine): Handle new atomics.
343 2014-07-09 Bernd Schmidt <bernds@codesourcery.com>
345 * trans-array.c (gfc_build_constant_array_constructor): Build a
346 static decl manually.
347 * trans-decl.c (create_main_function): Likewise.
349 2014-07-07 Paul Thomas <pault@gcc.gnu.org>
353 * trans-expr.c (fcncall_realloc_result): Use the natural type
354 for the address expression of 'res_desc'.
356 2014-07-07 Gerald Pfeifer <gerald@pfeifer.com>
358 * gfortran.texi (Fortran 2003 status): Fix grammar.
360 2014-07-04 Tobias Burnus <burnus@net-b.de>
362 * resolve.c (resolve_assoc_var): Fix corank setting.
363 * trans-array.c (gfc_conv_descriptor_token): Change assert.
364 for select-type temporaries.
365 * trans-decl.c (generate_coarray_sym_init): Skip for
366 attr.select_type_temporary.
367 * trans-expr.c (gfc_conv_procedure_call): Fix for
368 select-type temporaries.
369 * trans-intrinsic.c (get_caf_token_offset): Ditto.
370 (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
372 * trans-types.h (gfc_get_dtype_rank_type): New.
373 * trans-types.c (gfc_get_dtype_rank_type): Ditto.
375 2014-07-03 Tobias Burnus <burnus@net-b.de>
377 * scanner.c (skip_free_comments): Fix indentation.
379 2014-07-02 Jakub Jelinek <jakub@redhat.com>
380 Fritz Reese <Reese-Fritz@zai.com>
382 * decl.c (variable_decl): Reject old style initialization
383 for derived type components.
385 2014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
389 * decl.c (check_bind_name_identifier): New function.
390 (gfc_match_bind_c): Match any constant expression as binding
392 * match.c (gfc_match_name_C): Remove.
394 2014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
397 * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
398 * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
400 * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
401 * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
402 * module.c (mio_symbol): Keep track of symbols which came from
404 (gfc_use_module): Keep track of the IEEE modules.
405 * trans-decl.c (gfc_get_symbol_decl): Adjust code since
406 we have new intrinsic modules.
407 (gfc_build_builtin_function_decls): Build decls for
408 ieee_procedure_entry and ieee_procedure_exit.
409 (is_from_ieee_module, is_ieee_module_used, save_fp_state,
410 restore_fp_state): New functions.
411 (gfc_generate_function_code): Save and restore floating-point
412 state on procedure entry/exit, when IEEE modules are used.
413 * intrinsic.texi: Document the IEEE modules.
415 2014-06-25 Tobias Burnus <burnus@net-b.de>
417 * interface.c (check_intents): Fix diagnostic with
420 2014-06-25 Tobias Burnus <burnus@net-b.de>
422 * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
423 when assigning a coindexed RHS scalar to a noncoindexed LHS
425 * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
426 for a noncoindexed scalar RHS.
428 2014-06-25 Tobias Burnus <burnus@net-b.de>
430 * check.c (check_co_minmaxsum): Add definable check.
431 * expr.c (gfc_check_vardef_context): Fix context == NULL case.
432 * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
434 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
437 2014-06-25 Jakub Jelinek <jakub@redhat.com>
439 * trans.h (gfc_omp_clause_linear_ctor): New prototype.
440 * trans-openmp.c (gfc_omp_linear_clause_add_loop,
441 gfc_omp_clause_linear_ctor): New functions.
442 (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
443 correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
444 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
446 2014-06-24 Jakub Jelinek <jakub@redhat.com>
448 * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
450 * f95-lang.c (gfc_init_builtin_functions): Initialize
451 BUILT_IN_ASSUME_ALIGNED.
452 * gfortran.h (gfc_omp_namelist): Change udr field type to
453 struct gfc_omp_namelist_udr.
454 (gfc_omp_namelist_udr): New type.
455 (gfc_get_omp_namelist_udr): Define.
456 (gfc_resolve_code): New prototype.
457 * match.c (gfc_free_omp_namelist): Free name->udr.
458 * module.c (intrinsics): Add INTRINSIC_USER.
459 (fix_mio_expr): Likewise.
460 (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
461 * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
462 (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
463 Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
464 (struct resolve_omp_udr_callback_data): New type.
465 (resolve_omp_udr_callback, resolve_omp_udr_callback2,
466 resolve_omp_udr_clause): New functions.
467 (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
469 (omp_udr_callback): Don't check for implicitly declared functions
471 (gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
472 implicitly declared subroutines here.
473 * resolve.c (resolve_function): If value.function.isym is non-NULL,
474 consider it already resolved.
475 (resolve_code): Renamed to ...
476 (gfc_resolve_code): ... this. No longer static.
477 (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
479 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
480 by reference type (C_PTR) variables.
481 (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
482 (gfc_trans_omp_udr_expr): Remove.
483 (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
484 Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
485 expand it as assignment or subroutine call. Don't initialize
488 2014-06-23 Tobias Burnus <burnus@net-b.de>
490 * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
491 explicit-size arrays with -fcoarray=lib.
493 2014-06-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
496 * invoke.texi: Don't mention nonexisting -fcase-lower option.
498 2014-06-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
501 * expr.c (scalarize_intrinsic_call): Take care of optional
504 2014-06-19 Tobias Burnus <burnus@net-b.de>
506 * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
509 2014-06-18 Tobias Burnus <burnus@net-b.de>
511 * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
512 * intrinsic.texi (OpenMP Modules): Ditto.
514 2014-06-18 Jakub Jelinek <jakub@redhat.com>
516 * cpp.c (cpp_define_builtins): Change _OPENMP macro to
518 * dump-parse-tree.c (show_omp_namelist): Add list_type
519 argument. Adjust for rop being u.reduction_op now,
520 handle depend_op or map_op.
521 (show_omp_node): Adjust callers. Print some new
522 OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
523 becoming a single OMP_LIST_DEPEND.
524 * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
526 (gfc_attribute_table): New variable.
527 (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
528 * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
529 EXEC_OMP_* codes and new clauses.
530 * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
531 ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
532 ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
533 ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
534 ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
535 ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
536 ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
537 ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
538 ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
539 ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
540 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
541 ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
542 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
543 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
544 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
545 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
546 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
547 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
548 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
549 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
550 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
551 (symbol_attribute): Add omp_declare_target field.
552 (gfc_omp_depend_op, gfc_omp_map_op): New enums.
553 (gfc_omp_namelist): Replace rop field with union
554 containing reduction_op, depend_op and map_op.
555 (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
556 (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
557 (gfc_omp_clauses): Add num_teams, device, thread_limit,
558 dist_sched_kind, dist_chunk_size fields.
559 (gfc_common_head): Add omp_declare_target field.
560 (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
561 EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
562 EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
563 EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
564 EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
565 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
566 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
567 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
568 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
569 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
570 EXEC_OMP_TARGET_UPDATE.
571 (gfc_add_omp_declare_target): New prototype.
572 * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
573 gfc_match_omp_distribute_parallel_do,
574 gfc_match_omp_distribute_parallel_do_simd,
575 gfc_match_omp_distribute_simd, gfc_match_omp_target,
576 gfc_match_omp_target_data, gfc_match_omp_target_teams,
577 gfc_match_omp_target_teams_distribute,
578 gfc_match_omp_target_teams_distribute_parallel_do,
579 gfc_match_omp_target_teams_distribute_parallel_do_simd,
580 gfc_match_omp_target_teams_distribute_simd,
581 gfc_match_omp_target_update, gfc_match_omp_teams,
582 gfc_match_omp_teams_distribute,
583 gfc_match_omp_teams_distribute_parallel_do,
584 gfc_match_omp_teams_distribute_parallel_do_simd,
585 gfc_match_omp_teams_distribute_simd): New prototypes.
586 * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
587 (attr_bits): Likewise.
588 (mio_symbol_attribute): Handle omp_declare_target attribute.
589 (gfc_free_omp_clauses): Free num_teams, device, thread_limit
590 and dist_chunk_size expressions.
591 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
592 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
593 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
594 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
595 OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
596 OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
597 OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
598 OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
599 OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
600 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
601 OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
602 OMP_CLAUSE_DIST_SCHEDULE): Define.
603 (gfc_match_omp_clauses): Change mask parameter to unsigned int.
604 Adjust for rop becoming u.reduction_op. Disallow inbranch with
605 notinbranch. For depend clause, always create OMP_LIST_DEPEND
606 and fill in u.depend_op. Handle num_teams, device, map,
607 to, from, thread_limit and dist_schedule clauses.
608 (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
609 OMP_CLAUSE_NOTINBRANCH.
610 (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
611 OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
612 OMP_DISTRIBUTE_CLAUSES): Define.
613 (match_omp): New function.
614 (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
615 gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
616 gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
617 gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
618 gfc_match_omp_task): Rewritten using match_omp.
619 (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
620 Diagnose if the directives are followed by unexpected junk.
621 (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
622 gfc_match_omp_distribute_parallel_do_simd,
623 gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
624 gfc_match_omp_target, gfc_match_omp_target_data,
625 gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
626 gfc_match_omp_target_teams_distribute_parallel_do,
627 gfc_match_omp_target_teams_distribute_parallel_do_simd,
628 gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
629 gfc_match_omp_teams, gfc_match_omp_teams_distribute,
630 gfc_match_omp_teams_distribute_parallel_do,
631 gfc_match_omp_teams_distribute_parallel_do_simd,
632 gfc_match_omp_teams_distrbute_simd): New functions.
633 * openmp.c (resolve_omp_clauses): Adjust for
634 OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
635 OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
636 dist_chunk_size and thread_limit.
637 (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
638 ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
639 new EXEC_OMP_* codes.
640 (resolve_omp_do): Handle various new EXEC_OMP_* codes.
641 (gfc_resolve_omp_directive): Likewise.
642 (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
643 * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
644 offloading related directives.
645 (case_executable): Add ST_OMP_TARGET_UPDATE.
646 (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
648 (case_decl): Add ST_OMP_DECLARE_TARGET.
649 (gfc_ascii_statement): Handle new ST_OMP_* codes.
650 (parse_omp_do): Handle various new ST_OMP_* codes.
651 (parse_executable): Likewise.
652 * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
654 (resolve_code): Likewise.
655 (resolve_symbol): Change that !$OMP DECLARE TARGET variables
657 * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
658 * symbol.c (check_conflict): Check omp_declare_target conflicts.
659 (gfc_add_omp_declare_target): New function.
660 (gfc_copy_attr): Copy omp_declare_target.
661 * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
662 * trans-common.c (build_common_decl): Add "omp declare target"
664 * trans-decl.c (add_attributes_to_decl): Likewise.
665 * trans.h (gfc_omp_finish_clause): New prototype.
666 * trans-openmp.c (gfc_omp_finish_clause): New function.
667 (gfc_trans_omp_reduction_list): Adjust for rop being renamed
669 (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
670 change to OMP_LIST_DEPEND and fix up depend handling.
671 Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
672 thread_limit, device, dist_chunk_size and dist_sched_kind.
673 (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
674 (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
675 GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
676 GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
677 (gfc_split_omp_clauses): Handle splitting of clauses for new
679 (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
680 callable for combined constructs.
681 (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
682 (gfc_trans_omp_distribute, gfc_trans_omp_teams,
683 gfc_trans_omp_target, gfc_trans_omp_target_data,
684 gfc_trans_omp_target_update): New functions.
685 (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
686 new EXEC_OMP_* codes.
688 2014-06-18 Tobias Burnus <burnus@net-b.de>
691 * invoke.texi (-Wunused-parameter): Make clearer when
692 -Wextra implies this option.
694 2014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
697 * options.c (gfc_handle_option): Remove call to
698 handle_generated_option.
700 2014-06-17 Tobias Burnus <burnus@net-b.de>
702 * check.c (gfc_check_atomic, gfc_check_atomic_def):
703 Use argument for GFC_ISYM_CAF_GET.
704 * resolve.c (resolve_variable): Enable CAF_GET insertion.
705 (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
706 (resolve_ordinary_assign): Enable CAF_SEND insertion.
707 * trans-const.c (gfc_build_string_const,
708 gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
709 * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
710 gfor_fndecl_caf_sendget): New global variables.
711 (gfc_build_builtin_function_decls): Initialize them;
712 update co_min/max/sum initialization.
713 * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
714 get_tree_for_caf_expr and removed static.
715 (gfc_conv_procedure_call): Update call.
716 * trans-intrinsic.c (caf_get_image_index,
717 conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
718 get_caf_token_offset, gfc_conv_intrinsic_caf_get,
720 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
721 gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
722 (conv_co_minmaxsum): Update call for remove unused vector
724 (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
725 Skip a CAF_GET of the argument.
726 * trans-types.c (gfc_get_caf_vector_type): New.
727 * trans-types.h (gfc_get_caf_vector_type): New.
728 * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
729 gfor_fndecl_caf_sendget): New global variables.
730 (gfc_get_tree_for_caf_expr): New prototypes.
732 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
734 * trans-common.c (build_common_decl): Use
736 * trans-decl.c (gfc_finish_var_decl): Likewise.
737 (get_proc_pointer_decl): Likewise.
739 2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
743 * check.c (gfc_check_system_clock): Improve checking of arguments.
744 * intrinsic.texi: Update doc of SYSTEM_CLOCK.
745 * iresolve.c (gfc_resolve_system_clock): Choose library function
746 used depending on argument kinds.
747 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
748 decls for system_clock_4 and system_clock_8.
749 * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
750 (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
751 * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
754 2014-06-12 Tobias Burnus <burnus@net-b.de>
756 * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
757 * symbol.c (gfc_copy_formal_args_intr): Handle the case
758 that absent optional arguments should be ignored.
759 * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
760 (gfc_conv_intrinsic_funcall,
761 conv_generic_with_optional_char_arg): Update call.
762 * resolve.c (gfc_resolve_intrinsic): Ditto.
764 2014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr>
765 Mikael Morin <mikael@gcc.gnu.org>
768 * trans-expr.c (gfc_conv_expr_reference): Deallocate array
771 2014-06-10 Jakub Jelinek <jakub@redhat.com>
774 * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
776 * openmp.c (resolve_omp_clauses): Remove allocatable components
777 diagnostics. Add associate-name and intent(in) pointer
778 diagnostics for various clauses, diagnose procedure pointers in
780 * parse.c (match_word_omp_simd): New function.
781 (matchs, matcho): New macros.
782 (decode_omp_directive): Change match macros to either matchs
783 or matcho. Handle -fopenmp-simd.
784 (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
785 * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
787 * trans-array.c (get_full_array_size): Rename to...
788 (gfc_full_array_size): ... this. No longer static.
789 (duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
791 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
792 duplicate_allocatable callers.
793 (gfc_duplicate_allocatable_nocopy): New function.
794 (structure_alloc_comps): Adjust g*_full_array_size and
795 duplicate_allocatable caller.
796 * trans-array.h (gfc_full_array_size,
797 gfc_duplicate_allocatable_nocopy): New prototypes.
798 * trans-common.c (create_common): Call gfc_finish_decl_attrs.
799 * trans-decl.c (gfc_finish_decl_attrs): New function.
800 (gfc_finish_var_decl, create_function_arglist,
801 gfc_get_fake_result_decl): Call it.
802 (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
803 don't allocate it again.
804 (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
806 * trans.h (gfc_finish_decl_attrs): New prototype.
807 (struct lang_decl): Add scalar_allocatable and scalar_pointer
809 (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
810 GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
811 GFC_DECL_ASSOCIATE_VAR_P): Define.
812 (GFC_POINTER_TYPE_P): Remove.
813 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
814 GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
815 GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
816 (gfc_omp_predetermined_sharing): Associate-names are predetermined.
817 (enum walk_alloc_comps): New.
818 (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
819 gfc_walk_alloc_comps): New functions.
820 (gfc_omp_private_outer_ref): Return true for scalar allocatables or
821 decls with allocatable components.
822 (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
823 gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
824 allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
825 allocatables and decls with allocatable components.
826 (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
828 (gfc_trans_omp_reduction_list): Call
829 gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
830 (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
831 (gfc_trans_omp_parallel_do_simd): Likewise.
832 * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
833 (gfc_get_derived_type): Call gfc_finish_decl_attrs.
835 2014-06-09 Paul Thomas <pault@gcc.gnu.org>
838 * trans-stmt.c (trans_associate_var): Check that array
839 constructors are constant for direct reference.
841 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
844 * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
845 BESSEL_Y0, and BESSEL_Y1.
847 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
850 * trans-decl.c (gfc_create_module_variable): Don't create
851 Cray-pointee decls twice.
853 2014-06-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
855 * io.c (resolve_tag): Warn on non-default kind for NUMBER,
856 NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
858 2014-06-06 Jakub Jelinek <jakub@redhat.com>
860 * dump-parse-tree.c (show_omp_namelist): Dump reduction
861 id in each list item.
862 (show_omp_node): Only handle OMP_LIST_REDUCTION, not
863 OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
864 dump reduction id here.
865 * frontend-passes.c (dummy_code_callback): Renamed to...
866 (gfc_dummy_code_callback): ... this. No longer static.
867 (optimize_reduction): Use gfc_dummy_code_callback instead of
869 * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
870 (symbol_attribute): Add omp_udr_artificial_var bitfield.
871 (gfc_omp_reduction_op): New enum.
872 (gfc_omp_namelist): Add rop and udr fields.
873 (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
874 OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
875 OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
876 OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
877 (OMP_LIST_REDUCTION): New.
878 (gfc_omp_udr): New type.
879 (gfc_get_omp_udr): Define.
880 (gfc_symtree): Add n.omp_udr field.
881 (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
882 (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
883 gfc_dummy_code_callback): New prototypes.
884 * match.h (gfc_match_omp_declare_reduction): New prototype.
885 * module.c (MOD_VERSION): Increase to 13.
886 (omp_declare_reduction_stmt): New array.
887 (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
889 (read_module): Read OpenMP user defined reductions.
890 (write_module): Write OpenMP user defined reductions.
891 * openmp.c: Include arith.h.
892 (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
893 (gfc_match_omp_clauses): Handle user defined reductions.
894 Store reduction kind into gfc_omp_namelist instead of using
895 several OMP_LIST_* entries.
896 (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
897 gfc_match_omp_declare_reduction): New functions.
898 (resolve_omp_clauses): Adjust for reduction clauses being only
899 in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
900 (struct omp_udr_callback_data): New type.
901 (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
903 * parse.c (decode_omp_directive): Handle !$omp declare reduction.
904 (case_decl): Add ST_OMP_DECLARE_REDUCTION.
905 (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
906 * resolve.c (resolve_fl_variable): Allow len=: or len=* on
907 sym->attr.omp_udr_artificial_var symbols.
908 (resolve_types): Call gfc_resolve_omp_udrs.
909 * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
910 use parent ns instead of gfc_current_ns.
911 (gfc_get_sym_tree): Don't insert symbols into
912 namespaces with omp_udr_ns set.
913 (free_omp_udr_tree): New function.
914 (gfc_free_namespace): Call it.
915 * trans-openmp.c (struct omp_udr_find_orig_data): New type.
916 (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
917 (gfc_trans_omp_array_reduction): Renamed to...
918 (gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
919 argument, instead pass gfc_omp_namelist pointer N. Handle
920 user defined reductions.
921 (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
922 Handle user defined reductions and reduction ops in gfc_omp_namelist.
923 (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
925 (gfc_split_omp_clauses): Likewise.
927 2014-06-05 Richard Biener <rguenther@suse.de>
930 * gfortranspec.c (spec_file): Remove.
931 (find_spec_file): Likewise.
932 (lang_specific_driver): Do not look for specs file in -L
933 or append -specs command line argument.
934 (lang_specific_pre_link): Always %:include libgfortran.spec.
936 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
938 * fortran/trans.c (trans_runtime_error_vararg): Call
939 fold_build_call_array_loc instead of fold_builtin_call_array.
941 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
943 * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
944 arguments to caf_init.
946 2014-05-26 Tobias Burnus <burnus@net-b.de>
948 * gfortran.texi (Project Status): Fix broken link.
950 2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
953 * intrinsics.texi (CTIME): Remove mention of locale-dependent
956 2014-05-26 Tobias Burnus <burnus@net-b.de>
959 * trans-io.c (nml_full_name, transfer_namelist_element): Insert
960 a '+' rather then '%' to differentiate namelist variable names
961 that are based on extended derived types.
963 2014-05-25 Tobias Burnus <burnus@net-b.de>
965 * check.c (gfc_check_num_images): New.
966 (gfc_check_this_image): Handle distance argument.
967 * intrinsic.c (add_functions): Update this_image and num_images
968 for new distance and failed arguments.
969 * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
971 * intrinsic.h (gfc_check_num_images): New.
972 (gfc_check_this_image, gfc_simplify_num_images,
973 gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
974 * iresolve.c (gfc_resolve_this_image): Handle distance argument.
975 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
976 Handle new arguments.
977 * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
978 (gfc_conv_intrinsic_function): Update trans_num_images call.
980 2014-05-23 Tobias Burnus <burnus@net-b.de>
982 * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
983 * gfortran.texi: Ditto.
985 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
987 * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
988 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
989 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
990 * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
992 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
994 * f95-lang.c (pushlevel): Adjust.
995 * trans-decl.c (gfc_allocate_lang_decl): Adjust.
996 (gfc_find_module): Likewise.
997 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
998 (gfc_get_array_type_bounds): Likewise.
999 (gfc_nonrestricted_type): Likewise.
1000 * trans.h: Don't use variable_size gty attribute.
1002 2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr>
1004 * check.c (gfc_check_fn_rc2008): move "argument" to the right
1007 2014-05-12 Tobias Burnus <burnus@net-b.de>
1010 * openmp.c (resolve_omp_do): Reject do concurrent loops.
1012 2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1015 * frontend-passes.c (in_assoc_list): New variable.
1016 (optimize_namespace): Initialize in_assoc_list
1017 (combine_array_constructor): Don't try to combine
1019 (gfc_code_walker): Keep track of in_assoc_list.
1021 2014-05-11 Jakub Jelinek <jakub@redhat.com>
1023 * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
1024 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1025 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1026 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1027 ST_OMP_DECLARE_SIMD.
1028 (gfc_omp_namelist): New typedef.
1029 (gfc_get_omp_namelist): Define.
1030 (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
1031 OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
1032 (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
1033 (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
1034 Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
1035 simdlen_expr fields.
1036 (gfc_omp_declare_simd): New typedef.
1037 (gfc_get_omp_declare_simd): Define.
1038 (gfc_namespace): Add omp_declare_simd field.
1039 (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1040 EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
1041 EXEC_OMP_PARALLEL_DO_SIMD.
1042 (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
1043 and GFC_OMP_ATOMIC_SWAP.
1044 (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
1045 (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
1046 gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
1048 * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
1049 * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
1050 * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
1051 simdlen_expr. Use gfc_free_omp_namelist instead of
1053 (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
1055 (gfc_match_omp_variable_list): Add end_colon, headp and
1056 allow_sections arguments. Handle parsing of array sections.
1057 Use *omp_namelist* instead of *namelist* data structure and
1058 functions/macros. Allow termination at : character.
1059 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
1060 OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
1061 OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
1062 (gfc_match_omp_clauses): Change first and needs_space variables
1063 into arguments with default values. Parse inbranch, notinbranch,
1064 proc_bind, safelen, simdlen, uniform, linear, aligned and
1066 (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
1067 (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
1068 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
1069 (gfc_match_omp_do_simd): New function.
1070 (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
1071 data structure and functions/macros.
1072 (gfc_match_omp_simd, gfc_match_omp_declare_simd,
1073 gfc_match_omp_parallel_do_simd): New functions.
1074 (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
1075 (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
1076 gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
1078 (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
1079 Use *omp_namelist* instead of *namelist* data structure and
1080 functions/macros. Resolve uniform, aligned, linear, depend,
1081 safelen and simdlen clauses.
1082 (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
1083 addition, recognize atomic swap.
1084 (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
1085 of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
1086 EXEC_OMP_PARALLEL_DO.
1087 (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
1088 data structure and functions/macros.
1089 (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1090 EXEC_OMP_PARALLEL_DO_SIMD.
1091 (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1092 EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
1093 resolve_omp_clauses caller.
1094 (gfc_resolve_omp_declare_simd): New function.
1095 * parse.c (decode_omp_directive): Parse cancellation point, cancel,
1096 declare simd, end do simd, end simd, end parallel do simd,
1097 end taskgroup, parallel do simd, simd and taskgroup directives.
1098 (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
1099 (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
1100 ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
1101 (case_decl): Add ST_OMP_DECLARE_SIMD.
1102 (gfc_ascii_statement): Handle ST_OMP_CANCEL,
1103 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1104 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1105 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1106 ST_OMP_DECLARE_SIMD.
1107 (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
1108 ST_OMP_PARALLEL_DO_SIMD.
1109 (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
1110 (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
1111 ST_OMP_PARALLEL_DO_SIMD.
1112 (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
1113 ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
1114 * trans-decl.c (gfc_get_extern_function_decl,
1115 gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
1117 * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
1118 EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
1119 safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
1120 of depend, aligned and linear clauses.
1121 * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
1122 and EXEC_OMP_PARALLEL_DO_SIMD.
1123 (gfc_free_omp_namelist): New function.
1124 * dump-parse-tree.c (show_namelist): Removed.
1125 (show_omp_namelist): New function.
1126 (show_omp_node): Handle OpenMP 4.0 additions.
1127 (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1128 EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
1130 * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
1131 gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
1132 gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
1133 gfc_match_omp_taskgroup): New prototypes.
1134 * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
1135 argument, handle it. Allow current_function_decl to be NULL.
1136 (gfc_trans_omp_variable_list): Add declare_simd argument, pass
1137 it through to gfc_trans_omp_variable and disregard whether
1138 sym is referenced if declare_simd is true. Work on gfc_omp_namelist
1139 instead of gfc_namelist.
1140 (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
1141 gfc_namelist. Adjust gfc_trans_omp_variable caller.
1142 (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
1143 to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
1144 instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
1145 simdlen, depend, uniform, linear, proc_bind and aligned clauses.
1147 (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
1148 adjust for GFC_OMP_ATOMIC_* changes.
1149 (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
1151 (gfc_trans_omp_do): Add op argument, handle simd translation into
1153 (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
1154 GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
1155 GFC_OMP_MASK_PARALLEL): New.
1156 (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
1157 (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
1158 (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
1160 (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
1161 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1162 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1163 Adjust gfc_trans_omp_do caller.
1164 (gfc_trans_omp_declare_simd): New function.
1165 * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
1166 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1167 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1168 For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
1170 * module.c (omp_declare_simd_clauses): New variable.
1171 (mio_omp_declare_simd): New function.
1172 (mio_symbol): Call it.
1173 * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
1174 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1175 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1176 * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
1177 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1178 (resolve_code): Handle EXEC_OMP_CANCEL,
1179 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1180 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1181 (resolve_types): Call gfc_resolve_omp_declare_simd.
1183 2014-05-11 Tobias Burnus <burnus@net-b.de>
1185 * trans-intrinsic.c (gfc_build_builtin_function_decls):
1186 Change type of second argument to int.
1188 2014-05-09 Mike Stump <mikestump@comcast.net>
1191 * trans-array.c (gfc_conv_array_initializer): Fix wide-int
1194 2014-05-08 Tobias Burnus <burnus@net-b.de>
1196 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
1197 and GFC_ISYM_CAF_SEND.
1198 * intrinsic.c (add_functions): Add only internally
1199 accessible caf_get and caf_send functions.
1200 * resolve.c (add_caf_get_intrinsic,
1201 remove_caf_get_intrinsic): New functions.
1202 (resolve_variable): Resolve expression rank and
1203 prepare for add_caf_get_intrinsic call.
1204 (gfc_resolve_expr): For variables, remove rank
1206 (resolve_ordinary_assign): Prepare call to
1208 (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
1209 the LHS of an assignment.
1211 2014-05-08 Tobias Burnus <burnus@net-b.de>
1213 * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
1215 2014-05-08 Tobias Burnus <burnus@net-b.de>
1217 * check.c (check_co_minmaxsum, gfc_check_co_minmax,
1218 gfc_check_co_sum): New.
1219 * error.c (gfc_notify_std): Update -std=f2008ts.
1220 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
1221 GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
1222 * intrinsic.h (gfc_check_co_minmax,
1223 gfc_check_co_sum): Declare.
1224 * intrinsic.c (add_subroutines): Add co_min, co_max
1226 (gfc_check_intrinsic_standard): Update text for
1228 * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
1230 * invoke.texi (-std=f2008ts): Update wording.
1231 * trans.h (gfor_fndecl_co_max,
1232 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1233 * trans-decl.c (gfor_fndecl_co_max,
1234 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1235 (gfc_build_builtin_function_decls): Assign to it.
1236 * trans-intrinsic.c (conv_co_minmaxsum): New.
1237 (gfc_conv_intrinsic_subroutine): Call it.
1239 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1240 Mike Stump <mikestump@comcast.net>
1241 Richard Sandiford <rdsandiford@googlemail.com>
1243 * target-memory.c: Include wide-int.h.
1244 (gfc_interpret_logical): Use wide-int interfaces.
1245 * trans-array.c: Include wide-int.h.
1246 (gfc_conv_array_initializer): Use wide-int interfaces.
1247 * trans-const.c: Include wide-int.h.
1248 (gfc_conv_string_init): Use wide-int interfaces.
1249 (gfc_conv_mpz_to_tree): Likewise.
1250 (gfc_conv_tree_to_mpz): Likewise.
1251 * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
1252 * trans-expr.c: Include wide-int.h.
1253 (gfc_conv_cst_int_power): Use wide-int interfaces.
1254 (gfc_string_to_single_character): Likewise.
1255 (gfc_optimize_len_trim): Likewise.
1256 * trans-intrinsic.c: Include wide-int.h.
1257 (trans_this_image): Use wide-int interfaces.
1258 (gfc_conv_intrinsic_bound): Likewise.
1259 (conv_intrinsic_cobound): Likewise.
1260 * trans-types.c (gfc_init_types): Likewise.
1261 (gfc_get_array_type_bounds): Pass an integer of the correct type
1262 instead of using integer_one_node.
1264 2014-04-30 Tobias Burnus <burnus@net-b.de>
1266 * trans-decl.c (create_function_arglist): Add hidden coarray arguments
1267 also for polymorphic coarrays.
1268 * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
1269 also for polymorphic coarrays.
1271 2014-04-30 Tobias Burnus <burnus@net-b.de>
1273 * resolve.c (resolve_function): Don't do
1274 assumed-size check for lcobound/ucobound.
1275 * trans-types.c (gfc_build_array_type): Only build an array
1276 descriptor with codimensions for allocatable coarrays.
1278 2014-04-30 Tobias Burnus <burnus@net-b.de>
1280 * gfortran.h (gfc_init_coarray_decl): Remove.
1281 * parse.c (translate_all_program_units): Remove call to it.
1282 (gfc_parse_file): Update call.
1283 * trans.h (gfor_fndecl_caf_this_image,
1284 gfor_fndecl_caf_num_images): Add.
1285 (gfort_gvar_caf_num_images,
1286 gfort_gvar_caf_this_image): Remove.
1287 * trans-decl.c (gfor_fndecl_caf_this_image,
1288 gfor_fndecl_caf_num_images): Add.
1289 (gfort_gvar_caf_num_images,
1290 gfort_gvar_caf_this_image): Remove.
1291 (gfc_build_builtin_function_decls): Init new decl.
1292 (gfc_init_coarray_dec): Remove.
1293 (create_main_function): Change calls.
1294 * trans-intrinsic.c (trans_this_image, trans_image_index,
1295 conv_intrinsic_cobound): Generate call to new library function
1296 instead of to a static variable.
1297 * trans-stmt.c (gfc_trans_sync): Ditto.
1299 2014-04-30 Tobias Burnus <burnus@net-b.de>
1301 * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
1302 and derived-type coarrays.
1304 2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1308 * gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
1309 * arith.c (gfc_int2int): Convert number to signed if
1310 arithmetic overflow is not checked.
1311 * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
1312 size if range checking is in force.
1313 (convert_mpz_to_signed): Make non-static, rename to
1314 (gfc_convert_mpz_to_signed).
1315 (simplify_dshift): Use gfc_convert_mpz_to_signed.
1316 (gfc_simplify_ibclr): Likewise.
1317 (gfc_simplify_ibits): Likewise.
1318 (gfc_simplify_ibset): Likewise.
1319 (simplify_shift): Likewise.
1320 (gfc_simplify_ishiftc): Likewise.
1321 (gfc_simplify_maskr): Likewise.
1322 (gfc_simplify_maskl): Likewise.
1324 2014-04-22 Tobias Burnus <burnus@net-b.de>
1327 * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1330 2014-04-17 Jakub Jelinek <jakub@redhat.com>
1332 * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
1333 argument is enum machine_mode.
1335 2014-04-13 Paul Thomas <pault@gcc.gnu.org>
1339 * trans.h: Add 'use_offset' bitfield to gfc_se.
1340 * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
1341 as a trigger to unconditionally recalculate the offset for
1342 array slices and constant arrays.
1343 trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
1344 trans-stmt.c (trans_associate_var): Ditto.
1345 (gfc_conv_procedure_call): Ditto.
1347 2014-04-11 Tobias Burnus <burnus@net-b.de>
1351 * resolve.c (gfc_resolve_finalizers): Ensure that vtables
1352 and finalization wrappers are generated.
1354 2014-04-11 Janne Blomqvist <jb@gcc.gnu.org>
1356 * intrinsic.texi (RANDOM_SEED): Improve example.
1358 2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1360 * class.c (gfc_build_class_symbol): Append "_t" to target class
1361 names to make the generated type names unique.
1363 2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1366 * trans-types.c (gfc_get_function_type): In case of recursion
1367 build a variadic function type with empty argument list instead of a
1368 stdarg-like function type with incomplete argument list.
1370 2014-04-04 Tobias Burnus <burnus@net-b.de>
1372 * check.c (gfc_check_cmplx): Fix typo.
1374 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1375 Tobias Burnus <burnus@net-b.de>
1378 * trans-expr.c (gfc_conv_derived_to_class): Avoid
1379 generation of out-of-bounds range expr.
1381 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1384 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1387 2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1390 * frontend-passes.c (cfe_code): Do not walk subtrees
1393 2014-03-27 Tobias Burnus <burnus@net-b.de>
1396 * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1399 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
1402 * fortran.texi: Document Volatile COMMON as not supported.
1404 2014-03-22 Jakub Jelinek <jakub@redhat.com>
1407 * cpp.c (gfc_cpp_init): Restore cb_change_file call to
1410 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1413 * gfortran.texi: Add description of namelist DELIM= behavior.
1415 2014-03-19 Tobias Burnus <burnus@net-b.>
1418 * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
1419 * resolve.c (resolve_ordinary_assign): Ditto.
1421 2014-03-19 Tobias Burnus <burnus@net-b.de>
1425 * gfortran.h (gfc_unset_implicit_pure): New prototype.
1426 * resolve.c (gfc_unset_implicit_pure): New.
1427 (resolve_structure_cons, resolve_function,
1428 pure_subroutine): Use it.
1429 * decl.c (match_old_style_init, gfc_match_data,
1430 match_pointer_init, variable_decl): Ditto.
1431 * expr.c (gfc_check_pointer_assign): Ditto.
1432 * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
1433 * io.c (match_vtag, gfc_match_open, gfc_match_close,
1434 match_filepos, gfc_match_inquire, gfc_match_print,
1435 gfc_match_wait): Ditto.
1436 * match.c (gfc_match_critical, gfc_match_stopcode,
1437 lock_unlock_statement, sync_statement, gfc_match_allocate,
1438 gfc_match_deallocate): Ditto.
1439 * parse.c (decode_omp_directive): Ditto.
1440 * symbol.c (gfc_add_save): Ditto.
1442 2014-03-18 Janus Weil <janus@gcc.gnu.org>
1446 * decl.c (match_attr_spec): Revert r208590.
1448 2014-03-18 Jakub Jelinek <jakub@redhat.com>
1451 * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
1454 2014-03-18 Tobias Burnus <burnus@net-b.de>
1457 * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
1458 (gfc_trans_io_runtime_check): Remove.
1459 * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
1460 as argument, add predictor to block.
1461 (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
1462 gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
1463 * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
1464 (gfc_trans_runtime_check, gfc_allocate_using_malloc,
1465 gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
1467 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1468 * trans-stmt.c (gfc_trans_allocate): Ditto.
1469 * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
1471 2014-03-15 Janus Weil <janus@gcc.gnu.org>
1474 * decl.c (match_attr_spec): Variables in the main program implicitly
1475 get the SAVE attribute in Fortran 2008.
1477 2014-03-14 Mikael Morin <mikael@gcc.gnu.org>
1480 * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
1481 if it has transposed dimensions.
1483 2014-03-08 Tobias Burnus <burnus@net-b.de>
1486 * f95-lang.c (gfc_init): Return false when only
1488 * options.c (gfc_post_options): Ditto.
1490 2014-03-08 Tobias Burnus <burnus@net-b.de>
1492 * gfortran.texi (Fortran 2003 Status): Mention finalization,
1493 deferred-length character support and input rounding.
1494 (Fortran 2008 Status): Mention that at termination
1495 signalling exceptions are shown.
1497 2014-03-06 Paul Thomas <pault@gcc.gnu.org>
1498 Janus Weil <janus@gcc.gnu.org>
1501 * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
1502 * primary.c (build_actual_constructor): It is not an error if
1503 a missing component has the deferred_parameter attribute;
1504 equally, if one is given a value, it is an error.
1505 * resolve.c (resolve_fl_derived0): Remove error for deferred
1506 character length components. Add the hidden string length
1507 field to the structure. Give it the deferred_parameter
1509 * trans-array.c (duplicate_allocatable): Add a strlen field
1510 which is used as the element size if it is non-null.
1511 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
1512 NULL to the new argument in duplicate_allocatable.
1513 (structure_alloc_comps): Set the hidden string length as
1514 appropriate. Use it in calls to duplicate_allocatable.
1515 (gfc_alloc_allocatable_for_assignment): When a deferred length
1516 backend declaration is variable, use that; otherwise use the
1517 string length from the expression evaluation.
1518 * trans-expr.c (gfc_conv_component_ref): If this is a deferred
1519 character length component, the string length should have the
1520 value of the hidden string length field.
1521 (gfc_trans_subcomponent_assign): Set the hidden string length
1522 field for deferred character length components. Allocate the
1523 necessary memory for the string.
1524 (alloc_scalar_allocatable_for_assignment): Same change as in
1525 gfc_alloc_allocatable_for_assignment above.
1526 * trans-stmt.c (gfc_trans_allocate): Likewise.
1527 * trans-intrinsic (size_of_string_in_bytes): Make non-static.
1528 * trans-types.c (gfc_get_derived_type): Set the tree type for
1529 a deferred character length component.
1530 * trans.c (gfc_deferred_strlen): New function.
1531 * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
1533 2014-03-01 Mikael Morin <mikael@gcc.gnu.org>
1536 * frontend-passes.c (optimize_comparison): Guard two union accesses
1537 with the corresponding tag checks.
1539 2014-02-28 Janus Weil <janus@gcc.gnu.org>
1542 * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
1543 procedure for characters.
1545 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1548 * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
1551 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1554 * gfortran.h (gfc_build_class_symbol): Removed argument.
1555 * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
1556 (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
1557 delayed now, except for unlimited polymorphics.
1558 (comp_is_finalizable): Procedure pointer components are not finalizable.
1559 * decl. (build_sym, build_struct, attr_decl1): Removed argument of
1560 'gfc_build_class_symbol'.
1561 * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
1563 * symbol.c (gfc_set_default_type): Ditto.
1565 2014-02-19 Janus Weil <janus@gcc.gnu.org>
1568 * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
1569 functions, which are used as procedure pointer target.
1571 2014-02-18 Tobias Burnus <burnus@net-b.de>
1574 * expr.c (gfc_check_pointer_assign): Add check for
1576 * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
1577 decl in a corner case.
1579 2014-02-18 Janus Weil <janus@gcc.gnu.org>
1582 * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
1583 arguments to prevent ICE.
1585 2014-02-17 Janus Weil <janus@gcc.gnu.org>
1588 * resolve.c (build_default_init_expr): Don't initialize character
1589 variable if -fno-automatic is given.
1591 2014-02-15 Mikael Morin <mikael@gcc.gnu.org>
1594 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
1595 number of arguments.
1597 2014-02-11 Jakub Jelinek <jakub@redhat.com>
1600 * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
1601 on decl if sym->attr.optional.
1603 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1606 * resolve.c (resolve_assoc_var): Set the subref_array_pointer
1607 attribute for the 'associate-name' if necessary.
1608 * trans-stmt.c (trans_associate_var): If the 'associate-name'
1609 is a subref_array_pointer, assign the element size of the
1610 associate variable to 'span'.
1612 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1615 * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
1616 actual argument to a formal argument with the value attribute
1617 in an elemental procedure.
1619 2014-02-08 Janus Weil <janus@gcc.gnu.org>
1620 Mikael Morin <mikael.morin@gcc.gnu.org>
1623 * class.c (generate_finalization_wrapper): Assert that proc_tree has
1624 been set in gfc_resolve_finalizers.
1625 * resolve.c (resolve_fl_derived0): Remove unnecessary call to
1628 2014-02-07 Benno Schulenberg <bensberg@justemail.net>
1630 PR translation/52289
1631 * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
1632 in an error message.
1634 2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
1637 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
1640 2014-02-01 Paul Thomas <pault@gcc.gnu.org>
1643 * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
1644 SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
1645 pointer to the string is stored.
1646 * trans-expr.c (gfc_conv_expr_reference): Likewise, use
1647 gfc_conv_string_parameter to ensure that a pointer to is passed
1648 to the elemental function.
1650 2014-01-28 Paul Thomas <pault@gcc.gnu.org>
1653 * trans-stmt.c (gfc_trans_allocate): Before the pointer
1654 assignment to transfer the source _vptr to a class allocate
1655 expression, the final class reference should be exposed. The
1656 tail that includes the _data and array references is stored.
1657 This reduced expression is transferred to 'lhs' and the _vptr
1658 added. Then the tail is restored to the allocate expression.
1660 2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
1663 * module.c (read_module): Assert for component name correctness.
1665 2014-01-18 Mikael Morin <mikael@gcc.gnu.org>
1668 * module.c (MOD_VERSION): Bump.
1669 (fp2, find_pointer2): Remove.
1670 (mio_component_ref): Don't forcedfully set the containing derived type
1671 symbol for loading. Remove unused argument.
1672 (mio_ref): Update caller
1673 (mio_symbol): Dump component list earlier.
1674 (skip_list): New argument nest_level. Initialize level with the new
1676 (read_module): Add forced pointer components association for derived
1679 2014-01-12 Janus Weil <janus@gcc.gnu.org>
1682 * decl.c (gfc_match_data_decl): Improve error recovery.
1684 2014-01-09 Tobias Burnus <burnus@net-b.de>
1686 * cpp.c (gfc_cpp_handle_option): Add missing break.
1687 * trans-io.c (transfer_expr): Silence unused value warning.
1689 2014-01-08 Janus Weil <janus@gcc.gnu.org>
1692 * resolve.c (gfc_verify_binding_labels): Modify order of checks.
1694 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1697 * class.c (comp_is_finalizable): New function to dermine if a given
1698 component is finalizable.
1699 (finalize_component, generate_finalization_wrapper): Use it.
1701 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1705 * resolve.c (resolve_global_procedure): Don't apply to c-binding
1707 (gfc_verify_binding_labels): Remove duplicate line.
1709 2014-01-04 Janus Weil <janus@gcc.gnu.org>
1712 * class.c (add_proc_comp): Copy pure attribute.
1714 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1716 Update copyright years
1718 2014-01-02 Tobias Burnus <burnus@net-b.de>
1720 * gfortranspec.c (lang_specific_driver): Update copyright notice
1722 * gfc-internals.texi: Bump @copying's copyright year.
1723 * gfortran.texi: Ditto.
1724 * intrinsic.texi: Ditto.
1725 * invoke.texi: Ditto.
1727 2014-01-02 Janus Weil <janus@gcc.gnu.org>
1730 * resolve.c (resolve_typebound_procedures): No need to create the vtab
1733 Copyright (C) 2014 Free Software Foundation, Inc.
1735 Copying and distribution of this file, with or without modification,
1736 are permitted in any medium without royalty provided the copyright
1737 notice and this notice are preserved.