Remove LIBGCC2_HAS_?F_MODE target macros.
[official-gcc.git] / gcc / fortran / ChangeLog
blob5488371c4c6be5ffdcc6607e7a4dd85ba3fe0849
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>
9         PR fortran/62245
10         * intrinsic.texi (INT): clarify result.
12 2014-09-03  Fritz Reese  <Reese-Fritz@zai.com>
14         PR fortran/62174
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>
20         PR fortran/62270
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>
26         PR fortran/62309
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
47         with early return.
48         * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
49         Moved to trans-expr.
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>
56         PR fortran/62278
57         PR fortran/44735
58         PR fortran/60593
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
65         unlink().
67 2014-08-29  Jeffrey Armstrong  <jeffrey.armstrong@approximatrix.com>
69         PR fortran/62215
70         * module.c (gfc_dump_module): Unlink old module file before
71         renaming new one.
73 2014-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
75         * frontend_passes (expr_array):  Replace by vec template.
76         (expr_size):  Remove.
77         (expr_count):  Remove.
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>
87         PR fortran/62135
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>
93         PR fortran/61234
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>
102         PR fortran/62214
103         * frontend-passes.c (optimize_binop_array_assignment):
104         Do not try to optimize the array assignment for string
105         concatenation.
107 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
109         PR fortran/44054
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>
116         PR fortran/44054
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
127         resolved first.
129 2014-08-17  Tobias Burnus  <burnus@net-b.de>
131         * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
132         IOCALL_SET_NML_VAL.
133         (transfer_namelist_element): Use proper int type as argument.
135 2014-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
137         PR fortran/62142
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>
147         PR fortran/44054
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.
154         * trans.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>
173         PR fortran/62131
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>
179         PR fortran/62107
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>
186         PR fortran/62106
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
192         for constants.
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
207         critical variables.
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
218         documentation.
220 2014-08-14  Jakub Jelinek  <jakub@redhat.com>
222         PR fortran/62076
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
226         string.
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>
232         PR fortran/61950
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>
238         PR fortran/61999
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>
248         PR fortran/61881
249         PR fortran/61888
250         PR fortran/57305
251         * intrinsic.texi (SIZEOF): Document changed behavior
252         for polymorphic arrays.
254 2014-07-26  Tobias Burnus  <burnus@net-b.de>
256         PR fortran/61881
257         PR fortran/61888
258         PR fortran/57305
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
266         rank.
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>
293         PR fortran/61780
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>
300         PR fortran/61628
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
334         prototypes.
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>
351         PR fortran/61459
352         PR fortran/58883
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
371         the correct dtype.
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>
387         PR fortran/36275
388         PR fortran/38839
389         * decl.c (check_bind_name_identifier): New function.
390         (gfc_match_bind_c): Match any constant expression as binding
391         label.
392         * match.c (gfc_match_name_C): Remove.
394 2014-06-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
396         PR fortran/29383
397         * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
398         * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
399         both C and Fortran.
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
403         intrinsic modules.
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
418         coindexed coarrays.
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
424         array.
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
433         arguments.
434         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
435         temporary strings.
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
449         of n->udr.
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
468         here.
469         (omp_udr_callback): Don't check for implicitly declared functions
470         here.
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):
478         Adjust callers.
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
486         value.function.isym.
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>
495         PR fortran/33363
496         * invoke.texi: Don't mention nonexisting -fcase-lower option.
498 2014-06-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
500         PR fortran/61454
501         * expr.c (scalarize_intrinsic_call): Take care of optional
502         arguments.
504 2014-06-19  Tobias Burnus  <burnus@net-b.de>
506         * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
507         passing.
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
517         201307.
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
525         function.
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*,
647         ST_OMP_DISTRIBUTE*.
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_*
653         codes.
654         (resolve_code): Likewise.
655         (resolve_symbol): Change that !$OMP DECLARE TARGET variables
656         are saved.
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"
663         attribute if needed.
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
668         to u.reduction_op.
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
678         EXEC_OMP_* codes.
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>
690         PR fortran/61126
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>
696         PR fortran/61126
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,
719         conv_caf_send): New.
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
723         subscript.
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
735         set_decl_tls_model.
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>
741         PR fortran/28484
742         PR fortran/61429
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):
752         New variables.
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>
767         PR fortran/41936
768         * trans-expr.c (gfc_conv_expr_reference): Deallocate array
769         components.
771 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
773         PR fortran/60928
774         * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
775         like -fopenmp.
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
779         reduction clause.
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):
786         Likewise.
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
790         and handle it.
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
805         associate-names.
806         * trans.h (gfc_finish_decl_attrs): New prototype.
807         (struct lang_decl): Add scalar_allocatable and scalar_pointer
808         bitfields.
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
827         arrays here.
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>
837         PR fortran/61406
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>
843         PR fortran/36096
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>
849         PR fortran/45187
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
868         dummy_code_callback.
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):
888         New functions.
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
902         functions.
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
924         list.
925         (gfc_split_omp_clauses): Likewise.
927 2014-06-05  Richard Biener  <rguenther@suse.de>
929         PR fortran/61418
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>
952         PR libfortran/61310
953         * intrinsics.texi (CTIME): Remove mention of locale-dependent
954         behavior.
956 2014-05-26  Tobias Burnus  <burnus@net-b.de>
958         PR fortran/55117
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
970         arguments.
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
1005         place.
1007 2014-05-12  Tobias Burnus  <burnus@net-b.de>
1009         PR fortran/60127
1010         * openmp.c (resolve_omp_do): Reject do concurrent loops.
1012 2014-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1014         PR fortran/60834
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
1018         assoc lists.
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
1047         prototypes.
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
1052         gfc_free_namelist.
1053         (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
1054         functions.
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
1065         depend clauses.
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
1077         functions.
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
1116         needed.
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
1129         EXEC_OMP_TASKGROUP.
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.
1146         Handle cancel kind.
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
1150         functions.
1151         (gfc_trans_omp_do): Add op argument, handle simd translation into
1152         generic.
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
1159         functions.
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
1169         gfc_free_namelist.
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>
1190         PR fortran/61109
1191         * trans-array.c (gfc_conv_array_initializer): Fix wide-int
1192         conversion bug.
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
1205         resolution.
1206         (resolve_ordinary_assign): Prepare call to
1207         GFC_ISYM_CAF_SEND.
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
1225         and co_sum.
1226         (gfc_check_intrinsic_standard): Update text for
1227         -std=f2008ts.
1228         * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
1229         them.
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>
1306         PR fortran/59604
1307         PR fortran/58003
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>
1326         PR fortran/60881
1327         * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1328         of scalar coarrays.
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>
1337         PR fortran/58085
1338         PR fortran/60717
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>
1349         PR fortran/58880
1350         PR fortran/60495
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>
1365         PR fortran/60191
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>
1377         PR fortran/60576
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>
1383         PR fortran/60677
1384         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1385         list buffer.
1387 2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1389         PR fortran/60522
1390         * frontend-passes.c (cfe_code):  Do not walk subtrees
1391         for WHERE.
1393 2014-03-27  Tobias Burnus  <burnus@net-b.de>
1395         PR fortran/58880
1396         * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1397         of nonpointers.
1399 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
1401         PR fortran/34928
1402         * fortran.texi: Document Volatile COMMON as not supported.
1404 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
1406         PR debug/60603
1407         * cpp.c (gfc_cpp_init): Restore cb_change_file call to
1408         <built-in>.
1410 2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1412         PR fortran/60148
1413         * gfortran.texi: Add description of namelist DELIM= behavior.
1415 2014-03-19  Tobias Burnus  <burnus@net-b.>
1417         PR fortran/60543
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>
1423         PR fortran/60543
1424         PR fortran/60283
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>
1444         PR fortran/55207
1445         PR fortran/60549
1446         * decl.c (match_attr_spec): Revert r208590.
1448 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
1450         PR ipa/58721
1451         * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
1452         if !optimize.
1454 2014-03-18  Tobias Burnus  <burnus@net-b.de>
1456         PR ipa/58721
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
1466         branch predictor.
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>
1473         PR fortran/55207
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>
1479         PR fortran/60392
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>
1485         PR fortran/60447
1486         * f95-lang.c (gfc_init): Return false when only
1487         preprocessing.
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>
1500         PR fortran/51976
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
1508         attribute.
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>
1535         PR fortran/60341
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>
1541         PR fortran/60359
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>
1547         PR fortran/60302
1548         * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
1549         is successful.
1551 2014-02-21  Janus Weil  <janus@gcc.gnu.org>
1553         PR fortran/60234
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):
1562         Ditto.
1563         * symbol.c (gfc_set_default_type): Ditto.
1565 2014-02-19  Janus Weil  <janus@gcc.gnu.org>
1567         PR fortran/60232
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>
1573         PR fortran/49397
1574         * expr.c (gfc_check_pointer_assign): Add check for
1575         F2008Cor2, C729.
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>
1581         PR fortran/60231
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>
1587         PR fortran/55907
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>
1593         PR fortran/59599
1594         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
1595         number of arguments.
1597 2014-02-11  Jakub Jelinek  <jakub@redhat.com>
1599         PR fortran/52370
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>
1605         PR fortran/57522
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>
1614         PR fortran/59026
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>
1622         PR fortran/58470
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
1626         gfc_is_finalizable.
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>
1636         PR fortran/57033
1637         * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
1638         dereference.
1640 2014-02-01  Paul Thomas  <pault@gcc.gnu.org>
1642         PR fortran/59906
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>
1652         PR fortran/59414
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>
1662         PR fortran/58007
1663         * module.c (read_module): Assert for component name correctness.
1665 2014-01-18  Mikael Morin  <mikael@gcc.gnu.org>
1667         PR fortran/58007
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
1675         argument.
1676         (read_module): Add forced pointer components association for derived
1677         type symbols.
1679 2014-01-12  Janus Weil  <janus@gcc.gnu.org>
1681         PR fortran/58026
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>
1691         PR fortran/58182
1692         * resolve.c (gfc_verify_binding_labels): Modify order of checks.
1694 2014-01-06  Janus Weil  <janus@gcc.gnu.org>
1696         PR fortran/59589
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>
1703         PR fortran/59023
1704         PR fortran/59662
1705         * resolve.c (resolve_global_procedure): Don't apply to c-binding
1706         procedures.
1707         (gfc_verify_binding_labels): Remove duplicate line.
1709 2014-01-04  Janus Weil  <janus@gcc.gnu.org>
1711         PR fortran/59547
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
1721         dates.
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>
1729         PR fortran/59654
1730         * resolve.c (resolve_typebound_procedures): No need to create the vtab
1731         here.
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.