2014-11-20 Robert Dewar <dewar@adacore.com>
[official-gcc.git] / gcc / fortran / ChangeLog
blobb8cf60128b74caaa9d5d8f4f8fb9aac407bdb408
1 2014-11-15  Tobias Burnus  <burnus@net-b.de>
3         * error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.
4         (gfc_fatal_error): Add; uses common diagnostics.
5         * array.c (gfc_match_array_ref, gfc_match_array_spec): Use
6         %< %>.
7         * check.c (check_co_collective, gfc_check_lcobound,
8         gfc_check_image_index, gfc_check_num_images,
9         gfc_check_this_image, gfc_check_ucobound): Ditto.
10         * cpp.c (gfc_cpp_post_options): Ditto.
11         (gfc_cpp_init_0, gfc_cpp_done): Change %s to %qs.
12         * gfc-diagnostic.def (DK_FATAL): Capitalize first letter.
13         * gfortran.h (gfc_fatal_error_1): Add.
14         * match.c (gfc_match_name, gfc_match_critical,
15         lock_unlock_statement, sync_statement): Add %< %>.
16         * module.c (bad_module, gfc_dump_module, gfc_use_module): Change
17         %s to %qs.
18         * options.c (gfc_handle_module_path_options, gfc_handle_fpe_option,
19         gfc_handle_coarray_option, gfc_handle_runtime_check_option,
20         gfc_handle_option): Add %< %>.
21         * simplify.c (gfc_simplify_num_images): Ditto.
22         * trans-stmt.c (gfc_trans_sync): Use gfc_fatal_error_1.
23         * trans-array.c (gfc_conv_array_initializer): Ditto.
24         * trans-types.c (gfc_init_kinds): Use gfc_fatal_error instead
25         of fatal_error; add %< %> quotations.
27 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
28             Thomas Schwinge  <thomas@codesourcery.com>
29             Ilya Verbin  <ilya.verbin@intel.com>
30             Andrey Turetskiy  <andrey.turetskiy@intel.com>
32         * Make-lang.in (fortran.install-common): Do not install for the offload
33         compiler.
35 2014-11-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37         PR fortran/44054
38         * gfortran.h (warn_use_without_only): Remove.
39         (gfc_diagnostics_finish): Declare.
40         * error.c: Include tree-diagnostics.h
41         (gfc_format_decoder): New.
42         (gfc_diagnostics_init): Use gfc_format_decoder. Set default caret
43         char.
44         (gfc_diagnostics_finish): Restore tree diagnostics defaults, but
45         keep gfc_diagnostics_starter and finalizer. Restore default caret.
46         * options.c: Remove all uses of warn_use_without_only.
47         * lang.opt (Wuse-without-only): Add Var.
48         * f95-lang.c (gfc_be_parse_file): Call gfc_diagnostics_finish.
49         * module.c (gfc_use_module): Use gfc_warning_now_2.
50         * parse.c (decode_statement): Likewise.
51         (decode_gcc_attribute): Likewise.
52         (next_free): Likewise.
53         (next_fixed): Likewise.
55 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
57         PR fortran/63701
58         * trans-expr.c (gfc_get_tree_for_caf_expr): Initialise found to false.
60 2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>
62         PR libfortran/47007
63         PR libfortran/61847
64         * gfortran.texi: Add note about locale issues to thread-safety
65         section.
67 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
69         * f95-lang.c (gfc_init_builtin_functions): Use type index 2 for
70         scalbn, scalbnl and scalbnf.
71         * mathbuiltins.def (JN, YN): Use type index 5.
73 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
75         * trans-types.c, trans-types.h: Remove redundant enum from
76         machine_mode.
78 2014-10-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
80         PR fortran/44054
81         * gfortran.h (gfc_warning_cmdline): Rename as gfc_warning_now_2.
82         (gfc_error_cmdline): Rename as gfc_error_now_2.
83         * error.c (gfc_diagnostic_build_locus_prefix): Remove trailing space.
84         (gfc_diagnostic_starter): Add space between locus and prefix.
85         (gfc_warning_now_2): Renamed from gfc_warning_cmdline.
86         (gfc_error_now_2): Renamed from gfc_error_cmdline.
87         * scanner.c (add_path_to_list): Use gfc_warning_now_2.
88         (load_line): Likewise.
89         (load_file): Likewise.
90         * options.c (gfc_post_options): Update all renamed functions.
92 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
94         * f95-lang.c: Adjust include files.
95         * trans-decl.c: Ditto.
97 2014-10-24  Tobias Burnus  <burnus@net-b.de>
99         * check.c (check_co_collective): Reject coindexed A args.
100         (gfc_check_co_reduce): Add OPERATOR checks.
101         * gfortran.texi (_gfortran_caf_co_broadcast, _gfortran_caf_co_max,
102         _gfortran_caf_co_min, _gfortran_caf_co_sum,
103         _gfortran_caf_co_reduce): Add ABI documentation.
104         * intrinsic.texi (CO_REDUCE): Document intrinsic.
105         (DPROD): Returns double not single precision.
106         * trans-decl.c (gfor_fndecl_co_reduce): New global var.
107         (gfc_build_builtin_function_decls): Init it.
108         * trans.h (gfor_fndecl_co_reduce): Declare it.
109         * trans-intrinsic.c (conv_co_collective,
110         gfc_conv_intrinsic_subroutine): Handle CO_REDUCE.
112 2014-10-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
114         PR fortran/48979
115         * trans-const.c (gfc_build_nan): New function.
116         * trans-const.h (gfc_build_nan): New prototype.
117         * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Handle special
118         values.
119         (gfc_conv_intrinsic_minmaxval): Use gfc_build_nan.
120         (gfc_conv_intrinsic_fraction): Handle special values.
121         (gfc_conv_intrinsic_spacing): Likewise.
122         (gfc_conv_intrinsic_rrspacing): Likewise.
123         (gfc_conv_intrinsic_set_exponent): Likewise.
125 2014-10-18  Paul Thomas  <pault@gcc.gnu.org>
127         PR fortran/63553
128         * resolve.c (resolve_ordinary_assign): Add data component to
129         rvalue expression for class to type assignment.
131 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
133         * f95-lang.c: Adjust include files.
134         * trans-decl.c: Likewise.
136 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
138         * trans-decl.c, trans.c, trans.h: Use hash_table instead of hashtab.
140 2014-10-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
142         PR fortran/48979
143         * simplify.c (gfc_simplify_atan): Use mpfr_zero_p to check for zeros.
144         (gfc_simplify_log): Likewise.
145         (gfc_simplify_scale): Likewise.
146         (gfc_simplify_exponent): Handle infinities and NaNs.
147         (gfc_simplify_fraction): Handle infinities.
148         (gfc_simplify_rrspacing): Handle signed zeros and NaNs.
149         (gfc_simplify_set_exponent): Handle infinities and NaNs.
150         (gfc_simplify_spacing): Handle zeros, infinities and NaNs.
152 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
154         PR fortran/59488
155         * trans-openmp.c (gfc_omp_predetermined_sharing): Return
156         OMP_CLAUSE_DEFAULT_SHARED for parameters or vtables.
158 2014-10-10  Tobias Burnus  <burnus@net-b.de>
160         * gfortran.h (gfc_set_implicit_none): Update prototype.
161         * symbol.c (gfc_set_implicit_none): Take and
162         use error location. Move diagnostic from here to ...
163         * decl.c (gfc_match_implicit_none): ... here. And
164         update call. Handle empty implicit-none-spec.
165         (gfc_match_implicit): Handle statement-separator ";".
167 2014-10-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
169         * f95-lang.c (gfc_init_builtin_functions): Add more floating-point
170         built-ins.
171         * mathbuiltins.def (OTHER_BUILTIN): Define built-ins for logb,
172         remainder, rint and signbit.
173         * trans-decl.c (save_fp_state, restore_fp_state): Move to
174         trans-intrinsic.c
175         (gfc_generate_function_code): Use new names for these two functions.
176         * trans-expr.c (gfc_conv_function_expr): Catch IEEE functions to
177         emit code from the front-end.
178         * trans-intrinsic.c (gfc_save_fp_state, gfc_restore_fp_state,
179         conv_ieee_function_args, conv_intrinsic_ieee_builtin,
180         conv_intrinsic_ieee_is_normal, conv_intrinsic_ieee_is_negative,
181         conv_intrinsic_ieee_logb_rint, conv_intrinsic_ieee_rem,
182         conv_intrinsic_ieee_next_after, conv_intrinsic_ieee_scalb,
183         conv_intrinsic_ieee_copy_sign, gfc_conv_ieee_arithmetic_function):
184         New functions.
185         * trans.h (gfc_conv_ieee_arithmetic_function,
186         gfc_save_fp_state, gfc_restore_fp_state): New prototypes.
188 2014-10-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
190         PR fortran/44054
191         PR fortran/54687
192         * gfortran.h (gfc_warning_cmdline): Add overload that takes an
193         option.
194         (gfc_error_cmdline): Declare.
195         * error.c (gfc_warning_cmdline): New overload that takes an option.
196         (gfc_error_cmdline): New.
197         * lang.opt (Wmissing-include-dirs): New.
198         * scanner.c (add_path_to_list): Use the new functions.
199         (load_file): Likewise.
200         * options.c (gfc_init_options): Wmissing-include-dirs is enabled
201         by default in Fortran.
202         (gfc_handle_option): Accept automatically handled options.
204 2014-10-06  Tobias Burnus  <burnus@net-b.de>
206         * libgfortran.h (GFC_STD_F2015): Add.
207         * decl.c (gfc_match_implicit_none): Handle spec list.
208         (gfc_match_implicit): Move double intrinsic warning here.
209         * gfortran.h (gfc_namespace): Add has_implicit_none_export:1.
210         (gfc_set_implicit_none): Update interface.
211         * interface.c (gfc_procedure_use): Add implicit-none external
212         error check.
213         * parse.c (accept_statement): Remove call.
214         (verify_st_order): Permit that external-implict-none follows
215         implicit statement.
216         * symbol.c (gfc_set_implicit_none): Handle external/type
217         implicit none.
219 2014-10-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
221         PR fortran/36534
222         * resolve.c (resolve_fl_procedure): Clean up obsolescence warning.
224 2014-09-25  Tobias Burnus  <burnus@net-b.de>
226         * check.c (check_co_collective): Renamed from check_co_minmaxsum,
227         handle co_reduce.
228         (gfc_check_co_minmax, gfc_check_co_sum): Update call.
229         (gfc_check_co_broadcast, gfc_check_co_reduce): New.
230         * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
231         GFC_ISYM_CO_REDUCE.
232         * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
233         * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
234         proto types.
235         * intrinsic.texi (CO_BROADCAST): Add.
236         * trans.h (gfor_fndecl_co_broadcast): New.
237         * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
238         (gfc_build_builtin_function_decls): Add decl for it,
239         * trans-intrinsic.c (conv_co_collective): Renamed from
240         conv_co_minmaxsum. Handle co_reduce.
241         (gfc_conv_intrinsic_subroutine): Handle co_reduce.
243 2014-09-23  Jakub Jelinek  <jakub@redhat.com>
245         PR fortran/63331
246         * trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL
247         instead of VAR_DECL for base_decl.
249 2014-09-21  Jan Hubicka  <hubicka@ucw.cz>
251         * openmp.c (omp_context): Rename to ...
252         (fortran_omp_context): ... this one.
254 2014-09-21  Dominique d'Humieres <dominiq@lps.ens.fr>
256         * resolve.c (resolve_fl_procedure): Remove duplicated lines.
258 2014-09-20  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
259             Tobias Burnus  <burnus@net-b.de>
261         * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with
262         generating temporary for value argument.
264 2014-09-20  Joost VandeVondele  <vondele@gcc.gnu.org>
266         * trans-expr.c (gfc_reset_vptr): Fix comment whitespace.
267         (gfc_conv_class_to_class): Likewise.
268         (gfc_conv_procedure_call): Likewise.
269         (arrayfunc_assign_needs_temporary): Likewise.
270         (realloc_lhs_loop_for_fcn_call): Likewise.
271         (gfc_trans_assignment_1): Likewise.
272         * trans-array.c (gfc_conv_array_ref): Likewise.
273         (gfc_array_allocate): Likewise.
274         (gfc_alloc_allocatable_for_assignment): Likewise.
275         * symbol.c (generate_isocbinding_symbol): Likewise.
276         * class.c (finalization_scalarizer): Likewise.
277         (finalizer_insert_packed_call): Likewise.
278         (generate_finalization_wrapper): Likewise.
279         (find_intrinsic_vtab): Likewise.
280         * decl.c (gfc_match_import): Likewise.
281         (match_procedure_decl): Likewise.
282         (gfc_match_subroutine): Likewise.
283         (gfc_match_bind_c): Likewise.
284         (gfc_match_volatile): Likewise.
285         * trans-common.c (create_common): Likewise.
286         * error.c (gfc_diagnostic_starter): Likewise.
287         * trans-stmt.c (gfc_trans_sync): Likewise.
288         (gfc_trans_critical): Likewise.
289         (gfc_trans_simple_do): Likewise.
290         (gfc_trans_do): Likewise.
291         (gfc_trans_where_assign): Likewise.
292         * expr.c (gfc_is_simply_contiguous): Likewise.
293         * module.c (unquote_string): Likewise.
294         * trans.c (gfc_add_finalizer_call): Likewise.
295         * trans-types.c (gfc_init_kinds): Likewise.
296         * scanner.c (preprocessor_line): Likewise.
297         * gfortranspec.c (lang_specific_driver): Likewise.
298         * frontend-passes.c (create_var): Likewise.
299         (cfe_expr_0): Likewise.
300         * resolve.c (check_host_association): Likewise.
301         (gfc_resolve_code): Likewise.
302         (resolve_fl_derived0): Likewise.
303         (resolve_symbol): Likewise.
304         * f95-lang.c (poplevel): Likewise.
305         * trans-decl.c (create_main_function): Likewise.
306         * trans-io.c (transfer_expr): Likewise.
307         * arith.c (gfc_arith_divide): Likewise.
308         * parse.c (resolve_all_program_units): Likewise.
309         * check.c (gfc_check_rank): Likewise.
310         (gfc_check_sizeof): Likewise.
311         (is_c_interoperable): Likewise.
312         * dependency.c (gfc_dep_difference): Likewise.
313         * primary.c (gfc_match_rvalue): Likewise.
314         * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise.
315         (conv_isocbinding_subroutine): Likewise.
316         * options.c (gfc_post_options): Likewise.
317         (gfc_handle_fpe_option): Likewise.
318         (gfc_get_option_string): Likewise.
319         * simplify.c (simplify_transformation_to_scalar): Likewise.
320         (gfc_simplify_spread): Likewise.
322 2014-09-19  Joost VandeVondele  <vondele@gcc.gnu.org>
324         PR fortran/63152
325         * trans-array.c (gfc_trans_deferred_array): Only nullify allocatables.
327 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
329         * Make-lang.in (check_gfortran_parallelize): Change to just an upper
330         bound number.
332 2014-09-13  Tobias Burnus  <burnus@net-b.de>
334         PR fortran/63252
335         * trans-decl.c (gfc_build_builtin_function_decls): Fix
336         caf_unlock declaration.
338 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
340         * trans-types.c (gfc_init_kinds): Check
341         targetm.libgcc_floating_mode_supported_p for floating-point
342         modes.  Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
344 2014-09-05  Joost VandeVondele  <vondele@gcc.gnu.org>
346         PR fortran/62245
347         * intrinsic.texi (INT): clarify result.
349 2014-09-03  Fritz Reese  <Reese-Fritz@zai.com>
351         PR fortran/62174
352         * decl.c (variable_decl): Don't overwrite typespecs of Cray pointees
353         when matching a component declaration.
355 2014-09-02  Marek Polacek  <polacek@redhat.com>
357         PR fortran/62270
358         * interface.c (compare_parameter): Fix condition.
359         * trans-expr.c (gfc_conv_procedure_call): Likewise.
361 2014-08-31  Fritz Reese  <Reese-Fritz@zai.com>
363         PR fortran/62309
364         * resolve.c (apply_default_init_local): Don't treat variables
365         in RECURSIVE procedures as saved.
367 2014-08-31  Tobias Burnus  <burnus@net-b.de>
369         * trans-decl.c (gfc_build_builtin_function_decls): Add
370         may_require_tmp dummy argument.
371         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
372         conv_caf_send): Handle may_require_tmp argument.
373         (gfc_conv_intrinsic_function): Update call.
374         * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
375         _gfortran_caf_sendget): Update interface description.
377 2014-08-30  Tobias Burnus  <burnus@net-b.de>
379         * trans.h (gfc_caf_get_image_index,
380         gfc_get_caf_token_offset): New prototypes.
381         * trans-expr.c (gfc_caf_get_image_index): Moved from
382         trans-intrinsic.c and renamed.
383         (gfc_get_caf_token_offset) Ditto; support offset = NULL
384         with early return.
385         * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
386         Moved to trans-expr.
387         (gfc_conv_intrinsic_caf_get, conv_caf_send,
388         conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
389         conv_intrinsic_atomic_cas): Update callers.
391 2014-08-30  Tobias Burnus  <burnus@net-b.de>
393         PR fortran/62278
394         PR fortran/44735
395         PR fortran/60593
396         * dependency.c (gfc_check_dependency): Allow for optimizations
397         in the pointer-alias check.
399 2014-08-30  Janne Blomqvist  <jb@gcc.gnu.org>
401         * module.c (gfc_dump_module): Use ISO C remove() instead of POSIX
402         unlink().
404 2014-08-29  Jeffrey Armstrong  <jeffrey.armstrong@approximatrix.com>
406         PR fortran/62215
407         * module.c (gfc_dump_module): Unlink old module file before
408         renaming new one.
410 2014-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
412         * frontend_passes (expr_array):  Replace by vec template.
413         (expr_size):  Remove.
414         (expr_count):  Remove.
415         (doloop_list):  Replace by vec template.
416         (doloop_size):  Remove.
417         (gfc_run_passes):  Adjust to use of vec template.
418         (cfe_register_funcs):  Likewise.
419         (cfe_expr_0):  Likewise.
420         (doloop_code):  Likewise.
422 2014-08-22  Steven Bosscher  <steven@gcc.gnu.org>
424         PR fortran/62135
425         * resolve.c (resolve_select): Fix list traversal in case the
426         last element of the CASE list was dropped as unreachable code.
428 2014-08-22  Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
430         PR fortran/61234
431         * lang.opt (Wuse-without-only): New flag.
432         * gfortran.h (gfc_option_t): Add it.
433         * invoke.texi: Document it.
434         * module.c (gfc_use_module): Warn if needed.
435         * options.c (gfc_init_options,gfc_handle_option): Init accordingly.
437 2014-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
439         PR fortran/62214
440         * frontend-passes.c (optimize_binop_array_assignment):
441         Do not try to optimize the array assignment for string
442         concatenation.
444 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
446         PR fortran/44054
447         * error.c (gfc_diagnostic_build_locus_prefix): New function.
448         (gfc_diagnostic_starter): Follow Fortran FE diagnostics.
449         (gfc_diagnostic_finalizer): Do not call default finalizer.
451 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
453         PR fortran/44054
454         * error.c (gfc_diagnostic_finalizer): Call default finalizer.
456 2014-08-20  Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
458         * options.c (gfc_init_options_struct): assert that the frontend sets
459         flag_errno_math and flag_associative_math.
461 2014-08-17  Tobias Burnus  <burnus@net-b.de>
463         * resolve.c (gfc_resolve_finalizers): Ensure that parents are
464         resolved first.
466 2014-08-17  Tobias Burnus  <burnus@net-b.de>
468         * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
469         IOCALL_SET_NML_VAL.
470         (transfer_namelist_element): Use proper int type as argument.
472 2014-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
474         PR fortran/62142
475         * trans-expr.c (is_runtime_conformable):  Add NULL pointer checks.
477 2014-08-15  Tobias Burnus  <burnus@net-b.de>
479         * resolve.c (resolve_critical): Fix name mangling.
480         * trans-stmt.c (gfc_trans_critical): Fix lock call.
482 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
484         PR fortran/44054
485         * gfortran.h: Define GCC_DIAG_STYLE.
486         (gfc_diagnostics_init,gfc_warning_cmdline): Declare.
487         * trans-array.c: Include gfortran.h before diagnostic-core.h.
488         * trans-expr.c: Likewise.
489         * trans-openmp.c: Likewise.
490         * trans-const.c: Likewise.
491         * trans.c: Likewise.
492         * trans-types.c: Likewise.
493         * f95-lang.c: Likewise.
494         * trans-decl.c: Likewise.
495         * trans-io.c: Likewise.
496         * trans-intrinsic.c: Likewise.
497         * error.c: Include diagnostic.h and diagnostic-color.h.
498         (gfc_diagnostic_build_prefix): New.
499         (gfc_diagnostic_starter): New.
500         (gfc_diagnostic_finalizer): New.
501         (gfc_warning_cmdline): New.
502         (gfc_diagnostics_init): New.
503         * gfc-diagnostic.def: New.
504         * options.c (gfc_init_options): Call gfc_diagnostics_init.
505         (gfc_post_options): Use gfc_warning_cmdline.
507 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
508             Tobias Burnus  <burnus@net-b.de>
510         PR fortran/62131
511         * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
512         is allocatable, rather than whenever var->attr.allocatable.
514 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
516         PR fortran/62107
517         * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
518         or allocatable passed by reference.
519         (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
521 2014-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
523         PR fortran/62106
524         * gfortran.h (symbol_attribute):  Add fe_temp flag.
525         * frontend-passes.c (is_fe_temp):  New function.
526         (create_var):  Don't add a temporary for an already
527         created variable or for a constant.
528         (combine_ARRAY_constructor):  Remove special handling
529         for constants.
531 2014-08-14  Tobias Burnus  <burnus@net-b.de>
533         * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
534         (_gfortran_caf_register): Update for locking/critical.
535         (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
536         * resolve.c (resolve_critical): New.
537         (gfc_resolve_code): Call it.
538         * trans-decl.c (gfor_fndecl_caf_critical,
539         gfor_fndecl_caf_end_critical): Remove.
540         (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
541         (gfc_build_builtin_function_decls): Remove critical,
542         assign locking declarations.
543         (generate_coarray_sym_init): Handle locking and
544         critical variables.
545         * trans-stmt.c (gfc_trans_critical): Add calls to
546         lock/unlock libcaf functions.
547         * trans.h (gfc_coarray_type): Update locking, add
548         critical enum values.
549         (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
550         (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
552 2014-08-14  Tobias Burnus  <burnus@net-b.de>
554         * gfortran.texi (Coarray Programming): Add first ABI
555         documentation.
557 2014-08-14  Jakub Jelinek  <jakub@redhat.com>
559         PR fortran/62076
560         * openmp.c (gfc_match_omp_clauses): When failed to match
561         operator name, defined op name or name, set buffer to
562         empty string.  Don't call gfc_find_omp_udr if buffer is empty
563         string.
564         (gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
565         before calling gfc_free_omp_udr.
567 2014-08-11  Richard Biener  <rguenther@suse.de>
569         PR fortran/61950
570         * trans-expr.c (gfc_conv_structure): Initialize _size with
571         a value of proper type.
573 2014-08-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
575         PR fortran/61999
576         * simplify.c (gfc_simplify_dot_product): Convert types of
577         vectors before calculating the result.
579 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
581         * openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
583 2014-07-26  Tobias Burnus  <burnus@net-b.de>
585         PR fortran/61881
586         PR fortran/61888
587         PR fortran/57305
588         * intrinsic.texi (SIZEOF): Document changed behavior
589         for polymorphic arrays.
591 2014-07-26  Tobias Burnus  <burnus@net-b.de>
593         PR fortran/61881
594         PR fortran/61888
595         PR fortran/57305
596         * check.c (gfc_check_sizeof): Permit for assumed type if and
597         only if it has an array descriptor.
598         * intrinsic.c (do_ts29113_check): Permit SIZEOF.
599         (add_functions): SIZEOF is an Inquiry function.
600         * intrinsic.texi (SIZEOF): Add note that only contiguous
601         arrays are permitted.
602         * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
603         rank.
604         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
605         assumed type + array descriptor, CLASS and assumed rank.
606         (gfc_conv_intrinsic_storage_size): Handle class arrays.
608 2014-07-25  Tobias Burnus  <burnus@net-b.de>
610         * simplify.c (gfc_simplify_storage_size): Use proper
611         integer kind for the returned value.
613 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
615         * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
616         correct menu position to match sectioning.
618 2014-06-15  Tobias Burnus  <burnus@net-b.de>
620         * symbol.c (check_conflict): Add codimension conflict with
621         pointer; fix cray-pointee check.
623 2014-06-14  Tobias Burnus  <burnus@net-b.de>
625         * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
626         for kind mismatch with -fcoarray=lib.
628 2014-07-12  Paul Thomas  <pault@gcc.gnu.org>
630         PR fortran/61780
631         * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
632         that elements are skipped. This then correctly aligns 'reverse'
633         with the scalarizer loops.
635 2014-07-12  Tobias Burnus  <burnus@net-b.de>
637         PR fortran/61628
638         * trans-types.c (gfc_init_types): Fix data-type bug
639         with gfc_max_array_element_size.
641 2014-07-12  Tobias Burnus  <burnus@net-b.de>
643         * libgfortran.h (libcaf_atomic_codes): Add.
644         * trans-decl.c (gfor_fndecl_caf_atomic_def,
645         gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
646         gfor_fndecl_caf_atomic_op): New variables.
647         (gfc_build_builtin_function_decls): Initialize them.
648         * trans.h (gfor_fndecl_caf_atomic_def,
649         gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
650         gfor_fndecl_caf_atomic_op): New variables.
651         * trans-intrinsic.c (conv_intrinsic_atomic_op,
652         conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
653         Add library calls with -fcoarray=lib.
655 2014-07-12  Tobias Burnus  <burnus@net-b.de>
657         * check.c (gfc_check_atomic): Update for STAT=.
658         (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
659         (gfc_check_atomic_op, gfc_check_atomic_cas,
660         gfc_check_atomic_fetch_op): New.
661         * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
662         GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
663         GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
664         GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
665         * intrinsic.c (add_subroutines): Handle them.
666         * intrinsic.texi: Add documentation for them.
667         (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
668         (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
669         * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
670         gfc_check_atomic_fetch_op): New
671         prototypes.
672         * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
673         * iso-fortran-env.def: Add it.
674         * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
675         conv_intrinsic_atomic_ref; handle more atomics.
676         (conv_intrinsic_atomic_def): Handle STAT=.
677         (conv_intrinsic_atomic_cas): New.
678         (gfc_conv_intrinsic_subroutine): Handle new atomics.
680 2014-07-09  Bernd Schmidt  <bernds@codesourcery.com>
682         * trans-array.c (gfc_build_constant_array_constructor): Build a
683         static decl manually.
684         * trans-decl.c (create_main_function): Likewise.
686 2014-07-07  Paul Thomas  <pault@gcc.gnu.org>
688         PR fortran/61459
689         PR fortran/58883
690         * trans-expr.c (fcncall_realloc_result): Use the natural type
691         for the address expression of 'res_desc'.
693 2014-07-07  Gerald Pfeifer  <gerald@pfeifer.com>
695         * gfortran.texi (Fortran 2003 status): Fix grammar.
697 2014-07-04  Tobias Burnus  <burnus@net-b.de>
699         * resolve.c (resolve_assoc_var): Fix corank setting.
700         * trans-array.c (gfc_conv_descriptor_token): Change assert.
701         for select-type temporaries.
702         * trans-decl.c (generate_coarray_sym_init): Skip for
703         attr.select_type_temporary.
704         * trans-expr.c (gfc_conv_procedure_call): Fix for
705         select-type temporaries.
706         * trans-intrinsic.c (get_caf_token_offset): Ditto.
707         (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
708         the correct dtype.
709         * trans-types.h (gfc_get_dtype_rank_type): New.
710         * trans-types.c (gfc_get_dtype_rank_type): Ditto.
712 2014-07-03  Tobias Burnus  <burnus@net-b.de>
714         * scanner.c (skip_free_comments): Fix indentation.
716 2014-07-02  Jakub Jelinek  <jakub@redhat.com>
717             Fritz Reese  <Reese-Fritz@zai.com>
719         * decl.c (variable_decl): Reject old style initialization
720         for derived type components.
722 2014-06-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
724         PR fortran/36275
725         PR fortran/38839
726         * decl.c (check_bind_name_identifier): New function.
727         (gfc_match_bind_c): Match any constant expression as binding
728         label.
729         * match.c (gfc_match_name_C): Remove.
731 2014-06-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
733         PR fortran/29383
734         * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
735         * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
736         both C and Fortran.
737         * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
738         * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
739         * module.c (mio_symbol): Keep track of symbols which came from
740         intrinsic modules.
741         (gfc_use_module): Keep track of the IEEE modules.
742         * trans-decl.c (gfc_get_symbol_decl): Adjust code since
743         we have new intrinsic modules.
744         (gfc_build_builtin_function_decls): Build decls for
745         ieee_procedure_entry and ieee_procedure_exit.
746         (is_from_ieee_module, is_ieee_module_used, save_fp_state,
747         restore_fp_state): New functions.
748         (gfc_generate_function_code): Save and restore floating-point
749         state on procedure entry/exit, when IEEE modules are used.
750         * intrinsic.texi: Document the IEEE modules.
752 2014-06-25  Tobias Burnus  <burnus@net-b.de>
754         * interface.c (check_intents): Fix diagnostic with
755         coindexed coarrays.
757 2014-06-25  Tobias Burnus  <burnus@net-b.de>
759         * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
760         when assigning a coindexed RHS scalar to a noncoindexed LHS
761         array.
762         * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
763         for a noncoindexed scalar RHS.
765 2014-06-25  Tobias Burnus  <burnus@net-b.de>
767         * check.c (check_co_minmaxsum): Add definable check.
768         * expr.c (gfc_check_vardef_context): Fix context == NULL case.
769         * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
770         arguments.
771         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
772         temporary strings.
774 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
776         * trans.h (gfc_omp_clause_linear_ctor): New prototype.
777         * trans-openmp.c (gfc_omp_linear_clause_add_loop,
778         gfc_omp_clause_linear_ctor): New functions.
779         (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
780         correct type.  Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
781         * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
783 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
785         * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
786         of n->udr.
787         * f95-lang.c (gfc_init_builtin_functions): Initialize
788         BUILT_IN_ASSUME_ALIGNED.
789         * gfortran.h (gfc_omp_namelist): Change udr field type to
790         struct gfc_omp_namelist_udr.
791         (gfc_omp_namelist_udr): New type.
792         (gfc_get_omp_namelist_udr): Define.
793         (gfc_resolve_code): New prototype.
794         * match.c (gfc_free_omp_namelist): Free name->udr.
795         * module.c (intrinsics): Add INTRINSIC_USER.
796         (fix_mio_expr): Likewise.
797         (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
798         * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
799         (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
800         Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
801         (struct resolve_omp_udr_callback_data): New type.
802         (resolve_omp_udr_callback, resolve_omp_udr_callback2,
803         resolve_omp_udr_clause): New functions.
804         (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
805         here.
806         (omp_udr_callback): Don't check for implicitly declared functions
807         here.
808         (gfc_resolve_omp_udr): Don't call gfc_resolve.  Don't check for
809         implicitly declared subroutines here.
810         * resolve.c (resolve_function): If value.function.isym is non-NULL,
811         consider it already resolved.
812         (resolve_code): Renamed to ...
813         (gfc_resolve_code): ... this.  No longer static.
814         (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
815         Adjust callers.
816         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
817         by reference type (C_PTR) variables.
818         (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
819         (gfc_trans_omp_udr_expr): Remove.
820         (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
821         Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
822         expand it as assignment or subroutine call.  Don't initialize
823         value.function.isym.
825 2014-06-23  Tobias Burnus  <burnus@net-b.de>
827         * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
828         explicit-size arrays with -fcoarray=lib.
830 2014-06-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
832         PR fortran/33363
833         * invoke.texi: Don't mention nonexisting -fcase-lower option.
835 2014-06-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
837         PR fortran/61454
838         * expr.c (scalarize_intrinsic_call): Take care of optional
839         arguments.
841 2014-06-19  Tobias Burnus  <burnus@net-b.de>
843         * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
844         passing.
846 2014-06-18  Tobias Burnus  <burnus@net-b.de>
848         * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
849         * intrinsic.texi (OpenMP Modules): Ditto.
851 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
853         * cpp.c (cpp_define_builtins): Change _OPENMP macro to
854         201307.
855         * dump-parse-tree.c (show_omp_namelist): Add list_type
856         argument.  Adjust for rop being u.reduction_op now,
857         handle depend_op or map_op.
858         (show_omp_node): Adjust callers.  Print some new
859         OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
860         becoming a single OMP_LIST_DEPEND.
861         * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
862         function.
863         (gfc_attribute_table): New variable.
864         (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
865         * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
866         EXEC_OMP_* codes and new clauses.
867         * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
868         ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
869         ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
870         ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
871         ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
872         ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
873         ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
874         ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
875         ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
876         ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
877         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
878         ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
879         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
880         ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
881         ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
882         ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
883         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
884         ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
885         ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
886         ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
887         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
888         (symbol_attribute): Add omp_declare_target field.
889         (gfc_omp_depend_op, gfc_omp_map_op): New enums.
890         (gfc_omp_namelist): Replace rop field with union
891         containing reduction_op, depend_op and map_op.
892         (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
893         (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
894         (gfc_omp_clauses): Add num_teams, device, thread_limit,
895         dist_sched_kind, dist_chunk_size fields.
896         (gfc_common_head): Add omp_declare_target field.
897         (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
898         EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
899         EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
900         EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
901         EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
902         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
903         EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
904         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
905         EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
906         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
907         EXEC_OMP_TARGET_UPDATE.
908         (gfc_add_omp_declare_target): New prototype.
909         * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
910         gfc_match_omp_distribute_parallel_do,
911         gfc_match_omp_distribute_parallel_do_simd,
912         gfc_match_omp_distribute_simd, gfc_match_omp_target,
913         gfc_match_omp_target_data, gfc_match_omp_target_teams,
914         gfc_match_omp_target_teams_distribute,
915         gfc_match_omp_target_teams_distribute_parallel_do,
916         gfc_match_omp_target_teams_distribute_parallel_do_simd,
917         gfc_match_omp_target_teams_distribute_simd,
918         gfc_match_omp_target_update, gfc_match_omp_teams,
919         gfc_match_omp_teams_distribute,
920         gfc_match_omp_teams_distribute_parallel_do,
921         gfc_match_omp_teams_distribute_parallel_do_simd,
922         gfc_match_omp_teams_distribute_simd): New prototypes.
923         * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
924         (attr_bits): Likewise.
925         (mio_symbol_attribute): Handle omp_declare_target attribute.
926         (gfc_free_omp_clauses): Free num_teams, device, thread_limit
927         and dist_chunk_size expressions.
928         (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
929         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
930         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
931         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
932         OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
933         OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
934         OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
935         OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
936         OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
937         (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
938         OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
939         OMP_CLAUSE_DIST_SCHEDULE): Define.
940         (gfc_match_omp_clauses): Change mask parameter to unsigned int.
941         Adjust for rop becoming u.reduction_op.  Disallow inbranch with
942         notinbranch.  For depend clause, always create OMP_LIST_DEPEND
943         and fill in u.depend_op.  Handle num_teams, device, map,
944         to, from, thread_limit and dist_schedule clauses.
945         (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
946         OMP_CLAUSE_NOTINBRANCH.
947         (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
948         OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
949         OMP_DISTRIBUTE_CLAUSES): Define.
950         (match_omp): New function.
951         (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
952         gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
953         gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
954         gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
955         gfc_match_omp_task): Rewritten using match_omp.
956         (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
957         Diagnose if the directives are followed by unexpected junk.
958         (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
959         gfc_match_omp_distribute_parallel_do_simd,
960         gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
961         gfc_match_omp_target, gfc_match_omp_target_data,
962         gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
963         gfc_match_omp_target_teams_distribute_parallel_do,
964         gfc_match_omp_target_teams_distribute_parallel_do_simd,
965         gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
966         gfc_match_omp_teams, gfc_match_omp_teams_distribute,
967         gfc_match_omp_teams_distribute_parallel_do,
968         gfc_match_omp_teams_distribute_parallel_do_simd,
969         gfc_match_omp_teams_distrbute_simd): New functions.
970         * openmp.c (resolve_omp_clauses): Adjust for
971         OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND.  Handle
972         OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
973         dist_chunk_size and thread_limit.
974         (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
975         ctx.sharing_clauses.  Call gfc_resolve_omp_do_blocks for various
976         new EXEC_OMP_* codes.
977         (resolve_omp_do): Handle various new EXEC_OMP_* codes.
978         (gfc_resolve_omp_directive): Likewise.
979         (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
980         * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
981         offloading related directives.
982         (case_executable): Add ST_OMP_TARGET_UPDATE.
983         (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
984         ST_OMP_DISTRIBUTE*.
985         (case_decl): Add ST_OMP_DECLARE_TARGET.
986         (gfc_ascii_statement): Handle new ST_OMP_* codes.
987         (parse_omp_do): Handle various new ST_OMP_* codes.
988         (parse_executable): Likewise.
989         * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
990         codes.
991         (resolve_code): Likewise.
992         (resolve_symbol): Change that !$OMP DECLARE TARGET variables
993         are saved.
994         * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
995         * symbol.c (check_conflict): Check omp_declare_target conflicts.
996         (gfc_add_omp_declare_target): New function.
997         (gfc_copy_attr): Copy omp_declare_target.
998         * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
999         * trans-common.c (build_common_decl): Add "omp declare target"
1000         attribute if needed.
1001         * trans-decl.c (add_attributes_to_decl): Likewise.
1002         * trans.h (gfc_omp_finish_clause): New prototype.
1003         * trans-openmp.c (gfc_omp_finish_clause): New function.
1004         (gfc_trans_omp_reduction_list): Adjust for rop being renamed
1005         to u.reduction_op.
1006         (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
1007         change to OMP_LIST_DEPEND and fix up depend handling.
1008         Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
1009         thread_limit, device, dist_chunk_size and dist_sched_kind.
1010         (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
1011         (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
1012         GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
1013         GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
1014         (gfc_split_omp_clauses): Handle splitting of clauses for new
1015         EXEC_OMP_* codes.
1016         (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
1017         callable for combined constructs.
1018         (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
1019         (gfc_trans_omp_distribute, gfc_trans_omp_teams,
1020         gfc_trans_omp_target, gfc_trans_omp_target_data,
1021         gfc_trans_omp_target_update): New functions.
1022         (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
1023         new EXEC_OMP_* codes.
1025 2014-06-18  Tobias Burnus  <burnus@net-b.de>
1027         PR fortran/61126
1028         * invoke.texi (-Wunused-parameter): Make clearer when
1029         -Wextra implies this option.
1031 2014-06-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1033         PR fortran/61126
1034         * options.c (gfc_handle_option): Remove call to
1035         handle_generated_option.
1037 2014-06-17  Tobias Burnus  <burnus@net-b.de>
1039         * check.c (gfc_check_atomic, gfc_check_atomic_def):
1040         Use argument for GFC_ISYM_CAF_GET.
1041         * resolve.c (resolve_variable): Enable CAF_GET insertion.
1042         (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
1043         (resolve_ordinary_assign): Enable CAF_SEND insertion.
1044         * trans-const.c (gfc_build_string_const,
1045         gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
1046         * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
1047         gfor_fndecl_caf_sendget): New global variables.
1048         (gfc_build_builtin_function_decls): Initialize them;
1049         update co_min/max/sum initialization.
1050         * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
1051         get_tree_for_caf_expr and removed static.
1052         (gfc_conv_procedure_call): Update call.
1053         * trans-intrinsic.c (caf_get_image_index,
1054         conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
1055         get_caf_token_offset, gfc_conv_intrinsic_caf_get,
1056         conv_caf_send): New.
1057         (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
1058         gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
1059         (conv_co_minmaxsum): Update call for remove unused vector
1060         subscript.
1061         (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
1062         Skip a CAF_GET of the argument.
1063         * trans-types.c (gfc_get_caf_vector_type): New.
1064         * trans-types.h (gfc_get_caf_vector_type): New.
1065         * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
1066         gfor_fndecl_caf_sendget): New global variables.
1067         (gfc_get_tree_for_caf_expr): New prototypes.
1069 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
1071         * trans-common.c (build_common_decl): Use
1072         set_decl_tls_model.
1073         * trans-decl.c (gfc_finish_var_decl): Likewise.
1074         (get_proc_pointer_decl): Likewise.
1076 2014-06-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1078         PR fortran/28484
1079         PR fortran/61429
1080         * check.c (gfc_check_system_clock): Improve checking of arguments.
1081         * intrinsic.texi: Update doc of SYSTEM_CLOCK.
1082         * iresolve.c (gfc_resolve_system_clock): Choose library function
1083         used depending on argument kinds.
1084         * trans-decl.c (gfc_build_intrinsic_function_decls): Build
1085         decls for system_clock_4 and system_clock_8.
1086         * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
1087         (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
1088         * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
1089         New variables.
1091 2014-06-12  Tobias Burnus  <burnus@net-b.de>
1093         * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
1094         * symbol.c (gfc_copy_formal_args_intr): Handle the case
1095         that absent optional arguments should be ignored.
1096         * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
1097         (gfc_conv_intrinsic_funcall,
1098         conv_generic_with_optional_char_arg): Update call.
1099         * resolve.c (gfc_resolve_intrinsic): Ditto.
1101 2014-06-10  Dominique d'Humieres <dominiq@lps.ens.fr>
1102             Mikael Morin <mikael@gcc.gnu.org>
1104         PR fortran/41936
1105         * trans-expr.c (gfc_conv_expr_reference): Deallocate array
1106         components.
1108 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
1110         PR fortran/60928
1111         * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
1112         like -fopenmp.
1113         * openmp.c (resolve_omp_clauses): Remove allocatable components
1114         diagnostics.  Add associate-name and intent(in) pointer
1115         diagnostics for various clauses, diagnose procedure pointers in
1116         reduction clause.
1117         * parse.c (match_word_omp_simd): New function.
1118         (matchs, matcho): New macros.
1119         (decode_omp_directive): Change match macros to either matchs
1120         or matcho.  Handle -fopenmp-simd.
1121         (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
1122         * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
1123         Likewise.
1124         * trans-array.c (get_full_array_size): Rename to...
1125         (gfc_full_array_size): ... this.  No longer static.
1126         (duplicate_allocatable): Adjust caller.  Add NO_MEMCPY argument
1127         and handle it.
1128         (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
1129         duplicate_allocatable callers.
1130         (gfc_duplicate_allocatable_nocopy): New function.
1131         (structure_alloc_comps): Adjust g*_full_array_size and
1132         duplicate_allocatable caller.
1133         * trans-array.h (gfc_full_array_size,
1134         gfc_duplicate_allocatable_nocopy): New prototypes.
1135         * trans-common.c (create_common): Call gfc_finish_decl_attrs.
1136         * trans-decl.c (gfc_finish_decl_attrs): New function.
1137         (gfc_finish_var_decl, create_function_arglist,
1138         gfc_get_fake_result_decl): Call it.
1139         (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
1140         don't allocate it again.
1141         (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
1142         associate-names.
1143         * trans.h (gfc_finish_decl_attrs): New prototype.
1144         (struct lang_decl): Add scalar_allocatable and scalar_pointer
1145         bitfields.
1146         (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
1147         GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
1148         GFC_DECL_ASSOCIATE_VAR_P): Define.
1149         (GFC_POINTER_TYPE_P): Remove.
1150         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
1151         GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
1152         GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
1153         (gfc_omp_predetermined_sharing): Associate-names are predetermined.
1154         (enum walk_alloc_comps): New.
1155         (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
1156         gfc_walk_alloc_comps): New functions.
1157         (gfc_omp_private_outer_ref): Return true for scalar allocatables or
1158         decls with allocatable components.
1159         (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
1160         gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
1161         allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
1162         allocatables and decls with allocatable components.
1163         (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
1164         arrays here.
1165         (gfc_trans_omp_reduction_list): Call
1166         gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
1167         (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
1168         (gfc_trans_omp_parallel_do_simd): Likewise.
1169         * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
1170         (gfc_get_derived_type): Call gfc_finish_decl_attrs.
1172 2014-06-09  Paul Thomas  <pault@gcc.gnu.org>
1174         PR fortran/61406
1175         * trans-stmt.c (trans_associate_var): Check that array
1176         constructors are constant for direct reference.
1178 2014-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1180         PR fortran/36096
1181         * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
1182         BESSEL_Y0, and BESSEL_Y1.
1184 2014-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1186         PR fortran/45187
1187         * trans-decl.c (gfc_create_module_variable): Don't create
1188         Cray-pointee decls twice.
1190 2014-06-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1192         * io.c (resolve_tag): Warn on non-default kind for NUMBER,
1193         NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
1195 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
1197         * dump-parse-tree.c (show_omp_namelist): Dump reduction
1198         id in each list item.
1199         (show_omp_node): Only handle OMP_LIST_REDUCTION, not
1200         OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST.  Don't
1201         dump reduction id here.
1202         * frontend-passes.c (dummy_code_callback): Renamed to...
1203         (gfc_dummy_code_callback): ... this.  No longer static.
1204         (optimize_reduction): Use gfc_dummy_code_callback instead of
1205         dummy_code_callback.
1206         * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
1207         (symbol_attribute): Add omp_udr_artificial_var bitfield.
1208         (gfc_omp_reduction_op): New enum.
1209         (gfc_omp_namelist): Add rop and udr fields.
1210         (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
1211         OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
1212         OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
1213         OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
1214         (OMP_LIST_REDUCTION): New.
1215         (gfc_omp_udr): New type.
1216         (gfc_get_omp_udr): Define.
1217         (gfc_symtree): Add n.omp_udr field.
1218         (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
1219         (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
1220         gfc_dummy_code_callback): New prototypes.
1221         * match.h (gfc_match_omp_declare_reduction): New prototype.
1222         * module.c (MOD_VERSION): Increase to 13.
1223         (omp_declare_reduction_stmt): New array.
1224         (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
1225         New functions.
1226         (read_module): Read OpenMP user defined reductions.
1227         (write_module): Write OpenMP user defined reductions.
1228         * openmp.c: Include arith.h.
1229         (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
1230         (gfc_match_omp_clauses): Handle user defined reductions.
1231         Store reduction kind into gfc_omp_namelist instead of using
1232         several OMP_LIST_* entries.
1233         (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
1234         gfc_match_omp_declare_reduction): New functions.
1235         (resolve_omp_clauses): Adjust for reduction clauses being only
1236         in OMP_LIST_REDUCTION list.  Diagnose missing UDRs.
1237         (struct omp_udr_callback_data): New type.
1238         (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
1239         functions.
1240         * parse.c (decode_omp_directive): Handle !$omp declare reduction.
1241         (case_decl): Add ST_OMP_DECLARE_REDUCTION.
1242         (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
1243         * resolve.c (resolve_fl_variable): Allow len=: or len=* on
1244         sym->attr.omp_udr_artificial_var symbols.
1245         (resolve_types): Call gfc_resolve_omp_udrs.
1246         * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
1247         use parent ns instead of gfc_current_ns.
1248         (gfc_get_sym_tree): Don't insert symbols into
1249         namespaces with omp_udr_ns set.
1250         (free_omp_udr_tree): New function.
1251         (gfc_free_namespace): Call it.
1252         * trans-openmp.c (struct omp_udr_find_orig_data): New type.
1253         (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
1254         (gfc_trans_omp_array_reduction): Renamed to...
1255         (gfc_trans_omp_array_reduction_or_udr): ... this.  Remove SYM
1256         argument, instead pass gfc_omp_namelist pointer N.  Handle
1257         user defined reductions.
1258         (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
1259         Handle user defined reductions and reduction ops in gfc_omp_namelist.
1260         (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
1261         list.
1262         (gfc_split_omp_clauses): Likewise.
1264 2014-06-05  Richard Biener  <rguenther@suse.de>
1266         PR fortran/61418
1267         * gfortranspec.c (spec_file): Remove.
1268         (find_spec_file): Likewise.
1269         (lang_specific_driver): Do not look for specs file in -L
1270         or append -specs command line argument.
1271         (lang_specific_pre_link): Always %:include libgfortran.spec.
1273 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
1275         * fortran/trans.c (trans_runtime_error_vararg): Call
1276         fold_build_call_array_loc instead of fold_builtin_call_array.
1278 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
1280         * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
1281         arguments to caf_init.
1283 2014-05-26  Tobias Burnus  <burnus@net-b.de>
1285         * gfortran.texi (Project Status): Fix broken link.
1287 2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
1289         PR libfortran/61310
1290         * intrinsics.texi (CTIME): Remove mention of locale-dependent
1291         behavior.
1293 2014-05-26  Tobias Burnus  <burnus@net-b.de>
1295         PR fortran/55117
1296         * trans-io.c (nml_full_name, transfer_namelist_element): Insert
1297         a '+' rather then '%' to differentiate namelist variable names
1298         that are based on extended derived types.
1300 2014-05-25  Tobias Burnus  <burnus@net-b.de>
1302         * check.c (gfc_check_num_images): New.
1303         (gfc_check_this_image): Handle distance argument.
1304         * intrinsic.c (add_functions): Update this_image and num_images
1305         for new distance and failed arguments.
1306         * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
1307         arguments.
1308         * intrinsic.h (gfc_check_num_images): New.
1309         (gfc_check_this_image, gfc_simplify_num_images,
1310         gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
1311         * iresolve.c (gfc_resolve_this_image): Handle distance argument.
1312         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1313         Handle new arguments.
1314         * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
1315         (gfc_conv_intrinsic_function): Update trans_num_images call.
1317 2014-05-23  Tobias Burnus  <burnus@net-b.de>
1319         * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
1320         * gfortran.texi: Ditto.
1322 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
1324         * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
1325         (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
1326         (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
1327         * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
1329 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
1331         * f95-lang.c (pushlevel): Adjust.
1332         * trans-decl.c (gfc_allocate_lang_decl): Adjust.
1333         (gfc_find_module): Likewise.
1334         * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1335         (gfc_get_array_type_bounds): Likewise.
1336         (gfc_nonrestricted_type): Likewise.
1337         * trans.h: Don't use variable_size gty attribute.
1339 2014-05-17  Dominique d'Humieres <dominiq@lps.ens.fr>
1341         * check.c (gfc_check_fn_rc2008): move "argument" to the right
1342         place.
1344 2014-05-12  Tobias Burnus  <burnus@net-b.de>
1346         PR fortran/60127
1347         * openmp.c (resolve_omp_do): Reject do concurrent loops.
1349 2014-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1351         PR fortran/60834
1352         * frontend-passes.c (in_assoc_list):  New variable.
1353         (optimize_namespace):  Initialize in_assoc_list
1354         (combine_array_constructor): Don't try to combine
1355         assoc lists.
1356         (gfc_code_walker):  Keep track of in_assoc_list.
1358 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
1360         * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
1361         ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1362         ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1363         ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1364         ST_OMP_DECLARE_SIMD.
1365         (gfc_omp_namelist): New typedef.
1366         (gfc_get_omp_namelist): Define.
1367         (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
1368         OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
1369         (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
1370         (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
1371         Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
1372         simdlen_expr fields.
1373         (gfc_omp_declare_simd): New typedef.
1374         (gfc_get_omp_declare_simd): Define.
1375         (gfc_namespace): Add omp_declare_simd field.
1376         (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1377         EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
1378         EXEC_OMP_PARALLEL_DO_SIMD.
1379         (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
1380         and GFC_OMP_ATOMIC_SWAP.
1381         (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
1382         (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
1383         gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
1384         prototypes.
1385         * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
1386         * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
1387         * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
1388         simdlen_expr.  Use gfc_free_omp_namelist instead of
1389         gfc_free_namelist.
1390         (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
1391         functions.
1392         (gfc_match_omp_variable_list): Add end_colon, headp and
1393         allow_sections arguments.  Handle parsing of array sections.
1394         Use *omp_namelist* instead of *namelist* data structure and
1395         functions/macros.  Allow termination at : character.
1396         (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
1397         OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
1398         OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
1399         (gfc_match_omp_clauses): Change first and needs_space variables
1400         into arguments with default values.  Parse inbranch, notinbranch,
1401         proc_bind, safelen, simdlen, uniform, linear, aligned and
1402         depend clauses.
1403         (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
1404         (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
1405         (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
1406         (gfc_match_omp_do_simd): New function.
1407         (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
1408         data structure and functions/macros.
1409         (gfc_match_omp_simd, gfc_match_omp_declare_simd,
1410         gfc_match_omp_parallel_do_simd): New functions.
1411         (gfc_match_omp_atomic): Handle seq_cst clause.  Handle atomic swap.
1412         (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
1413         gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
1414         functions.
1415         (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
1416         Use *omp_namelist* instead of *namelist* data structure and
1417         functions/macros.  Resolve uniform, aligned, linear, depend,
1418         safelen and simdlen clauses.
1419         (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
1420         addition, recognize atomic swap.
1421         (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
1422         of gfc_namelist.  Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
1423         EXEC_OMP_PARALLEL_DO.
1424         (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
1425         data structure and functions/macros.
1426         (resolve_omp_do): Likewise.  Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1427         EXEC_OMP_PARALLEL_DO_SIMD.
1428         (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1429         EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL.  Adjust
1430         resolve_omp_clauses caller.
1431         (gfc_resolve_omp_declare_simd): New function.
1432         * parse.c (decode_omp_directive): Parse cancellation point, cancel,
1433         declare simd, end do simd, end simd, end parallel do simd,
1434         end taskgroup, parallel do simd, simd and taskgroup directives.
1435         (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
1436         (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
1437         ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
1438         (case_decl): Add ST_OMP_DECLARE_SIMD.
1439         (gfc_ascii_statement): Handle ST_OMP_CANCEL,
1440         ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1441         ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1442         ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1443         ST_OMP_DECLARE_SIMD.
1444         (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
1445         ST_OMP_PARALLEL_DO_SIMD.
1446         (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
1447         (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
1448         ST_OMP_PARALLEL_DO_SIMD.
1449         (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
1450         ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
1451         * trans-decl.c (gfc_get_extern_function_decl,
1452         gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
1453         needed.
1454         * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
1455         EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD.  Walk
1456         safelen_expr and simdlen_expr.  Walk expressions in gfc_omp_namelist
1457         of depend, aligned and linear clauses.
1458         * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
1459         and EXEC_OMP_PARALLEL_DO_SIMD.
1460         (gfc_free_omp_namelist): New function.
1461         * dump-parse-tree.c (show_namelist): Removed.
1462         (show_omp_namelist): New function.
1463         (show_omp_node): Handle OpenMP 4.0 additions.
1464         (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1465         EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
1466         EXEC_OMP_TASKGROUP.
1467         * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
1468         gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
1469         gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
1470         gfc_match_omp_taskgroup): New prototypes.
1471         * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
1472         argument, handle it.  Allow current_function_decl to be NULL.
1473         (gfc_trans_omp_variable_list): Add declare_simd argument, pass
1474         it through to gfc_trans_omp_variable and disregard whether
1475         sym is referenced if declare_simd is true.  Work on gfc_omp_namelist
1476         instead of gfc_namelist.
1477         (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
1478         gfc_namelist.  Adjust gfc_trans_omp_variable caller.
1479         (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
1480         to gfc_trans_omp_variable{,_list} callers.  Work on gfc_omp_namelist
1481         instead of gfc_namelist.  Handle inbranch, notinbranch, safelen,
1482         simdlen, depend, uniform, linear, proc_bind and aligned clauses.
1483         Handle cancel kind.
1484         (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
1485         adjust for GFC_OMP_ATOMIC_* changes.
1486         (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
1487         functions.
1488         (gfc_trans_omp_do): Add op argument, handle simd translation into
1489         generic.
1490         (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
1491         GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
1492         GFC_OMP_MASK_PARALLEL): New.
1493         (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
1494         (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
1495         (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
1496         functions.
1497         (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
1498         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1499         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1500         Adjust gfc_trans_omp_do caller.
1501         (gfc_trans_omp_declare_simd): New function.
1502         * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
1503         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1504         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1505         For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
1506         gfc_free_namelist.
1507         * module.c (omp_declare_simd_clauses): New variable.
1508         (mio_omp_declare_simd): New function.
1509         (mio_symbol): Call it.
1510         * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
1511         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1512         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1513         * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
1514         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1515         (resolve_code): Handle EXEC_OMP_CANCEL,
1516         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1517         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1518         (resolve_types): Call gfc_resolve_omp_declare_simd.
1520 2014-05-11  Tobias Burnus  <burnus@net-b.de>
1522         * trans-intrinsic.c (gfc_build_builtin_function_decls):
1523         Change type of second argument to int.
1525 2014-05-09  Mike Stump  <mikestump@comcast.net>
1527         PR fortran/61109
1528         * trans-array.c (gfc_conv_array_initializer): Fix wide-int
1529         conversion bug.
1531 2014-05-08  Tobias Burnus  <burnus@net-b.de>
1533         * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
1534         and GFC_ISYM_CAF_SEND.
1535         * intrinsic.c (add_functions): Add only internally
1536         accessible caf_get and caf_send functions.
1537         * resolve.c (add_caf_get_intrinsic,
1538         remove_caf_get_intrinsic): New functions.
1539         (resolve_variable): Resolve expression rank and
1540         prepare for add_caf_get_intrinsic call.
1541         (gfc_resolve_expr): For variables, remove rank
1542         resolution.
1543         (resolve_ordinary_assign): Prepare call to
1544         GFC_ISYM_CAF_SEND.
1545         (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
1546         the LHS of an assignment.
1548 2014-05-08  Tobias Burnus  <burnus@net-b.de>
1550         * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
1552 2014-05-08  Tobias Burnus  <burnus@net-b.de>
1554         * check.c (check_co_minmaxsum, gfc_check_co_minmax,
1555         gfc_check_co_sum): New.
1556         * error.c (gfc_notify_std): Update -std=f2008ts.
1557         * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
1558         GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
1559         * intrinsic.h (gfc_check_co_minmax,
1560         gfc_check_co_sum): Declare.
1561         * intrinsic.c (add_subroutines): Add co_min, co_max
1562         and co_sum.
1563         (gfc_check_intrinsic_standard): Update text for
1564         -std=f2008ts.
1565         * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
1566         them.
1567         * invoke.texi (-std=f2008ts): Update wording.
1568         * trans.h (gfor_fndecl_co_max,
1569         gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1570         * trans-decl.c (gfor_fndecl_co_max,
1571         gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1572         (gfc_build_builtin_function_decls): Assign to it.
1573         * trans-intrinsic.c (conv_co_minmaxsum): New.
1574         (gfc_conv_intrinsic_subroutine): Call it.
1576 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
1577             Mike Stump  <mikestump@comcast.net>
1578             Richard Sandiford  <rdsandiford@googlemail.com>
1580         * target-memory.c: Include wide-int.h.
1581         (gfc_interpret_logical): Use wide-int interfaces.
1582         * trans-array.c: Include wide-int.h.
1583         (gfc_conv_array_initializer): Use wide-int interfaces.
1584         * trans-const.c: Include wide-int.h.
1585         (gfc_conv_string_init): Use wide-int interfaces.
1586         (gfc_conv_mpz_to_tree): Likewise.
1587         (gfc_conv_tree_to_mpz): Likewise.
1588         * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
1589         * trans-expr.c: Include wide-int.h.
1590         (gfc_conv_cst_int_power): Use wide-int interfaces.
1591         (gfc_string_to_single_character): Likewise.
1592         (gfc_optimize_len_trim): Likewise.
1593         * trans-intrinsic.c: Include wide-int.h.
1594         (trans_this_image): Use wide-int interfaces.
1595         (gfc_conv_intrinsic_bound): Likewise.
1596         (conv_intrinsic_cobound): Likewise.
1597         * trans-types.c (gfc_init_types): Likewise.
1598         (gfc_get_array_type_bounds): Pass an integer of the correct type
1599         instead of using integer_one_node.
1601 2014-04-30  Tobias Burnus  <burnus@net-b.de>
1603         * trans-decl.c (create_function_arglist): Add hidden coarray arguments
1604         also for polymorphic coarrays.
1605         * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
1606         also for polymorphic coarrays.
1608 2014-04-30  Tobias Burnus  <burnus@net-b.de>
1610         * resolve.c (resolve_function): Don't do
1611         assumed-size check for lcobound/ucobound.
1612         * trans-types.c (gfc_build_array_type): Only build an array
1613         descriptor with codimensions for allocatable coarrays.
1615 2014-04-30  Tobias Burnus  <burnus@net-b.de>
1617         * gfortran.h (gfc_init_coarray_decl): Remove.
1618         * parse.c (translate_all_program_units): Remove call to it.
1619         (gfc_parse_file): Update call.
1620         * trans.h (gfor_fndecl_caf_this_image,
1621         gfor_fndecl_caf_num_images): Add.
1622         (gfort_gvar_caf_num_images,
1623         gfort_gvar_caf_this_image): Remove.
1624         * trans-decl.c (gfor_fndecl_caf_this_image,
1625         gfor_fndecl_caf_num_images): Add.
1626         (gfort_gvar_caf_num_images,
1627         gfort_gvar_caf_this_image): Remove.
1628         (gfc_build_builtin_function_decls): Init new decl.
1629         (gfc_init_coarray_dec): Remove.
1630         (create_main_function): Change calls.
1631         * trans-intrinsic.c (trans_this_image, trans_image_index,
1632         conv_intrinsic_cobound): Generate call to new library function
1633         instead of to a static variable.
1634         * trans-stmt.c (gfc_trans_sync): Ditto.
1636 2014-04-30  Tobias Burnus  <burnus@net-b.de>
1638         * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
1639         and derived-type coarrays.
1641 2014-04-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1643         PR fortran/59604
1644         PR fortran/58003
1645         * gfortran.h (gfc_convert_mpz_to_signed):  Add prototype.
1646         * arith.c (gfc_int2int):  Convert number to signed if
1647         arithmetic overflow is not checked.
1648         * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
1649         size if range checking is in force.
1650         (convert_mpz_to_signed):  Make non-static, rename to
1651         (gfc_convert_mpz_to_signed).
1652         (simplify_dshift): Use gfc_convert_mpz_to_signed.
1653         (gfc_simplify_ibclr):  Likewise.
1654         (gfc_simplify_ibits):  Likewise.
1655         (gfc_simplify_ibset):  Likewise.
1656         (simplify_shift):  Likewise.
1657         (gfc_simplify_ishiftc):  Likewise.
1658         (gfc_simplify_maskr):  Likewise.
1659         (gfc_simplify_maskl):  Likewise.
1661 2014-04-22  Tobias Burnus  <burnus@net-b.de>
1663         PR fortran/60881
1664         * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1665         of scalar coarrays.
1667 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
1669         * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
1670         argument is enum machine_mode.
1672 2014-04-13  Paul Thomas  <pault@gcc.gnu.org>
1674         PR fortran/58085
1675         PR fortran/60717
1676         * trans.h: Add 'use_offset' bitfield to gfc_se.
1677         * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
1678         as a trigger to unconditionally recalculate the offset for
1679         array slices and constant arrays.
1680         trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
1681         trans-stmt.c (trans_associate_var): Ditto.
1682         (gfc_conv_procedure_call): Ditto.
1684 2014-04-11  Tobias Burnus  <burnus@net-b.de>
1686         PR fortran/58880
1687         PR fortran/60495
1688         * resolve.c (gfc_resolve_finalizers): Ensure that vtables
1689         and finalization wrappers are generated.
1691 2014-04-11  Janne Blomqvist  <jb@gcc.gnu.org>
1693         * intrinsic.texi (RANDOM_SEED): Improve example.
1695 2014-04-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1697         * class.c (gfc_build_class_symbol): Append "_t" to target class
1698         names to make the generated type names unique.
1700 2014-04-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1702         PR fortran/60191
1703         * trans-types.c (gfc_get_function_type): In case of recursion
1704         build a variadic function type with empty argument list instead of a
1705         stdarg-like function type with incomplete argument list.
1707 2014-04-04  Tobias Burnus  <burnus@net-b.de>
1709         * check.c (gfc_check_cmplx): Fix typo.
1711 2014-03-28  Mikael Morin  <mikael@gcc.gnu.org>
1712             Tobias Burnus  <burnus@net-b.de>
1714         PR fortran/60576
1715         * trans-expr.c (gfc_conv_derived_to_class): Avoid
1716         generation of out-of-bounds range expr.
1718 2014-03-28  Mikael Morin  <mikael@gcc.gnu.org>
1720         PR fortran/60677
1721         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1722         list buffer.
1724 2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1726         PR fortran/60522
1727         * frontend-passes.c (cfe_code):  Do not walk subtrees
1728         for WHERE.
1730 2014-03-27  Tobias Burnus  <burnus@net-b.de>
1732         PR fortran/58880
1733         * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1734         of nonpointers.
1736 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
1738         PR fortran/34928
1739         * fortran.texi: Document Volatile COMMON as not supported.
1741 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
1743         PR debug/60603
1744         * cpp.c (gfc_cpp_init): Restore cb_change_file call to
1745         <built-in>.
1747 2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1749         PR fortran/60148
1750         * gfortran.texi: Add description of namelist DELIM= behavior.
1752 2014-03-19  Tobias Burnus  <burnus@net-b.>
1754         PR fortran/60543
1755         * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
1756         * resolve.c (resolve_ordinary_assign): Ditto.
1758 2014-03-19  Tobias Burnus  <burnus@net-b.de>
1760         PR fortran/60543
1761         PR fortran/60283
1762         * gfortran.h (gfc_unset_implicit_pure): New prototype.
1763         * resolve.c (gfc_unset_implicit_pure): New.
1764         (resolve_structure_cons, resolve_function,
1765         pure_subroutine): Use it.
1766         * decl.c (match_old_style_init, gfc_match_data,
1767         match_pointer_init, variable_decl): Ditto.
1768         * expr.c (gfc_check_pointer_assign): Ditto.
1769         * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
1770         * io.c (match_vtag, gfc_match_open, gfc_match_close,
1771         match_filepos, gfc_match_inquire, gfc_match_print,
1772         gfc_match_wait): Ditto.
1773         * match.c (gfc_match_critical, gfc_match_stopcode,
1774         lock_unlock_statement, sync_statement, gfc_match_allocate,
1775         gfc_match_deallocate): Ditto.
1776         * parse.c (decode_omp_directive): Ditto.
1777         * symbol.c (gfc_add_save): Ditto.
1779 2014-03-18  Janus Weil  <janus@gcc.gnu.org>
1781         PR fortran/55207
1782         PR fortran/60549
1783         * decl.c (match_attr_spec): Revert r208590.
1785 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
1787         PR ipa/58721
1788         * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
1789         if !optimize.
1791 2014-03-18  Tobias Burnus  <burnus@net-b.de>
1793         PR ipa/58721
1794         * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
1795         (gfc_trans_io_runtime_check): Remove.
1796         * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
1797         as argument, add predictor to block.
1798         (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
1799         gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
1800         * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
1801         (gfc_trans_runtime_check, gfc_allocate_using_malloc,
1802         gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
1803         branch predictor.
1804         * trans-expr.c (gfc_conv_procedure_call): Ditto.
1805         * trans-stmt.c (gfc_trans_allocate): Ditto.
1806         * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
1808 2014-03-15  Janus Weil  <janus@gcc.gnu.org>
1810         PR fortran/55207
1811         * decl.c (match_attr_spec): Variables in the main program implicitly
1812         get the SAVE attribute in Fortran 2008.
1814 2014-03-14  Mikael Morin  <mikael@gcc.gnu.org>
1816         PR fortran/60392
1817         * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
1818         if it has transposed dimensions.
1820 2014-03-08  Tobias Burnus  <burnus@net-b.de>
1822         PR fortran/60447
1823         * f95-lang.c (gfc_init): Return false when only
1824         preprocessing.
1825         * options.c (gfc_post_options): Ditto.
1827 2014-03-08  Tobias Burnus  <burnus@net-b.de>
1829         * gfortran.texi (Fortran 2003 Status): Mention finalization,
1830         deferred-length character support and input rounding.
1831         (Fortran 2008 Status): Mention that at termination
1832         signalling exceptions are shown.
1834 2014-03-06  Paul Thomas  <pault@gcc.gnu.org>
1835             Janus Weil  <janus@gcc.gnu.org>
1837         PR fortran/51976
1838         * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
1839         * primary.c (build_actual_constructor): It is not an error if
1840         a missing component has the deferred_parameter attribute;
1841         equally, if one is given a value, it is an error.
1842         * resolve.c (resolve_fl_derived0): Remove error for deferred
1843         character length components.  Add the hidden string length
1844         field to the structure. Give it the deferred_parameter
1845         attribute.
1846         * trans-array.c (duplicate_allocatable): Add a strlen field
1847         which is used as the element size if it is non-null.
1848         (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
1849         NULL to the new argument in duplicate_allocatable.
1850         (structure_alloc_comps): Set the hidden string length as
1851         appropriate. Use it in calls to duplicate_allocatable.
1852         (gfc_alloc_allocatable_for_assignment): When a deferred length
1853         backend declaration is variable, use that; otherwise use the
1854         string length from the expression evaluation.
1855         * trans-expr.c (gfc_conv_component_ref): If this is a deferred
1856         character length component, the string length should have the
1857         value of the hidden string length field.
1858         (gfc_trans_subcomponent_assign): Set the hidden string length
1859         field for deferred character length components.  Allocate the
1860         necessary memory for the string.
1861         (alloc_scalar_allocatable_for_assignment): Same change as in
1862         gfc_alloc_allocatable_for_assignment above.
1863         * trans-stmt.c (gfc_trans_allocate): Likewise.
1864         * trans-intrinsic (size_of_string_in_bytes): Make non-static.
1865         * trans-types.c (gfc_get_derived_type): Set the tree type for
1866         a deferred character length component.
1867         * trans.c (gfc_deferred_strlen): New function.
1868         * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
1870 2014-03-01  Mikael Morin  <mikael@gcc.gnu.org>
1872         PR fortran/60341
1873         * frontend-passes.c (optimize_comparison): Guard two union accesses
1874         with the corresponding tag checks.
1876 2014-02-28  Janus Weil  <janus@gcc.gnu.org>
1878         PR fortran/60359
1879         * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
1880         procedure for characters.
1882 2014-02-21  Janus Weil  <janus@gcc.gnu.org>
1884         PR fortran/60302
1885         * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
1886         is successful.
1888 2014-02-21  Janus Weil  <janus@gcc.gnu.org>
1890         PR fortran/60234
1891         * gfortran.h (gfc_build_class_symbol): Removed argument.
1892         * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
1893         (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
1894         delayed now, except for unlimited polymorphics.
1895         (comp_is_finalizable): Procedure pointer components are not finalizable.
1896         * decl. (build_sym, build_struct, attr_decl1): Removed argument of
1897         'gfc_build_class_symbol'.
1898         * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
1899         Ditto.
1900         * symbol.c (gfc_set_default_type): Ditto.
1902 2014-02-19  Janus Weil  <janus@gcc.gnu.org>
1904         PR fortran/60232
1905         * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
1906         functions, which are used as procedure pointer target.
1908 2014-02-18  Tobias Burnus  <burnus@net-b.de>
1910         PR fortran/49397
1911         * expr.c (gfc_check_pointer_assign): Add check for
1912         F2008Cor2, C729.
1913         * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
1914         decl in a corner case.
1916 2014-02-18  Janus Weil  <janus@gcc.gnu.org>
1918         PR fortran/60231
1919         * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
1920         arguments to prevent ICE.
1922 2014-02-17  Janus Weil  <janus@gcc.gnu.org>
1924         PR fortran/55907
1925         * resolve.c (build_default_init_expr): Don't initialize character
1926         variable if -fno-automatic is given.
1928 2014-02-15  Mikael Morin  <mikael@gcc.gnu.org>
1930         PR fortran/59599
1931         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
1932         number of arguments.
1934 2014-02-11  Jakub Jelinek  <jakub@redhat.com>
1936         PR fortran/52370
1937         * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
1938         on decl if sym->attr.optional.
1940 2014-02-09  Paul Thomas  <pault@gcc.gnu.org>
1942         PR fortran/57522
1943         * resolve.c (resolve_assoc_var): Set the subref_array_pointer
1944         attribute for the 'associate-name' if necessary.
1945         * trans-stmt.c (trans_associate_var): If the 'associate-name'
1946         is a subref_array_pointer, assign the element size of the
1947         associate variable to 'span'.
1949 2014-02-09  Paul Thomas  <pault@gcc.gnu.org>
1951         PR fortran/59026
1952         * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
1953         actual argument to a formal argument with the value attribute
1954         in an elemental procedure.
1956 2014-02-08  Janus Weil  <janus@gcc.gnu.org>
1957             Mikael Morin <mikael.morin@gcc.gnu.org>
1959         PR fortran/58470
1960         * class.c (generate_finalization_wrapper): Assert that proc_tree has
1961         been set in gfc_resolve_finalizers.
1962         * resolve.c (resolve_fl_derived0): Remove unnecessary call to
1963         gfc_is_finalizable.
1965 2014-02-07  Benno Schulenberg  <bensberg@justemail.net>
1967         PR translation/52289
1968         * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
1969         in an error message.
1971 2014-02-02  Mikael Morin  <mikael@gcc.gnu.org>
1973         PR fortran/57033
1974         * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
1975         dereference.
1977 2014-02-01  Paul Thomas  <pault@gcc.gnu.org>
1979         PR fortran/59906
1980         * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
1981         SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
1982         pointer to the string is stored.
1983         * trans-expr.c (gfc_conv_expr_reference): Likewise, use
1984         gfc_conv_string_parameter to ensure that a pointer to is passed
1985         to the elemental function.
1987 2014-01-28  Paul Thomas  <pault@gcc.gnu.org>
1989         PR fortran/59414
1990         * trans-stmt.c (gfc_trans_allocate): Before the pointer
1991         assignment to transfer the source _vptr to a class allocate
1992         expression, the final class reference should be exposed. The
1993         tail that includes the _data and array references is stored.
1994         This reduced expression is transferred to 'lhs' and the _vptr
1995         added. Then the tail is restored to the allocate expression.
1997 2014-01-26  Mikael Morin  <mikael@gcc.gnu.org>
1999         PR fortran/58007
2000         * module.c (read_module): Assert for component name correctness.
2002 2014-01-18  Mikael Morin  <mikael@gcc.gnu.org>
2004         PR fortran/58007
2005         * module.c (MOD_VERSION): Bump.
2006         (fp2, find_pointer2): Remove.
2007         (mio_component_ref): Don't forcedfully set the containing derived type
2008         symbol for loading.  Remove unused argument.
2009         (mio_ref): Update caller
2010         (mio_symbol): Dump component list earlier.
2011         (skip_list): New argument nest_level.  Initialize level with the new
2012         argument.
2013         (read_module): Add forced pointer components association for derived
2014         type symbols.
2016 2014-01-12  Janus Weil  <janus@gcc.gnu.org>
2018         PR fortran/58026
2019         * decl.c (gfc_match_data_decl): Improve error recovery.
2021 2014-01-09  Tobias Burnus  <burnus@net-b.de>
2023         * cpp.c (gfc_cpp_handle_option): Add missing break.
2024         * trans-io.c (transfer_expr): Silence unused value warning.
2026 2014-01-08  Janus Weil  <janus@gcc.gnu.org>
2028         PR fortran/58182
2029         * resolve.c (gfc_verify_binding_labels): Modify order of checks.
2031 2014-01-06  Janus Weil  <janus@gcc.gnu.org>
2033         PR fortran/59589
2034         * class.c (comp_is_finalizable): New function to dermine if a given
2035         component is finalizable.
2036         (finalize_component, generate_finalization_wrapper): Use it.
2038 2014-01-06  Janus Weil  <janus@gcc.gnu.org>
2040         PR fortran/59023
2041         PR fortran/59662
2042         * resolve.c (resolve_global_procedure): Don't apply to c-binding
2043         procedures.
2044         (gfc_verify_binding_labels): Remove duplicate line.
2046 2014-01-04  Janus Weil  <janus@gcc.gnu.org>
2048         PR fortran/59547
2049         * class.c (add_proc_comp): Copy pure attribute.
2051 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2053         Update copyright years
2055 2014-01-02  Tobias Burnus  <burnus@net-b.de>
2057         * gfortranspec.c (lang_specific_driver): Update copyright notice
2058         dates.
2059         * gfc-internals.texi: Bump @copying's copyright year.
2060         * gfortran.texi: Ditto.
2061         * intrinsic.texi: Ditto.
2062         * invoke.texi: Ditto.
2064 2014-01-02  Janus Weil  <janus@gcc.gnu.org>
2066         PR fortran/59654
2067         * resolve.c (resolve_typebound_procedures): No need to create the vtab
2068         here.
2070 Copyright (C) 2014 Free Software Foundation, Inc.
2072 Copying and distribution of this file, with or without modification,
2073 are permitted in any medium without royalty provided the copyright
2074 notice and this notice are preserved.