PR c++/86342 - -Wdeprecated-copy and system headers.
[official-gcc.git] / gcc / fortran / ChangeLog-2014
blobb102e312e98543a4b03222117cc644367b18f95f
1 2014-12-31  Tobias Burnus  <burnus@net-b.de>
3         * match.c (gfc_match_stopcode): Permit error stop in pure
4         procedures with F2015.
6 2014-12-31  Uros Bizjak  <ubizjak@gmail.com>
8         * trans-array.c (trans_array_bound_check): Use xasprintf instead
9         of unchecked asprintf.
10         (gfc_conv_array_ref): Ditto.
11         (gfc_conv_ss_startstride): Ditto.
12         (gfc_trans_dummy_array_bias): Ditto.
13         (gfc_conv_array_parameter): Ditto.
14         * trans-decl.c (gfc_generate_function_code): Ditto.
15         * trans-expr.c (gfc_conv_substring): Ditto.
16         (gfc_conv_procedure_call): Ditto.
17         * trans-io.c (gfc_trans_io_runtime_check): Ditto.
18         (set_string): Ditto.
19         * trans.c (trans-runtime_error_vararg): Ditto.
21 2014-12-29  Janus Weil  <janus@gcc.gnu.org>
23         PR fortran/60357
24         * array.c (check_constructor): Ignore empty expressions.
25         * expr.c (check_alloc_comp_init): Check if constructor expression
26         exists.
27         * primary.c (build_actual_constructor): Warn for absent alloc-comp
28         initializers in pre-2008 standards.
30 2014-12-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
32         PR fortran/56867
33         * trans-array.c (gfc_conv_resolve_dependencies):  Also check
34         dependencies when there may be substrings of character arrays.
36 2014-12-27  Janus Weil  <janus@gcc.gnu.org>
38         PR fortran/54756
39         * resolve.c (resolve_formal_arglist): Reject polymorphic INTENT(OUT)
40         arguments of pure procedures.
42 2014-12-22  Tobias Burnus  <burnus@net-b.de>
44         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get, conv_caf_send):
45         Fix vector handling.
47 2014-12-22  Janus Weil  <janus@gcc.gnu.org>
49         PR fortran/63363
50         * check.c (gfc_check_kind): Reject polymorphic and non-data arguments.
52 2014-12-19  Janus Weil  <janus@gcc.gnu.org>
54         PR fortran/64209
55         * trans-expr.c (gfc_trans_class_array_init_assign): Check if _def_init
56         component is non-NULL.
57         (gfc_trans_class_init_assign): Ditto.
59 2014-12-17  Janus Weil  <janus@gcc.gnu.org>
61         PR fortran/64173
62         * trans-array.c (structure_alloc_comps): Do not nullify procedure
63         pointer components.
65 2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>
67         * trans-types.c (gfc_get_array_descr_info): Describe all Fortran arrays
68         with column major ordering.
70 2014-12-17  Tobias Burnus  <burnus@net-b.de>
72         PR fortran/54687
73         * gfortran.h (gfc_option_t): Remove flags which now
74         have a Var().
75         (init_local_real, gfc_fcoarray): Moved to ../flag-types.h.
76         * libgfortran.h (unit_convert): Add comment.
77         * lang.opt (flag-convert, flag-init_real, flag-coarray):
78         Add Var() and Enum().
79         * options.c (gfc_handle_coarray_option): Remove.
80         (gfc_init_options, gfc_post_options, gfc_handle_option):
81         Update for *.opt changes.
82         * array.c: Update for flag-variable name changes.
83         * check.c: Ditto.
84         * match.c: Ditto.
85         * resolve.c: Ditto.
86         * simplify.c: Ditto.
87         * trans-array.c: Ditto.
88         * trans-decl.c: Ditto.
89         * trans-expr.c: Ditto.
90         * trans-intrinsic.c: Ditto.
91         * trans-stmt.c: Ditto.
92         * trans-types.c: Ditto.
93         * trans.c: Ditto.
95 2014-12-16  Tobias Burnus  <burnus@net-b.de>
97         PR fortran/54687
98         * gfortran.h (gfc_option_t): Remove flags which now
99         have a Var().
100         * lang.opt (flag-aggressive_function_elimination,
101         flag-align_commons, flag-all_intrinsics,
102         flag-allow_leading_underscore, flag-automatic, flag-backslash,
103         flag-backtrace, flag-blas_matmul_limit, flag-cray_pointer,
104         flag-dollar_ok, flag-dump_fortran_original,
105         flag-dump_fortran_optimized, flag-external_blas, flag-f2c,
106         flag-implicit_none, flag-max_array_constructor,
107         flag-module_private, flag-pack_derived, flag-range_check,
108         flag-recursive, flag-repack_arrays, flag-sign_zero,
109         flag-underscoring): Add Var() and, where applicable, Enum().
110         * options.c (gfc_init_options, gfc_post_options,
111         gfc_handle_option): Update for *.opt changes.
112         * arith.c: Update for flag-variable name changes.
113         * array.c: Ditto.
114         * cpp.c: Ditto.
115         * decl.c: Ditto.
116         * expr.c: Ditto.
117         * f95-lang.c: Ditto.
118         * frontend-passes.c: Ditto.
119         * intrinsic.c: Ditto.
120         * io.c: Ditto.
121         * match.c: Ditto.
122         * module.c: Ditto.
123         * parse.c: Ditto.
124         * primary.c: Ditto.
125         * resolve.c: Ditto.
126         * scanner.c: Ditto.
127         * simplify.c: Ditto.
128         * symbol.c: Ditto.
129         * trans-array.c: Ditto.
130         * trans-common.c: Ditto.
131         * trans-decl.c: Ditto.
132         * trans-expr.c: Ditto.
133         * trans-intrinsic.c: Ditto.
134         * trans-openmp.c: Ditto.
135         * trans-types.c: Ditto.
137 2014-12-16  Tobias Burnus  <burnus@net-b.de>
139         PR fortran/54687
140         * lang.opt (fsecond-underscore, frecord-marker=8, frecord-marker=4,
141         frealloc-lhs, freal-8-real-16, freal-8-real-10, freal-8-real-4,
142         freal-4-real-16, freal-4-real-10, freal-4-real-8, fprotect-parens,
143         fstack-arrays, fmax-stack-var-size=, fmax-subrecord-length=,
144         ffrontend-optimize, ffree-line-length-, ffixed-line-length-,
145         finteger-4-integer-8, fdefault-real-8, fdefault-integer-8,
146         fdefault-double-8): Add Var() and Init().
147         * gfortran.h (gfc_option_t): Remove moved flags.
148         * options.c (gfc_init_options, gfc_handle_option): Ditto.
149         (gfc_post_options): Update for name change.
150         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Handle
151         flag-name change.
152         * frontend-passes.c (gfc_run_passes): Ditto.
153         * module.c (use_iso_fortran_env_module): Ditto.
154         * primary.c (match_integer_constant, match_real_constant): Ditto.
155         * resolve.c (resolve_ordinary_assign): Ditto.
156         * scanner.c (gfc_next_char_literal, load_line): Ditto.
157         * trans-array.c (gfc_trans_allocate_array_storage,
158         gfc_conv_resolve_dependencies, gfc_trans_auto_array_allocation,
159         gfc_conv_ss_startstride): Ditto.
160         * trans-common.c (gfc_sym_mangled_common_id): Ditto.
161         * trans-decl.c (gfc_sym_mangled_function_id,
162         create_main_function): Ditto.
163         * trans-expr.c (gfc_conv_expr_op, gfc_conv_procedure_call,
164         arrayfunc_assign_needs_temporary, gfc_trans_arrayfunc_assign,
165         gfc_trans_assignment_1): Ditto.
166         * trans-stmt.c (gfc_trans_allocate): Ditto.
167         * trans-types.c (gfc_init_kinds): Ditto.
169 2014-12-16  Janus Weil  <janus@gcc.gnu.org>
171         PR fortran/64244
172         * resolve.c (resolve_typebound_call): New argument to pass out the
173         non-overridable attribute of the specific procedure.
174         (resolve_typebound_subroutine): Get overridable flag from
175         resolve_typebound_call.
177 2014-12-15  Steven Bosscher  <steven@gcc.gnu.org>
179         PR fortran/61669
180         * gfortran.h (struct gfc_namespace): Add OLD_DATA field.
181         * decl.c (gfc_reject_data): New function.
182         * parse.c *use_modules): Record roll-back point.
183         (next_statement): Likewise.
184         (reject_statement): Roll back to last accepted DATA.
186 2014-12-15  Janus Weil  <janus@gcc.gnu.org>
188         PR fortran/63727
189         * resolve.c (resolve_actual_arglist): Check for elemental procedure
190         pointer components.
192 2014-12-15  Janus Weil  <janus@gcc.gnu.org>
194         PR fortran/63674
195         * resolve.c (check_pure_function): Rewording in error message.
197 2014-12-14  Janus Weil  <janus@gcc.gnu.org>
199         PR fortran/63674
200         * resolve.c (pure_function): Treat procedure-pointer components.
201         (check_pure_function): New function.
202         (resolve_function): Use it.
203         (pure_subroutine): Return a bool to indicate success and modify
204         arguments.
205         (resolve_generic_s0,resolve_specific_s0,resolve_unknown_s): Use return
206         value of 'pure_subroutine'.
207         (resolve_ppc_call): Call 'pure_subroutine'.
208         (resolve_expr_ppc): Call 'check_pure_function'.
210 2014-12-13  Tobias Burnus  <burnus@net-b.de>
211             Manuel López-Ibáñez  <manu@gcc.gnu.org>
213         * error.c (gfc_error): Add variant which takes a va_list.
214         (gfc_notify_std): Convert to common diagnostic.
215         * array.c: Use %qs, %<...%> in more gfc_error calls and
216         for gfc_notify_std.
217         * check.c: Ditto.
218         * data.c: Ditto.
219         * decl.c: Ditto.
220         * expr.c: Ditto.
221         * interface.c: Ditto.
222         * intrinsic.c: Ditto.
223         * io.c: Ditto.
224         * match.c: Ditto.
225         * matchexp.c: Ditto.
226         * module.c: Ditto.
227         * openmp.c: Ditto.
228         * parse.c: Ditto.
229         * primary.c: Ditto.
230         * resolve.c: Ditto.
231         * simplify.c: Ditto.
232         * symbol.c: Ditto.
233         * trans-common.c: Ditto.
234         * trans-intrinsic.c: Ditto.
236 2014-12-11  Richard Biener  <rguenther@suse.de>
238         PR tree-optimization/42108
239         * trans-stmt.c (gfc_trans_do): Execute the division computing
240         countm1 before the loop entry check.
242 2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
244         PR fortran/44054
245         * error.c (pp_error_buffer): New static variable.
246         (pp_warning_buffer): Make it a pointer.
247         (gfc_output_buffer_empty_p): New.
248         (gfc_error_init_1): Call gfc_buffer_error.
249         (gfc_buffer_error): Do not use pp_warning_buffer.flush_p as the
250         buffered_p flag.
251         (gfc_clear_warning): Likewise.
252         (gfc_warning_check): Call gfc_clear_warning. Only check the new
253         pp_warning_buffer if the old warning_buffer was empty. Call
254         diagnostic_action_after_output.
255         (gfc_error_1): Renamed from gfc_error.
256         (gfc_error): New.
257         (gfc_clear_error): Clear also pp_error_buffer.
258         (gfc_error_flag_test): Check also pp_error_buffer.
259         (gfc_error_check): Likewise. Only check the new pp_error_buffer
260         if the old error_buffer was empty.
261         (gfc_move_output_buffer_from_to): New.
262         (gfc_push_error): Use it here. Take also an output_buffer as argument.
263         (gfc_pop_error): Likewise.
264         (gfc_free_error): Likewise.
265         (gfc_diagnostics_init): Use XNEW and placement-new to init
266         pp_error_buffer and pp_warning_buffer. Set flush_p to false for
267         both pp_warning_buffer and pp_error_buffer.
269         * Update gfc_push_error, gfc_pop_error and gfc_free_error calls
270         according to the above changes.
271         * Use gfc_error_1 for all gfc_error calls that use multiple
272         locations.
273         * Use %qs instead of '%s' for many gfc_error calls.
275 2014-12-11  Tobias Burnus  <burnus@net-b.de>
276             Manuel López-Ibáñez  <manu@gcc.gnu.org>
278         * diagnostic.c (get_terminal_width): Renamed from getenv_columns,
279         removed static, and additionally use ioctl to get width.
280         (diagnostic_set_caret_max_width): Update call.
281         * diagnostic.h (get_terminal_width): Add prototype.
282         * opts.c (print_specific_help): Use it for x_help_columns.
283         * doc/invoke.texi (fdiagnostics-show-caret): Document how the
284         width is set.
286 2014-12-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
288         PR fortran/60718
289         * trans-expr.c (gfc_conv_procedure_call): Fix a strict aliasing
290         violation when passing a class object to a formal parameter which has
291         different pointer or allocatable attributes.
293 2014-12-06  Tobias Burnus  <burnus@net-b.de>
295         * error.c (gfc_error_check): Use bool not int.
296         * gfortran.h (gfc_error_check): Update prototype.
297         * match.c (gfc_match_if): Update call.
298         * parse.c (decode_statement, decode_omp_directive,
299         decode_gcc_attribute): Ditto.
301 2014-12-06  Tobias Burnus  <burnus@net-b.de>
302             Manuel López-Ibáñez  <manu@gcc.gnu.org>
304         * error.c (gfc_buffer_error, gfc_error_flag_test): Use bool not int.
305         (buffer_flag): Remove static variable.
306         (buffered_p): Add static variable.
307         (gfc_error_init_1): Call gfc_buffer_error.
308         (gfc_warning_1, gfc_warning, gfc_warning_now_1, gfc_error,
309         gfc_error_now_1): Update for static variable change.
310         * gfortran.h (gfc_buffer_error, gfc_error_flag_test): Update
311         prototype.
312         * parse.c (use_modules, decode_specification_statement,
313         next_fixed, next_statement, match_deferred_characteristics):
314         Update calls.
315         * decl.c (gfc_match_data_decl): Ditto.
316         * match.c (gfc_match_name): Ditto.
318 2014-12-05  Andre Vehreschild  <vehre@gmx.de>
320         PR fortran/60414
321         * interface.c (compare_parameter): Remove class argument rank
322         check short circuit.
324 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
326         * error.c (gfc_diagnostic_build_locus_prefix): Use
327         diagnostic_expand_location.
329 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
331         * scanner.c (gfc_next_char_literal): Use gfc_warning_now.
332         (load_file): Use the line length as the column hint for
333         linemap_line_start. Reserve a location for the highest column of
334         the line.
336 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
338         PR fortran/44054
339         * gfortran.h (gfc_warning): Now returns bool. Add overload that
340         accepts opt.
341         (gfc_warning_1): Declare.
342         * error.c
343         (pp_warning_buffer,warningcount_buffered,werrorcount_buffered): New.
344         (gfc_buffer_error): Set pp_warning_buffer.flush_p.
345         (gfc_clear_pp_buffer): New.
346         (gfc_warning_1): Renamed from gfc_warning.
347         (gfc_warning): Add three new overloads. One that takes just a
348         format string and ellipsis, another that takes also a warning
349         option, and another that takes also va_list instead of ellipsis.
350         (gfc_clear_warning): Clear pp_warning_buffer.
351         (gfc_warning_check): Flush pp_warning_buffer and update warning
352         and werror counters.
353         (gfc_diagnostics_init): Init pp_warning_buffer.
355         * Update all gfc_warning calls that do not use multiple
356         locations to use %qs and OPT_W*, otherwise use gfc_warning_1.
358 2014-12-02  Tobias Burnus  <burnus@net-b.de>
359             Manuel López-Ibáñez  <manu@gcc.gnu.org>
361         * error.c (warnings_not_errors): Use bool.
362         (gfc_clear_error): Update.
363         (gfc_get_errors): Ditto. Use bool argument.
364         * gfortran.h (gfc_get_errors): Update prototype.
365         * resolve.c (resolve_global_procedure): Update call.
367 2014-12-02  Richard Biener  <rguenther@suse.de>
369         PR fortran/64137
370         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Check
371         proper expressions type, use proper type for computing
372         -Huge - 1.
374 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
376         * trans-openmp.c (gfc_omp_finish_clause,
377         gfc_trans_omp_array_reduction_or_udr, gfc_trans_omp_atomic): Remove
378         NULL last argument from create_tmp_var_raw and create_tmp_var calls.
380 2014-11-29  Tobias Burnus  <burnus@net-b.de>
382         * scanner.c (skip_free_comments, gfc_gobble_whitespace): Use
383         gfc_warning_now instead of ..._now_1.
385 2014-11-29  Tobias Burnus  <burnus@net-b.de>
386             Manuel López-Ibáñez  <manu@gcc.gnu.org>
388         * lang.opt (Wtabs): Combine duplicated item into a single
389         one using || for LangEnabledBy.
391 2014-11-25  Tobias Burnus  <burnus@net-b.de>
393         * error.c (gfc_internal_error): Convert to common diagnostics.
394         * interface.c (gfc_find_sym_in_symtree): Use %qs.
395         * intrinsic.c (make_generic, gfc_check_intrinsic_standard,
396         gfc_convert_type_warn): Ditto.
397         * module.c (write_symbol): Ditto.
398         * symbol.c (gfc_get_default_type): Ditto; use fatal instead
399         of internal error.
400         * trans-array.c (gfc_walk_subexpr): Replace internal_error by
401         gfc_internal_error.
402         * trans-decl.c (gfc_get_symbol_decl,
403         (gfc_create_module_variable): Ditto. Use %qs.
404         * trans-intrinsic.c (gfc_conv_intrinsic_lib_function): Ditto.
405         * trans-io.c (transfer_expr): Ditto.
406         * trans-openmp.c (gfc_trans_omp_workshare): Ditto.
407         * trans.c (trans_code): Ditto.
409 2014-11-25  Tobias Burnus  <burnus@net-b.de>
411         * gfortran.h (gfc_option_t): Remove flags moved as Var to .opt.
412         (gfc_error_now_1): Renamed from gfc_error_now.
413         (gfc_error_now): Renamed from gfc_error_now_2.
414         (gfc_warning_now_1): Renamed from gfc_warning_now.
415         (gfc_warning_now): Renamed from gfc_warning_now_2.
416         * error.c (gfc_error_now_1): Renamed from gfc_error_now.
417         (gfc_error_now): Renamed from gfc_error_now_2.
418         (gfc_warning_now_1): Renamed from gfc_warning_now.
419         (gfc_warning_now): Renamed from gfc_warning_now_2.
420         (gfc_get_errors): Include common diagnostic in count.
421         * lang.opt (Wc-binding-type, Wconversion, Wconversion-extra,
422         Wintrinsics-std): Create a Var for those warnings.
423         * check.c (gfc_check_cmplx): Pass warning flag to
424         diagnostic function.
425         * decl.c (get_proc_name, gfc_verify_c_interop_param, build_sym
426         gfc_set_constant_character_len, verify_bind_c_sym): Ditto; use
427         _1 for old diagnostic, remove _2 for new diagnostic.
428         * expr.c (gfc_check_assign, gfc_check_vardef_context): Ditto.
429         * frontend-passes.c (doloop_code, do_function): Ditto.
430         * intrinsic.c (gfc_is_intrinsic, gfc_convert_type_warn): Ditto.
431         * match.c (gfc_match_common): Ditto.
432         * module.c (use_iso_fortran_env_module, gfc_use_module): Ditto.
433         * parse.c (decode_statement, decode_gcc_attribute, next_free,
434         next_fixed, gfc_check_do_variable): Ditto.
435         * resolve.c (resolve_common_vars, resolve_ordinary_assign):
436         Ditto.
437         * scanner.c (add_path_to_list, skip_free_comments,
438         gfc_next_char_literal, gfc_gobble_whitespace, load_line,
439         preprocessor_line, load_file): Ditto.
440         * symbol.c (gfc_set_default_type, verify_bind_c_derived_type):
441         Ditto.
442         * options.c (gfc_post_options): Ditto.
443         (gfc_init_options, set_Wall, gfc_handle_option): Ditto; remove
444         flags which now have a Var.
445         * invoke.texi (Wconversion-extra): Make clear that the flag
446         does not imply -Wconversion.
448 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
450         PR fortran/63938
451         * trans-openmp.c (gfc_trans_omp_atomic): Make sure lhsaddr is
452         simple enough for goa_lhs_expr_p.
454 2014-11-24  Tobias Burnus  <burnus@net-b.de>
456         * error.c (gfc_fatal_error_1): Remove.
457         * gfortran.h (gfc_fatal_error_1): Remove.
458         * check.c (check_co_collective): Change gfc_fatal_error_1 to
459         gfc_fatal_error.
460         * match.c (gfc_match_name): Ditto.
461         * trans-array.c (gfc_conv_array_initializer): Ditto.
462         * trans-stmt.c (gfc_trans_sync): Ditto.
464 2014-11-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
466         PR fortran/44054
467         * decl.c (gfc_verify_c_interop_param): Use gfc_error_now_2.
468         (gfc_set_constant_character_len): Use gfc_warning_now_2.
469         * resolve.c (resolve_ordinary_assign): Likewise.
470         * gfortran.h (warn_character_truncation): Do not declare here.
471         * error.c (gfc_format_decoder): Handle %L.
472         * lang.opt (Wcharacter-truncation): Add Var and LangEnabledBy.
473         * options.c (gfc_init_options): Do not handle
474         warn_character_truncation explicitly.
475         (set_Wall): Likewise.
476         (gfc_handle_option): Likewise.
478 2014-11-23  Tobias Burnus  <burnus@net-b.de>
480         * invoke.texi (-Wtabs): Swap -Wtabs/-Wno-tabs now that
481         -Wtabs enables the warning.
483 2014-11-23  Tobias Burnus  <burnus@net-b.de>
485         * error.c (gfc_diagnostic_build_prefix): Correct coloring
486         of the colon of the prefix.
488 2014-11-23  Tobias Burnus  <burnus@net-b.de>
489             Manuel López-Ibáñez  <manu@gcc.gnu.org>
491         * gfortran.h (gfc_option_t): Remove warn_tabs.
492         * lang.opt (Wpedantic): Add.
493         (Wtabs): Use Var and LangEnabledBy.
494         * options.c (gfc_init_options, gfc_post_options,
495         set_Wall): Remove -Wtabs handling.
496         (gfc_handle_option): Update -std=, remove OPT_Wtabs.
497         * scanner.c (gfc_gobble_whitespace): Update for
498         flag-variable renaming.
499         (load_line): Ditto. Pass warn flag to diagnostic.
501 2014-11-22  Tobias Burnus  <burnus@net-b.de>
503         * trans-expr.c (gfc_caf_get_image_index): Fix image calculation.
505 2014-11-15  Tobias Burnus  <burnus@net-b.de>
507         * error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.
508         (gfc_fatal_error): Add; uses common diagnostics.
509         * array.c (gfc_match_array_ref, gfc_match_array_spec): Use
510         %< %>.
511         * check.c (check_co_collective, gfc_check_lcobound,
512         gfc_check_image_index, gfc_check_num_images,
513         gfc_check_this_image, gfc_check_ucobound): Ditto.
514         * cpp.c (gfc_cpp_post_options): Ditto.
515         (gfc_cpp_init_0, gfc_cpp_done): Change %s to %qs.
516         * gfc-diagnostic.def (DK_FATAL): Capitalize first letter.
517         * gfortran.h (gfc_fatal_error_1): Add.
518         * match.c (gfc_match_name, gfc_match_critical,
519         lock_unlock_statement, sync_statement): Add %< %>.
520         * module.c (bad_module, gfc_dump_module, gfc_use_module): Change
521         %s to %qs.
522         * options.c (gfc_handle_module_path_options, gfc_handle_fpe_option,
523         gfc_handle_coarray_option, gfc_handle_runtime_check_option,
524         gfc_handle_option): Add %< %>.
525         * simplify.c (gfc_simplify_num_images): Ditto.
526         * trans-stmt.c (gfc_trans_sync): Use gfc_fatal_error_1.
527         * trans-array.c (gfc_conv_array_initializer): Ditto.
528         * trans-types.c (gfc_init_kinds): Use gfc_fatal_error instead
529         of fatal_error; add %< %> quotations.
531 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
532             Thomas Schwinge  <thomas@codesourcery.com>
533             Ilya Verbin  <ilya.verbin@intel.com>
534             Andrey Turetskiy  <andrey.turetskiy@intel.com>
536         * Make-lang.in (fortran.install-common): Do not install for the offload
537         compiler.
539 2014-11-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
541         PR fortran/44054
542         * gfortran.h (warn_use_without_only): Remove.
543         (gfc_diagnostics_finish): Declare.
544         * error.c: Include tree-diagnostics.h
545         (gfc_format_decoder): New.
546         (gfc_diagnostics_init): Use gfc_format_decoder. Set default caret
547         char.
548         (gfc_diagnostics_finish): Restore tree diagnostics defaults, but
549         keep gfc_diagnostics_starter and finalizer. Restore default caret.
550         * options.c: Remove all uses of warn_use_without_only.
551         * lang.opt (Wuse-without-only): Add Var.
552         * f95-lang.c (gfc_be_parse_file): Call gfc_diagnostics_finish.
553         * module.c (gfc_use_module): Use gfc_warning_now_2.
554         * parse.c (decode_statement): Likewise.
555         (decode_gcc_attribute): Likewise.
556         (next_free): Likewise.
557         (next_fixed): Likewise.
559 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
561         PR fortran/63701
562         * trans-expr.c (gfc_get_tree_for_caf_expr): Initialise found to false.
564 2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>
566         PR libfortran/47007
567         PR libfortran/61847
568         * gfortran.texi: Add note about locale issues to thread-safety
569         section.
571 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
573         * f95-lang.c (gfc_init_builtin_functions): Use type index 2 for
574         scalbn, scalbnl and scalbnf.
575         * mathbuiltins.def (JN, YN): Use type index 5.
577 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
579         * trans-types.c, trans-types.h: Remove redundant enum from
580         machine_mode.
582 2014-10-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
584         PR fortran/44054
585         * gfortran.h (gfc_warning_cmdline): Rename as gfc_warning_now_2.
586         (gfc_error_cmdline): Rename as gfc_error_now_2.
587         * error.c (gfc_diagnostic_build_locus_prefix): Remove trailing space.
588         (gfc_diagnostic_starter): Add space between locus and prefix.
589         (gfc_warning_now_2): Renamed from gfc_warning_cmdline.
590         (gfc_error_now_2): Renamed from gfc_error_cmdline.
591         * scanner.c (add_path_to_list): Use gfc_warning_now_2.
592         (load_line): Likewise.
593         (load_file): Likewise.
594         * options.c (gfc_post_options): Update all renamed functions.
596 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
598         * f95-lang.c: Adjust include files.
599         * trans-decl.c: Ditto.
601 2014-10-24  Tobias Burnus  <burnus@net-b.de>
603         * check.c (check_co_collective): Reject coindexed A args.
604         (gfc_check_co_reduce): Add OPERATOR checks.
605         * gfortran.texi (_gfortran_caf_co_broadcast, _gfortran_caf_co_max,
606         _gfortran_caf_co_min, _gfortran_caf_co_sum,
607         _gfortran_caf_co_reduce): Add ABI documentation.
608         * intrinsic.texi (CO_REDUCE): Document intrinsic.
609         (DPROD): Returns double not single precision.
610         * trans-decl.c (gfor_fndecl_co_reduce): New global var.
611         (gfc_build_builtin_function_decls): Init it.
612         * trans.h (gfor_fndecl_co_reduce): Declare it.
613         * trans-intrinsic.c (conv_co_collective,
614         gfc_conv_intrinsic_subroutine): Handle CO_REDUCE.
616 2014-10-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
618         PR fortran/48979
619         * trans-const.c (gfc_build_nan): New function.
620         * trans-const.h (gfc_build_nan): New prototype.
621         * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Handle special
622         values.
623         (gfc_conv_intrinsic_minmaxval): Use gfc_build_nan.
624         (gfc_conv_intrinsic_fraction): Handle special values.
625         (gfc_conv_intrinsic_spacing): Likewise.
626         (gfc_conv_intrinsic_rrspacing): Likewise.
627         (gfc_conv_intrinsic_set_exponent): Likewise.
629 2014-10-18  Paul Thomas  <pault@gcc.gnu.org>
631         PR fortran/63553
632         * resolve.c (resolve_ordinary_assign): Add data component to
633         rvalue expression for class to type assignment.
635 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
637         * f95-lang.c: Adjust include files.
638         * trans-decl.c: Likewise.
640 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
642         * trans-decl.c, trans.c, trans.h: Use hash_table instead of hashtab.
644 2014-10-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
646         PR fortran/48979
647         * simplify.c (gfc_simplify_atan): Use mpfr_zero_p to check for zeros.
648         (gfc_simplify_log): Likewise.
649         (gfc_simplify_scale): Likewise.
650         (gfc_simplify_exponent): Handle infinities and NaNs.
651         (gfc_simplify_fraction): Handle infinities.
652         (gfc_simplify_rrspacing): Handle signed zeros and NaNs.
653         (gfc_simplify_set_exponent): Handle infinities and NaNs.
654         (gfc_simplify_spacing): Handle zeros, infinities and NaNs.
656 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
658         PR fortran/59488
659         * trans-openmp.c (gfc_omp_predetermined_sharing): Return
660         OMP_CLAUSE_DEFAULT_SHARED for parameters or vtables.
662 2014-10-10  Tobias Burnus  <burnus@net-b.de>
664         * gfortran.h (gfc_set_implicit_none): Update prototype.
665         * symbol.c (gfc_set_implicit_none): Take and
666         use error location. Move diagnostic from here to ...
667         * decl.c (gfc_match_implicit_none): ... here. And
668         update call. Handle empty implicit-none-spec.
669         (gfc_match_implicit): Handle statement-separator ";".
671 2014-10-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
673         * f95-lang.c (gfc_init_builtin_functions): Add more floating-point
674         built-ins.
675         * mathbuiltins.def (OTHER_BUILTIN): Define built-ins for logb,
676         remainder, rint and signbit.
677         * trans-decl.c (save_fp_state, restore_fp_state): Move to
678         trans-intrinsic.c
679         (gfc_generate_function_code): Use new names for these two functions.
680         * trans-expr.c (gfc_conv_function_expr): Catch IEEE functions to
681         emit code from the front-end.
682         * trans-intrinsic.c (gfc_save_fp_state, gfc_restore_fp_state,
683         conv_ieee_function_args, conv_intrinsic_ieee_builtin,
684         conv_intrinsic_ieee_is_normal, conv_intrinsic_ieee_is_negative,
685         conv_intrinsic_ieee_logb_rint, conv_intrinsic_ieee_rem,
686         conv_intrinsic_ieee_next_after, conv_intrinsic_ieee_scalb,
687         conv_intrinsic_ieee_copy_sign, gfc_conv_ieee_arithmetic_function):
688         New functions.
689         * trans.h (gfc_conv_ieee_arithmetic_function,
690         gfc_save_fp_state, gfc_restore_fp_state): New prototypes.
692 2014-10-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
694         PR fortran/44054
695         PR fortran/54687
696         * gfortran.h (gfc_warning_cmdline): Add overload that takes an
697         option.
698         (gfc_error_cmdline): Declare.
699         * error.c (gfc_warning_cmdline): New overload that takes an option.
700         (gfc_error_cmdline): New.
701         * lang.opt (Wmissing-include-dirs): New.
702         * scanner.c (add_path_to_list): Use the new functions.
703         (load_file): Likewise.
704         * options.c (gfc_init_options): Wmissing-include-dirs is enabled
705         by default in Fortran.
706         (gfc_handle_option): Accept automatically handled options.
708 2014-10-06  Tobias Burnus  <burnus@net-b.de>
710         * libgfortran.h (GFC_STD_F2015): Add.
711         * decl.c (gfc_match_implicit_none): Handle spec list.
712         (gfc_match_implicit): Move double intrinsic warning here.
713         * gfortran.h (gfc_namespace): Add has_implicit_none_export:1.
714         (gfc_set_implicit_none): Update interface.
715         * interface.c (gfc_procedure_use): Add implicit-none external
716         error check.
717         * parse.c (accept_statement): Remove call.
718         (verify_st_order): Permit that external-implict-none follows
719         implicit statement.
720         * symbol.c (gfc_set_implicit_none): Handle external/type
721         implicit none.
723 2014-10-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
725         PR fortran/36534
726         * resolve.c (resolve_fl_procedure): Clean up obsolescence warning.
728 2014-09-25  Tobias Burnus  <burnus@net-b.de>
730         * check.c (check_co_collective): Renamed from check_co_minmaxsum,
731         handle co_reduce.
732         (gfc_check_co_minmax, gfc_check_co_sum): Update call.
733         (gfc_check_co_broadcast, gfc_check_co_reduce): New.
734         * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
735         GFC_ISYM_CO_REDUCE.
736         * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
737         * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
738         proto types.
739         * intrinsic.texi (CO_BROADCAST): Add.
740         * trans.h (gfor_fndecl_co_broadcast): New.
741         * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
742         (gfc_build_builtin_function_decls): Add decl for it,
743         * trans-intrinsic.c (conv_co_collective): Renamed from
744         conv_co_minmaxsum. Handle co_reduce.
745         (gfc_conv_intrinsic_subroutine): Handle co_reduce.
747 2014-09-23  Jakub Jelinek  <jakub@redhat.com>
749         PR fortran/63331
750         * trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL
751         instead of VAR_DECL for base_decl.
753 2014-09-21  Jan Hubicka  <hubicka@ucw.cz>
755         * openmp.c (omp_context): Rename to ...
756         (fortran_omp_context): ... this one.
758 2014-09-21  Dominique d'Humieres <dominiq@lps.ens.fr>
760         * resolve.c (resolve_fl_procedure): Remove duplicated lines.
762 2014-09-20  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
763             Tobias Burnus  <burnus@net-b.de>
765         * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with
766         generating temporary for value argument.
768 2014-09-20  Joost VandeVondele  <vondele@gcc.gnu.org>
770         * trans-expr.c (gfc_reset_vptr): Fix comment whitespace.
771         (gfc_conv_class_to_class): Likewise.
772         (gfc_conv_procedure_call): Likewise.
773         (arrayfunc_assign_needs_temporary): Likewise.
774         (realloc_lhs_loop_for_fcn_call): Likewise.
775         (gfc_trans_assignment_1): Likewise.
776         * trans-array.c (gfc_conv_array_ref): Likewise.
777         (gfc_array_allocate): Likewise.
778         (gfc_alloc_allocatable_for_assignment): Likewise.
779         * symbol.c (generate_isocbinding_symbol): Likewise.
780         * class.c (finalization_scalarizer): Likewise.
781         (finalizer_insert_packed_call): Likewise.
782         (generate_finalization_wrapper): Likewise.
783         (find_intrinsic_vtab): Likewise.
784         * decl.c (gfc_match_import): Likewise.
785         (match_procedure_decl): Likewise.
786         (gfc_match_subroutine): Likewise.
787         (gfc_match_bind_c): Likewise.
788         (gfc_match_volatile): Likewise.
789         * trans-common.c (create_common): Likewise.
790         * error.c (gfc_diagnostic_starter): Likewise.
791         * trans-stmt.c (gfc_trans_sync): Likewise.
792         (gfc_trans_critical): Likewise.
793         (gfc_trans_simple_do): Likewise.
794         (gfc_trans_do): Likewise.
795         (gfc_trans_where_assign): Likewise.
796         * expr.c (gfc_is_simply_contiguous): Likewise.
797         * module.c (unquote_string): Likewise.
798         * trans.c (gfc_add_finalizer_call): Likewise.
799         * trans-types.c (gfc_init_kinds): Likewise.
800         * scanner.c (preprocessor_line): Likewise.
801         * gfortranspec.c (lang_specific_driver): Likewise.
802         * frontend-passes.c (create_var): Likewise.
803         (cfe_expr_0): Likewise.
804         * resolve.c (check_host_association): Likewise.
805         (gfc_resolve_code): Likewise.
806         (resolve_fl_derived0): Likewise.
807         (resolve_symbol): Likewise.
808         * f95-lang.c (poplevel): Likewise.
809         * trans-decl.c (create_main_function): Likewise.
810         * trans-io.c (transfer_expr): Likewise.
811         * arith.c (gfc_arith_divide): Likewise.
812         * parse.c (resolve_all_program_units): Likewise.
813         * check.c (gfc_check_rank): Likewise.
814         (gfc_check_sizeof): Likewise.
815         (is_c_interoperable): Likewise.
816         * dependency.c (gfc_dep_difference): Likewise.
817         * primary.c (gfc_match_rvalue): Likewise.
818         * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise.
819         (conv_isocbinding_subroutine): Likewise.
820         * options.c (gfc_post_options): Likewise.
821         (gfc_handle_fpe_option): Likewise.
822         (gfc_get_option_string): Likewise.
823         * simplify.c (simplify_transformation_to_scalar): Likewise.
824         (gfc_simplify_spread): Likewise.
826 2014-09-19  Joost VandeVondele  <vondele@gcc.gnu.org>
828         PR fortran/63152
829         * trans-array.c (gfc_trans_deferred_array): Only nullify allocatables.
831 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
833         * Make-lang.in (check_gfortran_parallelize): Change to just an upper
834         bound number.
836 2014-09-13  Tobias Burnus  <burnus@net-b.de>
838         PR fortran/63252
839         * trans-decl.c (gfc_build_builtin_function_decls): Fix
840         caf_unlock declaration.
842 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
844         * trans-types.c (gfc_init_kinds): Check
845         targetm.libgcc_floating_mode_supported_p for floating-point
846         modes.  Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
848 2014-09-05  Joost VandeVondele  <vondele@gcc.gnu.org>
850         PR fortran/62245
851         * intrinsic.texi (INT): clarify result.
853 2014-09-03  Fritz Reese  <Reese-Fritz@zai.com>
855         PR fortran/62174
856         * decl.c (variable_decl): Don't overwrite typespecs of Cray pointees
857         when matching a component declaration.
859 2014-09-02  Marek Polacek  <polacek@redhat.com>
861         PR fortran/62270
862         * interface.c (compare_parameter): Fix condition.
863         * trans-expr.c (gfc_conv_procedure_call): Likewise.
865 2014-08-31  Fritz Reese  <Reese-Fritz@zai.com>
867         PR fortran/62309
868         * resolve.c (apply_default_init_local): Don't treat variables
869         in RECURSIVE procedures as saved.
871 2014-08-31  Tobias Burnus  <burnus@net-b.de>
873         * trans-decl.c (gfc_build_builtin_function_decls): Add
874         may_require_tmp dummy argument.
875         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
876         conv_caf_send): Handle may_require_tmp argument.
877         (gfc_conv_intrinsic_function): Update call.
878         * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
879         _gfortran_caf_sendget): Update interface description.
881 2014-08-30  Tobias Burnus  <burnus@net-b.de>
883         * trans.h (gfc_caf_get_image_index,
884         gfc_get_caf_token_offset): New prototypes.
885         * trans-expr.c (gfc_caf_get_image_index): Moved from
886         trans-intrinsic.c and renamed.
887         (gfc_get_caf_token_offset) Ditto; support offset = NULL
888         with early return.
889         * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
890         Moved to trans-expr.
891         (gfc_conv_intrinsic_caf_get, conv_caf_send,
892         conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
893         conv_intrinsic_atomic_cas): Update callers.
895 2014-08-30  Tobias Burnus  <burnus@net-b.de>
897         PR fortran/62278
898         PR fortran/44735
899         PR fortran/60593
900         * dependency.c (gfc_check_dependency): Allow for optimizations
901         in the pointer-alias check.
903 2014-08-30  Janne Blomqvist  <jb@gcc.gnu.org>
905         * module.c (gfc_dump_module): Use ISO C remove() instead of POSIX
906         unlink().
908 2014-08-29  Jeffrey Armstrong  <jeffrey.armstrong@approximatrix.com>
910         PR fortran/62215
911         * module.c (gfc_dump_module): Unlink old module file before
912         renaming new one.
914 2014-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
916         * frontend_passes (expr_array):  Replace by vec template.
917         (expr_size):  Remove.
918         (expr_count):  Remove.
919         (doloop_list):  Replace by vec template.
920         (doloop_size):  Remove.
921         (gfc_run_passes):  Adjust to use of vec template.
922         (cfe_register_funcs):  Likewise.
923         (cfe_expr_0):  Likewise.
924         (doloop_code):  Likewise.
926 2014-08-22  Steven Bosscher  <steven@gcc.gnu.org>
928         PR fortran/62135
929         * resolve.c (resolve_select): Fix list traversal in case the
930         last element of the CASE list was dropped as unreachable code.
932 2014-08-22  Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
934         PR fortran/61234
935         * lang.opt (Wuse-without-only): New flag.
936         * gfortran.h (gfc_option_t): Add it.
937         * invoke.texi: Document it.
938         * module.c (gfc_use_module): Warn if needed.
939         * options.c (gfc_init_options,gfc_handle_option): Init accordingly.
941 2014-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
943         PR fortran/62214
944         * frontend-passes.c (optimize_binop_array_assignment):
945         Do not try to optimize the array assignment for string
946         concatenation.
948 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
950         PR fortran/44054
951         * error.c (gfc_diagnostic_build_locus_prefix): New function.
952         (gfc_diagnostic_starter): Follow Fortran FE diagnostics.
953         (gfc_diagnostic_finalizer): Do not call default finalizer.
955 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
957         PR fortran/44054
958         * error.c (gfc_diagnostic_finalizer): Call default finalizer.
960 2014-08-20  Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
962         * options.c (gfc_init_options_struct): assert that the frontend sets
963         flag_errno_math and flag_associative_math.
965 2014-08-17  Tobias Burnus  <burnus@net-b.de>
967         * resolve.c (gfc_resolve_finalizers): Ensure that parents are
968         resolved first.
970 2014-08-17  Tobias Burnus  <burnus@net-b.de>
972         * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
973         IOCALL_SET_NML_VAL.
974         (transfer_namelist_element): Use proper int type as argument.
976 2014-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
978         PR fortran/62142
979         * trans-expr.c (is_runtime_conformable):  Add NULL pointer checks.
981 2014-08-15  Tobias Burnus  <burnus@net-b.de>
983         * resolve.c (resolve_critical): Fix name mangling.
984         * trans-stmt.c (gfc_trans_critical): Fix lock call.
986 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
988         PR fortran/44054
989         * gfortran.h: Define GCC_DIAG_STYLE.
990         (gfc_diagnostics_init,gfc_warning_cmdline): Declare.
991         * trans-array.c: Include gfortran.h before diagnostic-core.h.
992         * trans-expr.c: Likewise.
993         * trans-openmp.c: Likewise.
994         * trans-const.c: Likewise.
995         * trans.c: Likewise.
996         * trans-types.c: Likewise.
997         * f95-lang.c: Likewise.
998         * trans-decl.c: Likewise.
999         * trans-io.c: Likewise.
1000         * trans-intrinsic.c: Likewise.
1001         * error.c: Include diagnostic.h and diagnostic-color.h.
1002         (gfc_diagnostic_build_prefix): New.
1003         (gfc_diagnostic_starter): New.
1004         (gfc_diagnostic_finalizer): New.
1005         (gfc_warning_cmdline): New.
1006         (gfc_diagnostics_init): New.
1007         * gfc-diagnostic.def: New.
1008         * options.c (gfc_init_options): Call gfc_diagnostics_init.
1009         (gfc_post_options): Use gfc_warning_cmdline.
1011 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
1012             Tobias Burnus  <burnus@net-b.de>
1014         PR fortran/62131
1015         * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
1016         is allocatable, rather than whenever var->attr.allocatable.
1018 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
1020         PR fortran/62107
1021         * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
1022         or allocatable passed by reference.
1023         (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
1025 2014-08-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1027         PR fortran/62106
1028         * gfortran.h (symbol_attribute):  Add fe_temp flag.
1029         * frontend-passes.c (is_fe_temp):  New function.
1030         (create_var):  Don't add a temporary for an already
1031         created variable or for a constant.
1032         (combine_ARRAY_constructor):  Remove special handling
1033         for constants.
1035 2014-08-14  Tobias Burnus  <burnus@net-b.de>
1037         * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
1038         (_gfortran_caf_register): Update for locking/critical.
1039         (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
1040         * resolve.c (resolve_critical): New.
1041         (gfc_resolve_code): Call it.
1042         * trans-decl.c (gfor_fndecl_caf_critical,
1043         gfor_fndecl_caf_end_critical): Remove.
1044         (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
1045         (gfc_build_builtin_function_decls): Remove critical,
1046         assign locking declarations.
1047         (generate_coarray_sym_init): Handle locking and
1048         critical variables.
1049         * trans-stmt.c (gfc_trans_critical): Add calls to
1050         lock/unlock libcaf functions.
1051         * trans.h (gfc_coarray_type): Update locking, add
1052         critical enum values.
1053         (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
1054         (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
1056 2014-08-14  Tobias Burnus  <burnus@net-b.de>
1058         * gfortran.texi (Coarray Programming): Add first ABI
1059         documentation.
1061 2014-08-14  Jakub Jelinek  <jakub@redhat.com>
1063         PR fortran/62076
1064         * openmp.c (gfc_match_omp_clauses): When failed to match
1065         operator name, defined op name or name, set buffer to
1066         empty string.  Don't call gfc_find_omp_udr if buffer is empty
1067         string.
1068         (gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
1069         before calling gfc_free_omp_udr.
1071 2014-08-11  Richard Biener  <rguenther@suse.de>
1073         PR fortran/61950
1074         * trans-expr.c (gfc_conv_structure): Initialize _size with
1075         a value of proper type.
1077 2014-08-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
1079         PR fortran/61999
1080         * simplify.c (gfc_simplify_dot_product): Convert types of
1081         vectors before calculating the result.
1083 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
1085         * openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
1087 2014-07-26  Tobias Burnus  <burnus@net-b.de>
1089         PR fortran/61881
1090         PR fortran/61888
1091         PR fortran/57305
1092         * intrinsic.texi (SIZEOF): Document changed behavior
1093         for polymorphic arrays.
1095 2014-07-26  Tobias Burnus  <burnus@net-b.de>
1097         PR fortran/61881
1098         PR fortran/61888
1099         PR fortran/57305
1100         * check.c (gfc_check_sizeof): Permit for assumed type if and
1101         only if it has an array descriptor.
1102         * intrinsic.c (do_ts29113_check): Permit SIZEOF.
1103         (add_functions): SIZEOF is an Inquiry function.
1104         * intrinsic.texi (SIZEOF): Add note that only contiguous
1105         arrays are permitted.
1106         * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
1107         rank.
1108         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
1109         assumed type + array descriptor, CLASS and assumed rank.
1110         (gfc_conv_intrinsic_storage_size): Handle class arrays.
1112 2014-07-25  Tobias Burnus  <burnus@net-b.de>
1114         * simplify.c (gfc_simplify_storage_size): Use proper
1115         integer kind for the returned value.
1117 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
1119         * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
1120         correct menu position to match sectioning.
1122 2014-06-15  Tobias Burnus  <burnus@net-b.de>
1124         * symbol.c (check_conflict): Add codimension conflict with
1125         pointer; fix cray-pointee check.
1127 2014-06-14  Tobias Burnus  <burnus@net-b.de>
1129         * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
1130         for kind mismatch with -fcoarray=lib.
1132 2014-07-12  Paul Thomas  <pault@gcc.gnu.org>
1134         PR fortran/61780
1135         * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
1136         that elements are skipped. This then correctly aligns 'reverse'
1137         with the scalarizer loops.
1139 2014-07-12  Tobias Burnus  <burnus@net-b.de>
1141         PR fortran/61628
1142         * trans-types.c (gfc_init_types): Fix data-type bug
1143         with gfc_max_array_element_size.
1145 2014-07-12  Tobias Burnus  <burnus@net-b.de>
1147         * libgfortran.h (libcaf_atomic_codes): Add.
1148         * trans-decl.c (gfor_fndecl_caf_atomic_def,
1149         gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
1150         gfor_fndecl_caf_atomic_op): New variables.
1151         (gfc_build_builtin_function_decls): Initialize them.
1152         * trans.h (gfor_fndecl_caf_atomic_def,
1153         gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
1154         gfor_fndecl_caf_atomic_op): New variables.
1155         * trans-intrinsic.c (conv_intrinsic_atomic_op,
1156         conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
1157         Add library calls with -fcoarray=lib.
1159 2014-07-12  Tobias Burnus  <burnus@net-b.de>
1161         * check.c (gfc_check_atomic): Update for STAT=.
1162         (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
1163         (gfc_check_atomic_op, gfc_check_atomic_cas,
1164         gfc_check_atomic_fetch_op): New.
1165         * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
1166         GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
1167         GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
1168         GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
1169         * intrinsic.c (add_subroutines): Handle them.
1170         * intrinsic.texi: Add documentation for them.
1171         (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
1172         (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
1173         * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
1174         gfc_check_atomic_fetch_op): New
1175         prototypes.
1176         * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
1177         * iso-fortran-env.def: Add it.
1178         * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
1179         conv_intrinsic_atomic_ref; handle more atomics.
1180         (conv_intrinsic_atomic_def): Handle STAT=.
1181         (conv_intrinsic_atomic_cas): New.
1182         (gfc_conv_intrinsic_subroutine): Handle new atomics.
1184 2014-07-09  Bernd Schmidt  <bernds@codesourcery.com>
1186         * trans-array.c (gfc_build_constant_array_constructor): Build a
1187         static decl manually.
1188         * trans-decl.c (create_main_function): Likewise.
1190 2014-07-07  Paul Thomas  <pault@gcc.gnu.org>
1192         PR fortran/61459
1193         PR fortran/58883
1194         * trans-expr.c (fcncall_realloc_result): Use the natural type
1195         for the address expression of 'res_desc'.
1197 2014-07-07  Gerald Pfeifer  <gerald@pfeifer.com>
1199         * gfortran.texi (Fortran 2003 status): Fix grammar.
1201 2014-07-04  Tobias Burnus  <burnus@net-b.de>
1203         * resolve.c (resolve_assoc_var): Fix corank setting.
1204         * trans-array.c (gfc_conv_descriptor_token): Change assert.
1205         for select-type temporaries.
1206         * trans-decl.c (generate_coarray_sym_init): Skip for
1207         attr.select_type_temporary.
1208         * trans-expr.c (gfc_conv_procedure_call): Fix for
1209         select-type temporaries.
1210         * trans-intrinsic.c (get_caf_token_offset): Ditto.
1211         (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
1212         the correct dtype.
1213         * trans-types.h (gfc_get_dtype_rank_type): New.
1214         * trans-types.c (gfc_get_dtype_rank_type): Ditto.
1216 2014-07-03  Tobias Burnus  <burnus@net-b.de>
1218         * scanner.c (skip_free_comments): Fix indentation.
1220 2014-07-02  Jakub Jelinek  <jakub@redhat.com>
1221             Fritz Reese  <Reese-Fritz@zai.com>
1223         * decl.c (variable_decl): Reject old style initialization
1224         for derived type components.
1226 2014-06-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1228         PR fortran/36275
1229         PR fortran/38839
1230         * decl.c (check_bind_name_identifier): New function.
1231         (gfc_match_bind_c): Match any constant expression as binding
1232         label.
1233         * match.c (gfc_match_name_C): Remove.
1235 2014-06-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1237         PR fortran/29383
1238         * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
1239         * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
1240         both C and Fortran.
1241         * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
1242         * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
1243         * module.c (mio_symbol): Keep track of symbols which came from
1244         intrinsic modules.
1245         (gfc_use_module): Keep track of the IEEE modules.
1246         * trans-decl.c (gfc_get_symbol_decl): Adjust code since
1247         we have new intrinsic modules.
1248         (gfc_build_builtin_function_decls): Build decls for
1249         ieee_procedure_entry and ieee_procedure_exit.
1250         (is_from_ieee_module, is_ieee_module_used, save_fp_state,
1251         restore_fp_state): New functions.
1252         (gfc_generate_function_code): Save and restore floating-point
1253         state on procedure entry/exit, when IEEE modules are used.
1254         * intrinsic.texi: Document the IEEE modules.
1256 2014-06-25  Tobias Burnus  <burnus@net-b.de>
1258         * interface.c (check_intents): Fix diagnostic with
1259         coindexed coarrays.
1261 2014-06-25  Tobias Burnus  <burnus@net-b.de>
1263         * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
1264         when assigning a coindexed RHS scalar to a noncoindexed LHS
1265         array.
1266         * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
1267         for a noncoindexed scalar RHS.
1269 2014-06-25  Tobias Burnus  <burnus@net-b.de>
1271         * check.c (check_co_minmaxsum): Add definable check.
1272         * expr.c (gfc_check_vardef_context): Fix context == NULL case.
1273         * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
1274         arguments.
1275         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
1276         temporary strings.
1278 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
1280         * trans.h (gfc_omp_clause_linear_ctor): New prototype.
1281         * trans-openmp.c (gfc_omp_linear_clause_add_loop,
1282         gfc_omp_clause_linear_ctor): New functions.
1283         (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
1284         correct type.  Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
1285         * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
1287 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
1289         * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
1290         of n->udr.
1291         * f95-lang.c (gfc_init_builtin_functions): Initialize
1292         BUILT_IN_ASSUME_ALIGNED.
1293         * gfortran.h (gfc_omp_namelist): Change udr field type to
1294         struct gfc_omp_namelist_udr.
1295         (gfc_omp_namelist_udr): New type.
1296         (gfc_get_omp_namelist_udr): Define.
1297         (gfc_resolve_code): New prototype.
1298         * match.c (gfc_free_omp_namelist): Free name->udr.
1299         * module.c (intrinsics): Add INTRINSIC_USER.
1300         (fix_mio_expr): Likewise.
1301         (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
1302         * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
1303         (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
1304         Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
1305         (struct resolve_omp_udr_callback_data): New type.
1306         (resolve_omp_udr_callback, resolve_omp_udr_callback2,
1307         resolve_omp_udr_clause): New functions.
1308         (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
1309         here.
1310         (omp_udr_callback): Don't check for implicitly declared functions
1311         here.
1312         (gfc_resolve_omp_udr): Don't call gfc_resolve.  Don't check for
1313         implicitly declared subroutines here.
1314         * resolve.c (resolve_function): If value.function.isym is non-NULL,
1315         consider it already resolved.
1316         (resolve_code): Renamed to ...
1317         (gfc_resolve_code): ... this.  No longer static.
1318         (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
1319         Adjust callers.
1320         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
1321         by reference type (C_PTR) variables.
1322         (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
1323         (gfc_trans_omp_udr_expr): Remove.
1324         (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
1325         Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
1326         expand it as assignment or subroutine call.  Don't initialize
1327         value.function.isym.
1329 2014-06-23  Tobias Burnus  <burnus@net-b.de>
1331         * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
1332         explicit-size arrays with -fcoarray=lib.
1334 2014-06-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1336         PR fortran/33363
1337         * invoke.texi: Don't mention nonexisting -fcase-lower option.
1339 2014-06-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1341         PR fortran/61454
1342         * expr.c (scalarize_intrinsic_call): Take care of optional
1343         arguments.
1345 2014-06-19  Tobias Burnus  <burnus@net-b.de>
1347         * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
1348         passing.
1350 2014-06-18  Tobias Burnus  <burnus@net-b.de>
1352         * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
1353         * intrinsic.texi (OpenMP Modules): Ditto.
1355 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
1357         * cpp.c (cpp_define_builtins): Change _OPENMP macro to
1358         201307.
1359         * dump-parse-tree.c (show_omp_namelist): Add list_type
1360         argument.  Adjust for rop being u.reduction_op now,
1361         handle depend_op or map_op.
1362         (show_omp_node): Adjust callers.  Print some new
1363         OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
1364         becoming a single OMP_LIST_DEPEND.
1365         * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
1366         function.
1367         (gfc_attribute_table): New variable.
1368         (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
1369         * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
1370         EXEC_OMP_* codes and new clauses.
1371         * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
1372         ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
1373         ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
1374         ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
1375         ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
1376         ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
1377         ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
1378         ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
1379         ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
1380         ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
1381         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
1382         ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
1383         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
1384         ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
1385         ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
1386         ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
1387         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
1388         ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
1389         ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
1390         ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
1391         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
1392         (symbol_attribute): Add omp_declare_target field.
1393         (gfc_omp_depend_op, gfc_omp_map_op): New enums.
1394         (gfc_omp_namelist): Replace rop field with union
1395         containing reduction_op, depend_op and map_op.
1396         (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
1397         (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
1398         (gfc_omp_clauses): Add num_teams, device, thread_limit,
1399         dist_sched_kind, dist_chunk_size fields.
1400         (gfc_common_head): Add omp_declare_target field.
1401         (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
1402         EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
1403         EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
1404         EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
1405         EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
1406         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
1407         EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
1408         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
1409         EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
1410         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
1411         EXEC_OMP_TARGET_UPDATE.
1412         (gfc_add_omp_declare_target): New prototype.
1413         * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
1414         gfc_match_omp_distribute_parallel_do,
1415         gfc_match_omp_distribute_parallel_do_simd,
1416         gfc_match_omp_distribute_simd, gfc_match_omp_target,
1417         gfc_match_omp_target_data, gfc_match_omp_target_teams,
1418         gfc_match_omp_target_teams_distribute,
1419         gfc_match_omp_target_teams_distribute_parallel_do,
1420         gfc_match_omp_target_teams_distribute_parallel_do_simd,
1421         gfc_match_omp_target_teams_distribute_simd,
1422         gfc_match_omp_target_update, gfc_match_omp_teams,
1423         gfc_match_omp_teams_distribute,
1424         gfc_match_omp_teams_distribute_parallel_do,
1425         gfc_match_omp_teams_distribute_parallel_do_simd,
1426         gfc_match_omp_teams_distribute_simd): New prototypes.
1427         * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
1428         (attr_bits): Likewise.
1429         (mio_symbol_attribute): Handle omp_declare_target attribute.
1430         (gfc_free_omp_clauses): Free num_teams, device, thread_limit
1431         and dist_chunk_size expressions.
1432         (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
1433         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
1434         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
1435         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
1436         OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
1437         OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
1438         OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
1439         OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
1440         OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
1441         (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
1442         OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
1443         OMP_CLAUSE_DIST_SCHEDULE): Define.
1444         (gfc_match_omp_clauses): Change mask parameter to unsigned int.
1445         Adjust for rop becoming u.reduction_op.  Disallow inbranch with
1446         notinbranch.  For depend clause, always create OMP_LIST_DEPEND
1447         and fill in u.depend_op.  Handle num_teams, device, map,
1448         to, from, thread_limit and dist_schedule clauses.
1449         (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
1450         OMP_CLAUSE_NOTINBRANCH.
1451         (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
1452         OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
1453         OMP_DISTRIBUTE_CLAUSES): Define.
1454         (match_omp): New function.
1455         (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
1456         gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
1457         gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
1458         gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
1459         gfc_match_omp_task): Rewritten using match_omp.
1460         (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
1461         Diagnose if the directives are followed by unexpected junk.
1462         (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
1463         gfc_match_omp_distribute_parallel_do_simd,
1464         gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
1465         gfc_match_omp_target, gfc_match_omp_target_data,
1466         gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
1467         gfc_match_omp_target_teams_distribute_parallel_do,
1468         gfc_match_omp_target_teams_distribute_parallel_do_simd,
1469         gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
1470         gfc_match_omp_teams, gfc_match_omp_teams_distribute,
1471         gfc_match_omp_teams_distribute_parallel_do,
1472         gfc_match_omp_teams_distribute_parallel_do_simd,
1473         gfc_match_omp_teams_distrbute_simd): New functions.
1474         * openmp.c (resolve_omp_clauses): Adjust for
1475         OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND.  Handle
1476         OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
1477         dist_chunk_size and thread_limit.
1478         (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
1479         ctx.sharing_clauses.  Call gfc_resolve_omp_do_blocks for various
1480         new EXEC_OMP_* codes.
1481         (resolve_omp_do): Handle various new EXEC_OMP_* codes.
1482         (gfc_resolve_omp_directive): Likewise.
1483         (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
1484         * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
1485         offloading related directives.
1486         (case_executable): Add ST_OMP_TARGET_UPDATE.
1487         (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
1488         ST_OMP_DISTRIBUTE*.
1489         (case_decl): Add ST_OMP_DECLARE_TARGET.
1490         (gfc_ascii_statement): Handle new ST_OMP_* codes.
1491         (parse_omp_do): Handle various new ST_OMP_* codes.
1492         (parse_executable): Likewise.
1493         * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
1494         codes.
1495         (resolve_code): Likewise.
1496         (resolve_symbol): Change that !$OMP DECLARE TARGET variables
1497         are saved.
1498         * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
1499         * symbol.c (check_conflict): Check omp_declare_target conflicts.
1500         (gfc_add_omp_declare_target): New function.
1501         (gfc_copy_attr): Copy omp_declare_target.
1502         * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
1503         * trans-common.c (build_common_decl): Add "omp declare target"
1504         attribute if needed.
1505         * trans-decl.c (add_attributes_to_decl): Likewise.
1506         * trans.h (gfc_omp_finish_clause): New prototype.
1507         * trans-openmp.c (gfc_omp_finish_clause): New function.
1508         (gfc_trans_omp_reduction_list): Adjust for rop being renamed
1509         to u.reduction_op.
1510         (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
1511         change to OMP_LIST_DEPEND and fix up depend handling.
1512         Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
1513         thread_limit, device, dist_chunk_size and dist_sched_kind.
1514         (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
1515         (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
1516         GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
1517         GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
1518         (gfc_split_omp_clauses): Handle splitting of clauses for new
1519         EXEC_OMP_* codes.
1520         (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
1521         callable for combined constructs.
1522         (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
1523         (gfc_trans_omp_distribute, gfc_trans_omp_teams,
1524         gfc_trans_omp_target, gfc_trans_omp_target_data,
1525         gfc_trans_omp_target_update): New functions.
1526         (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
1527         new EXEC_OMP_* codes.
1529 2014-06-18  Tobias Burnus  <burnus@net-b.de>
1531         PR fortran/61126
1532         * invoke.texi (-Wunused-parameter): Make clearer when
1533         -Wextra implies this option.
1535 2014-06-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1537         PR fortran/61126
1538         * options.c (gfc_handle_option): Remove call to
1539         handle_generated_option.
1541 2014-06-17  Tobias Burnus  <burnus@net-b.de>
1543         * check.c (gfc_check_atomic, gfc_check_atomic_def):
1544         Use argument for GFC_ISYM_CAF_GET.
1545         * resolve.c (resolve_variable): Enable CAF_GET insertion.
1546         (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
1547         (resolve_ordinary_assign): Enable CAF_SEND insertion.
1548         * trans-const.c (gfc_build_string_const,
1549         gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
1550         * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
1551         gfor_fndecl_caf_sendget): New global variables.
1552         (gfc_build_builtin_function_decls): Initialize them;
1553         update co_min/max/sum initialization.
1554         * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
1555         get_tree_for_caf_expr and removed static.
1556         (gfc_conv_procedure_call): Update call.
1557         * trans-intrinsic.c (caf_get_image_index,
1558         conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
1559         get_caf_token_offset, gfc_conv_intrinsic_caf_get,
1560         conv_caf_send): New.
1561         (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
1562         gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
1563         (conv_co_minmaxsum): Update call for remove unused vector
1564         subscript.
1565         (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
1566         Skip a CAF_GET of the argument.
1567         * trans-types.c (gfc_get_caf_vector_type): New.
1568         * trans-types.h (gfc_get_caf_vector_type): New.
1569         * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
1570         gfor_fndecl_caf_sendget): New global variables.
1571         (gfc_get_tree_for_caf_expr): New prototypes.
1573 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
1575         * trans-common.c (build_common_decl): Use
1576         set_decl_tls_model.
1577         * trans-decl.c (gfc_finish_var_decl): Likewise.
1578         (get_proc_pointer_decl): Likewise.
1580 2014-06-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1582         PR fortran/28484
1583         PR fortran/61429
1584         * check.c (gfc_check_system_clock): Improve checking of arguments.
1585         * intrinsic.texi: Update doc of SYSTEM_CLOCK.
1586         * iresolve.c (gfc_resolve_system_clock): Choose library function
1587         used depending on argument kinds.
1588         * trans-decl.c (gfc_build_intrinsic_function_decls): Build
1589         decls for system_clock_4 and system_clock_8.
1590         * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
1591         (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
1592         * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
1593         New variables.
1595 2014-06-12  Tobias Burnus  <burnus@net-b.de>
1597         * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
1598         * symbol.c (gfc_copy_formal_args_intr): Handle the case
1599         that absent optional arguments should be ignored.
1600         * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
1601         (gfc_conv_intrinsic_funcall,
1602         conv_generic_with_optional_char_arg): Update call.
1603         * resolve.c (gfc_resolve_intrinsic): Ditto.
1605 2014-06-10  Dominique d'Humieres <dominiq@lps.ens.fr>
1606             Mikael Morin <mikael@gcc.gnu.org>
1608         PR fortran/41936
1609         * trans-expr.c (gfc_conv_expr_reference): Deallocate array
1610         components.
1612 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
1614         PR fortran/60928
1615         * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
1616         like -fopenmp.
1617         * openmp.c (resolve_omp_clauses): Remove allocatable components
1618         diagnostics.  Add associate-name and intent(in) pointer
1619         diagnostics for various clauses, diagnose procedure pointers in
1620         reduction clause.
1621         * parse.c (match_word_omp_simd): New function.
1622         (matchs, matcho): New macros.
1623         (decode_omp_directive): Change match macros to either matchs
1624         or matcho.  Handle -fopenmp-simd.
1625         (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
1626         * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
1627         Likewise.
1628         * trans-array.c (get_full_array_size): Rename to...
1629         (gfc_full_array_size): ... this.  No longer static.
1630         (duplicate_allocatable): Adjust caller.  Add NO_MEMCPY argument
1631         and handle it.
1632         (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
1633         duplicate_allocatable callers.
1634         (gfc_duplicate_allocatable_nocopy): New function.
1635         (structure_alloc_comps): Adjust g*_full_array_size and
1636         duplicate_allocatable caller.
1637         * trans-array.h (gfc_full_array_size,
1638         gfc_duplicate_allocatable_nocopy): New prototypes.
1639         * trans-common.c (create_common): Call gfc_finish_decl_attrs.
1640         * trans-decl.c (gfc_finish_decl_attrs): New function.
1641         (gfc_finish_var_decl, create_function_arglist,
1642         gfc_get_fake_result_decl): Call it.
1643         (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
1644         don't allocate it again.
1645         (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
1646         associate-names.
1647         * trans.h (gfc_finish_decl_attrs): New prototype.
1648         (struct lang_decl): Add scalar_allocatable and scalar_pointer
1649         bitfields.
1650         (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
1651         GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
1652         GFC_DECL_ASSOCIATE_VAR_P): Define.
1653         (GFC_POINTER_TYPE_P): Remove.
1654         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
1655         GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
1656         GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
1657         (gfc_omp_predetermined_sharing): Associate-names are predetermined.
1658         (enum walk_alloc_comps): New.
1659         (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
1660         gfc_walk_alloc_comps): New functions.
1661         (gfc_omp_private_outer_ref): Return true for scalar allocatables or
1662         decls with allocatable components.
1663         (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
1664         gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
1665         allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
1666         allocatables and decls with allocatable components.
1667         (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
1668         arrays here.
1669         (gfc_trans_omp_reduction_list): Call
1670         gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
1671         (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
1672         (gfc_trans_omp_parallel_do_simd): Likewise.
1673         * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
1674         (gfc_get_derived_type): Call gfc_finish_decl_attrs.
1676 2014-06-09  Paul Thomas  <pault@gcc.gnu.org>
1678         PR fortran/61406
1679         * trans-stmt.c (trans_associate_var): Check that array
1680         constructors are constant for direct reference.
1682 2014-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1684         PR fortran/36096
1685         * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
1686         BESSEL_Y0, and BESSEL_Y1.
1688 2014-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1690         PR fortran/45187
1691         * trans-decl.c (gfc_create_module_variable): Don't create
1692         Cray-pointee decls twice.
1694 2014-06-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1696         * io.c (resolve_tag): Warn on non-default kind for NUMBER,
1697         NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
1699 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
1701         * dump-parse-tree.c (show_omp_namelist): Dump reduction
1702         id in each list item.
1703         (show_omp_node): Only handle OMP_LIST_REDUCTION, not
1704         OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST.  Don't
1705         dump reduction id here.
1706         * frontend-passes.c (dummy_code_callback): Renamed to...
1707         (gfc_dummy_code_callback): ... this.  No longer static.
1708         (optimize_reduction): Use gfc_dummy_code_callback instead of
1709         dummy_code_callback.
1710         * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
1711         (symbol_attribute): Add omp_udr_artificial_var bitfield.
1712         (gfc_omp_reduction_op): New enum.
1713         (gfc_omp_namelist): Add rop and udr fields.
1714         (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
1715         OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
1716         OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
1717         OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
1718         (OMP_LIST_REDUCTION): New.
1719         (gfc_omp_udr): New type.
1720         (gfc_get_omp_udr): Define.
1721         (gfc_symtree): Add n.omp_udr field.
1722         (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
1723         (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
1724         gfc_dummy_code_callback): New prototypes.
1725         * match.h (gfc_match_omp_declare_reduction): New prototype.
1726         * module.c (MOD_VERSION): Increase to 13.
1727         (omp_declare_reduction_stmt): New array.
1728         (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
1729         New functions.
1730         (read_module): Read OpenMP user defined reductions.
1731         (write_module): Write OpenMP user defined reductions.
1732         * openmp.c: Include arith.h.
1733         (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
1734         (gfc_match_omp_clauses): Handle user defined reductions.
1735         Store reduction kind into gfc_omp_namelist instead of using
1736         several OMP_LIST_* entries.
1737         (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
1738         gfc_match_omp_declare_reduction): New functions.
1739         (resolve_omp_clauses): Adjust for reduction clauses being only
1740         in OMP_LIST_REDUCTION list.  Diagnose missing UDRs.
1741         (struct omp_udr_callback_data): New type.
1742         (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
1743         functions.
1744         * parse.c (decode_omp_directive): Handle !$omp declare reduction.
1745         (case_decl): Add ST_OMP_DECLARE_REDUCTION.
1746         (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
1747         * resolve.c (resolve_fl_variable): Allow len=: or len=* on
1748         sym->attr.omp_udr_artificial_var symbols.
1749         (resolve_types): Call gfc_resolve_omp_udrs.
1750         * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
1751         use parent ns instead of gfc_current_ns.
1752         (gfc_get_sym_tree): Don't insert symbols into
1753         namespaces with omp_udr_ns set.
1754         (free_omp_udr_tree): New function.
1755         (gfc_free_namespace): Call it.
1756         * trans-openmp.c (struct omp_udr_find_orig_data): New type.
1757         (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
1758         (gfc_trans_omp_array_reduction): Renamed to...
1759         (gfc_trans_omp_array_reduction_or_udr): ... this.  Remove SYM
1760         argument, instead pass gfc_omp_namelist pointer N.  Handle
1761         user defined reductions.
1762         (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
1763         Handle user defined reductions and reduction ops in gfc_omp_namelist.
1764         (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
1765         list.
1766         (gfc_split_omp_clauses): Likewise.
1768 2014-06-05  Richard Biener  <rguenther@suse.de>
1770         PR fortran/61418
1771         * gfortranspec.c (spec_file): Remove.
1772         (find_spec_file): Likewise.
1773         (lang_specific_driver): Do not look for specs file in -L
1774         or append -specs command line argument.
1775         (lang_specific_pre_link): Always %:include libgfortran.spec.
1777 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
1779         * fortran/trans.c (trans_runtime_error_vararg): Call
1780         fold_build_call_array_loc instead of fold_builtin_call_array.
1782 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
1784         * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
1785         arguments to caf_init.
1787 2014-05-26  Tobias Burnus  <burnus@net-b.de>
1789         * gfortran.texi (Project Status): Fix broken link.
1791 2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
1793         PR libfortran/61310
1794         * intrinsics.texi (CTIME): Remove mention of locale-dependent
1795         behavior.
1797 2014-05-26  Tobias Burnus  <burnus@net-b.de>
1799         PR fortran/55117
1800         * trans-io.c (nml_full_name, transfer_namelist_element): Insert
1801         a '+' rather then '%' to differentiate namelist variable names
1802         that are based on extended derived types.
1804 2014-05-25  Tobias Burnus  <burnus@net-b.de>
1806         * check.c (gfc_check_num_images): New.
1807         (gfc_check_this_image): Handle distance argument.
1808         * intrinsic.c (add_functions): Update this_image and num_images
1809         for new distance and failed arguments.
1810         * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
1811         arguments.
1812         * intrinsic.h (gfc_check_num_images): New.
1813         (gfc_check_this_image, gfc_simplify_num_images,
1814         gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
1815         * iresolve.c (gfc_resolve_this_image): Handle distance argument.
1816         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1817         Handle new arguments.
1818         * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
1819         (gfc_conv_intrinsic_function): Update trans_num_images call.
1821 2014-05-23  Tobias Burnus  <burnus@net-b.de>
1823         * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
1824         * gfortran.texi: Ditto.
1826 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
1828         * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
1829         (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
1830         (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
1831         * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
1833 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
1835         * f95-lang.c (pushlevel): Adjust.
1836         * trans-decl.c (gfc_allocate_lang_decl): Adjust.
1837         (gfc_find_module): Likewise.
1838         * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1839         (gfc_get_array_type_bounds): Likewise.
1840         (gfc_nonrestricted_type): Likewise.
1841         * trans.h: Don't use variable_size gty attribute.
1843 2014-05-17  Dominique d'Humieres <dominiq@lps.ens.fr>
1845         * check.c (gfc_check_fn_rc2008): move "argument" to the right
1846         place.
1848 2014-05-12  Tobias Burnus  <burnus@net-b.de>
1850         PR fortran/60127
1851         * openmp.c (resolve_omp_do): Reject do concurrent loops.
1853 2014-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1855         PR fortran/60834
1856         * frontend-passes.c (in_assoc_list):  New variable.
1857         (optimize_namespace):  Initialize in_assoc_list
1858         (combine_array_constructor): Don't try to combine
1859         assoc lists.
1860         (gfc_code_walker):  Keep track of in_assoc_list.
1862 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
1864         * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
1865         ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1866         ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1867         ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1868         ST_OMP_DECLARE_SIMD.
1869         (gfc_omp_namelist): New typedef.
1870         (gfc_get_omp_namelist): Define.
1871         (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
1872         OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
1873         (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
1874         (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
1875         Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
1876         simdlen_expr fields.
1877         (gfc_omp_declare_simd): New typedef.
1878         (gfc_get_omp_declare_simd): Define.
1879         (gfc_namespace): Add omp_declare_simd field.
1880         (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1881         EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
1882         EXEC_OMP_PARALLEL_DO_SIMD.
1883         (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
1884         and GFC_OMP_ATOMIC_SWAP.
1885         (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
1886         (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
1887         gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
1888         prototypes.
1889         * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
1890         * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
1891         * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
1892         simdlen_expr.  Use gfc_free_omp_namelist instead of
1893         gfc_free_namelist.
1894         (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
1895         functions.
1896         (gfc_match_omp_variable_list): Add end_colon, headp and
1897         allow_sections arguments.  Handle parsing of array sections.
1898         Use *omp_namelist* instead of *namelist* data structure and
1899         functions/macros.  Allow termination at : character.
1900         (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
1901         OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
1902         OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
1903         (gfc_match_omp_clauses): Change first and needs_space variables
1904         into arguments with default values.  Parse inbranch, notinbranch,
1905         proc_bind, safelen, simdlen, uniform, linear, aligned and
1906         depend clauses.
1907         (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
1908         (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
1909         (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
1910         (gfc_match_omp_do_simd): New function.
1911         (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
1912         data structure and functions/macros.
1913         (gfc_match_omp_simd, gfc_match_omp_declare_simd,
1914         gfc_match_omp_parallel_do_simd): New functions.
1915         (gfc_match_omp_atomic): Handle seq_cst clause.  Handle atomic swap.
1916         (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
1917         gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
1918         functions.
1919         (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
1920         Use *omp_namelist* instead of *namelist* data structure and
1921         functions/macros.  Resolve uniform, aligned, linear, depend,
1922         safelen and simdlen clauses.
1923         (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
1924         addition, recognize atomic swap.
1925         (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
1926         of gfc_namelist.  Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
1927         EXEC_OMP_PARALLEL_DO.
1928         (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
1929         data structure and functions/macros.
1930         (resolve_omp_do): Likewise.  Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1931         EXEC_OMP_PARALLEL_DO_SIMD.
1932         (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1933         EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL.  Adjust
1934         resolve_omp_clauses caller.
1935         (gfc_resolve_omp_declare_simd): New function.
1936         * parse.c (decode_omp_directive): Parse cancellation point, cancel,
1937         declare simd, end do simd, end simd, end parallel do simd,
1938         end taskgroup, parallel do simd, simd and taskgroup directives.
1939         (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
1940         (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
1941         ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
1942         (case_decl): Add ST_OMP_DECLARE_SIMD.
1943         (gfc_ascii_statement): Handle ST_OMP_CANCEL,
1944         ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1945         ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1946         ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1947         ST_OMP_DECLARE_SIMD.
1948         (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
1949         ST_OMP_PARALLEL_DO_SIMD.
1950         (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
1951         (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
1952         ST_OMP_PARALLEL_DO_SIMD.
1953         (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
1954         ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
1955         * trans-decl.c (gfc_get_extern_function_decl,
1956         gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
1957         needed.
1958         * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
1959         EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD.  Walk
1960         safelen_expr and simdlen_expr.  Walk expressions in gfc_omp_namelist
1961         of depend, aligned and linear clauses.
1962         * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
1963         and EXEC_OMP_PARALLEL_DO_SIMD.
1964         (gfc_free_omp_namelist): New function.
1965         * dump-parse-tree.c (show_namelist): Removed.
1966         (show_omp_namelist): New function.
1967         (show_omp_node): Handle OpenMP 4.0 additions.
1968         (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1969         EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
1970         EXEC_OMP_TASKGROUP.
1971         * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
1972         gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
1973         gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
1974         gfc_match_omp_taskgroup): New prototypes.
1975         * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
1976         argument, handle it.  Allow current_function_decl to be NULL.
1977         (gfc_trans_omp_variable_list): Add declare_simd argument, pass
1978         it through to gfc_trans_omp_variable and disregard whether
1979         sym is referenced if declare_simd is true.  Work on gfc_omp_namelist
1980         instead of gfc_namelist.
1981         (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
1982         gfc_namelist.  Adjust gfc_trans_omp_variable caller.
1983         (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
1984         to gfc_trans_omp_variable{,_list} callers.  Work on gfc_omp_namelist
1985         instead of gfc_namelist.  Handle inbranch, notinbranch, safelen,
1986         simdlen, depend, uniform, linear, proc_bind and aligned clauses.
1987         Handle cancel kind.
1988         (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
1989         adjust for GFC_OMP_ATOMIC_* changes.
1990         (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
1991         functions.
1992         (gfc_trans_omp_do): Add op argument, handle simd translation into
1993         generic.
1994         (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
1995         GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
1996         GFC_OMP_MASK_PARALLEL): New.
1997         (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
1998         (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
1999         (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
2000         functions.
2001         (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
2002         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
2003         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
2004         Adjust gfc_trans_omp_do caller.
2005         (gfc_trans_omp_declare_simd): New function.
2006         * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
2007         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
2008         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
2009         For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
2010         gfc_free_namelist.
2011         * module.c (omp_declare_simd_clauses): New variable.
2012         (mio_omp_declare_simd): New function.
2013         (mio_symbol): Call it.
2014         * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
2015         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
2016         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
2017         * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
2018         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
2019         (resolve_code): Handle EXEC_OMP_CANCEL,
2020         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
2021         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
2022         (resolve_types): Call gfc_resolve_omp_declare_simd.
2024 2014-05-11  Tobias Burnus  <burnus@net-b.de>
2026         * trans-intrinsic.c (gfc_build_builtin_function_decls):
2027         Change type of second argument to int.
2029 2014-05-09  Mike Stump  <mikestump@comcast.net>
2031         PR fortran/61109
2032         * trans-array.c (gfc_conv_array_initializer): Fix wide-int
2033         conversion bug.
2035 2014-05-08  Tobias Burnus  <burnus@net-b.de>
2037         * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
2038         and GFC_ISYM_CAF_SEND.
2039         * intrinsic.c (add_functions): Add only internally
2040         accessible caf_get and caf_send functions.
2041         * resolve.c (add_caf_get_intrinsic,
2042         remove_caf_get_intrinsic): New functions.
2043         (resolve_variable): Resolve expression rank and
2044         prepare for add_caf_get_intrinsic call.
2045         (gfc_resolve_expr): For variables, remove rank
2046         resolution.
2047         (resolve_ordinary_assign): Prepare call to
2048         GFC_ISYM_CAF_SEND.
2049         (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
2050         the LHS of an assignment.
2052 2014-05-08  Tobias Burnus  <burnus@net-b.de>
2054         * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
2056 2014-05-08  Tobias Burnus  <burnus@net-b.de>
2058         * check.c (check_co_minmaxsum, gfc_check_co_minmax,
2059         gfc_check_co_sum): New.
2060         * error.c (gfc_notify_std): Update -std=f2008ts.
2061         * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
2062         GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
2063         * intrinsic.h (gfc_check_co_minmax,
2064         gfc_check_co_sum): Declare.
2065         * intrinsic.c (add_subroutines): Add co_min, co_max
2066         and co_sum.
2067         (gfc_check_intrinsic_standard): Update text for
2068         -std=f2008ts.
2069         * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
2070         them.
2071         * invoke.texi (-std=f2008ts): Update wording.
2072         * trans.h (gfor_fndecl_co_max,
2073         gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
2074         * trans-decl.c (gfor_fndecl_co_max,
2075         gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
2076         (gfc_build_builtin_function_decls): Assign to it.
2077         * trans-intrinsic.c (conv_co_minmaxsum): New.
2078         (gfc_conv_intrinsic_subroutine): Call it.
2080 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
2081             Mike Stump  <mikestump@comcast.net>
2082             Richard Sandiford  <rdsandiford@googlemail.com>
2084         * target-memory.c: Include wide-int.h.
2085         (gfc_interpret_logical): Use wide-int interfaces.
2086         * trans-array.c: Include wide-int.h.
2087         (gfc_conv_array_initializer): Use wide-int interfaces.
2088         * trans-const.c: Include wide-int.h.
2089         (gfc_conv_string_init): Use wide-int interfaces.
2090         (gfc_conv_mpz_to_tree): Likewise.
2091         (gfc_conv_tree_to_mpz): Likewise.
2092         * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
2093         * trans-expr.c: Include wide-int.h.
2094         (gfc_conv_cst_int_power): Use wide-int interfaces.
2095         (gfc_string_to_single_character): Likewise.
2096         (gfc_optimize_len_trim): Likewise.
2097         * trans-intrinsic.c: Include wide-int.h.
2098         (trans_this_image): Use wide-int interfaces.
2099         (gfc_conv_intrinsic_bound): Likewise.
2100         (conv_intrinsic_cobound): Likewise.
2101         * trans-types.c (gfc_init_types): Likewise.
2102         (gfc_get_array_type_bounds): Pass an integer of the correct type
2103         instead of using integer_one_node.
2105 2014-04-30  Tobias Burnus  <burnus@net-b.de>
2107         * trans-decl.c (create_function_arglist): Add hidden coarray arguments
2108         also for polymorphic coarrays.
2109         * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
2110         also for polymorphic coarrays.
2112 2014-04-30  Tobias Burnus  <burnus@net-b.de>
2114         * resolve.c (resolve_function): Don't do
2115         assumed-size check for lcobound/ucobound.
2116         * trans-types.c (gfc_build_array_type): Only build an array
2117         descriptor with codimensions for allocatable coarrays.
2119 2014-04-30  Tobias Burnus  <burnus@net-b.de>
2121         * gfortran.h (gfc_init_coarray_decl): Remove.
2122         * parse.c (translate_all_program_units): Remove call to it.
2123         (gfc_parse_file): Update call.
2124         * trans.h (gfor_fndecl_caf_this_image,
2125         gfor_fndecl_caf_num_images): Add.
2126         (gfort_gvar_caf_num_images,
2127         gfort_gvar_caf_this_image): Remove.
2128         * trans-decl.c (gfor_fndecl_caf_this_image,
2129         gfor_fndecl_caf_num_images): Add.
2130         (gfort_gvar_caf_num_images,
2131         gfort_gvar_caf_this_image): Remove.
2132         (gfc_build_builtin_function_decls): Init new decl.
2133         (gfc_init_coarray_dec): Remove.
2134         (create_main_function): Change calls.
2135         * trans-intrinsic.c (trans_this_image, trans_image_index,
2136         conv_intrinsic_cobound): Generate call to new library function
2137         instead of to a static variable.
2138         * trans-stmt.c (gfc_trans_sync): Ditto.
2140 2014-04-30  Tobias Burnus  <burnus@net-b.de>
2142         * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
2143         and derived-type coarrays.
2145 2014-04-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2147         PR fortran/59604
2148         PR fortran/58003
2149         * gfortran.h (gfc_convert_mpz_to_signed):  Add prototype.
2150         * arith.c (gfc_int2int):  Convert number to signed if
2151         arithmetic overflow is not checked.
2152         * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
2153         size if range checking is in force.
2154         (convert_mpz_to_signed):  Make non-static, rename to
2155         (gfc_convert_mpz_to_signed).
2156         (simplify_dshift): Use gfc_convert_mpz_to_signed.
2157         (gfc_simplify_ibclr):  Likewise.
2158         (gfc_simplify_ibits):  Likewise.
2159         (gfc_simplify_ibset):  Likewise.
2160         (simplify_shift):  Likewise.
2161         (gfc_simplify_ishiftc):  Likewise.
2162         (gfc_simplify_maskr):  Likewise.
2163         (gfc_simplify_maskl):  Likewise.
2165 2014-04-22  Tobias Burnus  <burnus@net-b.de>
2167         PR fortran/60881
2168         * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
2169         of scalar coarrays.
2171 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
2173         * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
2174         argument is enum machine_mode.
2176 2014-04-13  Paul Thomas  <pault@gcc.gnu.org>
2178         PR fortran/58085
2179         PR fortran/60717
2180         * trans.h: Add 'use_offset' bitfield to gfc_se.
2181         * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
2182         as a trigger to unconditionally recalculate the offset for
2183         array slices and constant arrays.
2184         trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
2185         trans-stmt.c (trans_associate_var): Ditto.
2186         (gfc_conv_procedure_call): Ditto.
2188 2014-04-11  Tobias Burnus  <burnus@net-b.de>
2190         PR fortran/58880
2191         PR fortran/60495
2192         * resolve.c (gfc_resolve_finalizers): Ensure that vtables
2193         and finalization wrappers are generated.
2195 2014-04-11  Janne Blomqvist  <jb@gcc.gnu.org>
2197         * intrinsic.texi (RANDOM_SEED): Improve example.
2199 2014-04-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2201         * class.c (gfc_build_class_symbol): Append "_t" to target class
2202         names to make the generated type names unique.
2204 2014-04-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2206         PR fortran/60191
2207         * trans-types.c (gfc_get_function_type): In case of recursion
2208         build a variadic function type with empty argument list instead of a
2209         stdarg-like function type with incomplete argument list.
2211 2014-04-04  Tobias Burnus  <burnus@net-b.de>
2213         * check.c (gfc_check_cmplx): Fix typo.
2215 2014-03-28  Mikael Morin  <mikael@gcc.gnu.org>
2216             Tobias Burnus  <burnus@net-b.de>
2218         PR fortran/60576
2219         * trans-expr.c (gfc_conv_derived_to_class): Avoid
2220         generation of out-of-bounds range expr.
2222 2014-03-28  Mikael Morin  <mikael@gcc.gnu.org>
2224         PR fortran/60677
2225         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
2226         list buffer.
2228 2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2230         PR fortran/60522
2231         * frontend-passes.c (cfe_code):  Do not walk subtrees
2232         for WHERE.
2234 2014-03-27  Tobias Burnus  <burnus@net-b.de>
2236         PR fortran/58880
2237         * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
2238         of nonpointers.
2240 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
2242         PR fortran/34928
2243         * fortran.texi: Document Volatile COMMON as not supported.
2245 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
2247         PR debug/60603
2248         * cpp.c (gfc_cpp_init): Restore cb_change_file call to
2249         <built-in>.
2251 2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2253         PR fortran/60148
2254         * gfortran.texi: Add description of namelist DELIM= behavior.
2256 2014-03-19  Tobias Burnus  <burnus@net-b.>
2258         PR fortran/60543
2259         * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
2260         * resolve.c (resolve_ordinary_assign): Ditto.
2262 2014-03-19  Tobias Burnus  <burnus@net-b.de>
2264         PR fortran/60543
2265         PR fortran/60283
2266         * gfortran.h (gfc_unset_implicit_pure): New prototype.
2267         * resolve.c (gfc_unset_implicit_pure): New.
2268         (resolve_structure_cons, resolve_function,
2269         pure_subroutine): Use it.
2270         * decl.c (match_old_style_init, gfc_match_data,
2271         match_pointer_init, variable_decl): Ditto.
2272         * expr.c (gfc_check_pointer_assign): Ditto.
2273         * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
2274         * io.c (match_vtag, gfc_match_open, gfc_match_close,
2275         match_filepos, gfc_match_inquire, gfc_match_print,
2276         gfc_match_wait): Ditto.
2277         * match.c (gfc_match_critical, gfc_match_stopcode,
2278         lock_unlock_statement, sync_statement, gfc_match_allocate,
2279         gfc_match_deallocate): Ditto.
2280         * parse.c (decode_omp_directive): Ditto.
2281         * symbol.c (gfc_add_save): Ditto.
2283 2014-03-18  Janus Weil  <janus@gcc.gnu.org>
2285         PR fortran/55207
2286         PR fortran/60549
2287         * decl.c (match_attr_spec): Revert r208590.
2289 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
2291         PR ipa/58721
2292         * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
2293         if !optimize.
2295 2014-03-18  Tobias Burnus  <burnus@net-b.de>
2297         PR ipa/58721
2298         * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
2299         (gfc_trans_io_runtime_check): Remove.
2300         * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
2301         as argument, add predictor to block.
2302         (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
2303         gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
2304         * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
2305         (gfc_trans_runtime_check, gfc_allocate_using_malloc,
2306         gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
2307         branch predictor.
2308         * trans-expr.c (gfc_conv_procedure_call): Ditto.
2309         * trans-stmt.c (gfc_trans_allocate): Ditto.
2310         * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
2312 2014-03-15  Janus Weil  <janus@gcc.gnu.org>
2314         PR fortran/55207
2315         * decl.c (match_attr_spec): Variables in the main program implicitly
2316         get the SAVE attribute in Fortran 2008.
2318 2014-03-14  Mikael Morin  <mikael@gcc.gnu.org>
2320         PR fortran/60392
2321         * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
2322         if it has transposed dimensions.
2324 2014-03-08  Tobias Burnus  <burnus@net-b.de>
2326         PR fortran/60447
2327         * f95-lang.c (gfc_init): Return false when only
2328         preprocessing.
2329         * options.c (gfc_post_options): Ditto.
2331 2014-03-08  Tobias Burnus  <burnus@net-b.de>
2333         * gfortran.texi (Fortran 2003 Status): Mention finalization,
2334         deferred-length character support and input rounding.
2335         (Fortran 2008 Status): Mention that at termination
2336         signalling exceptions are shown.
2338 2014-03-06  Paul Thomas  <pault@gcc.gnu.org>
2339             Janus Weil  <janus@gcc.gnu.org>
2341         PR fortran/51976
2342         * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
2343         * primary.c (build_actual_constructor): It is not an error if
2344         a missing component has the deferred_parameter attribute;
2345         equally, if one is given a value, it is an error.
2346         * resolve.c (resolve_fl_derived0): Remove error for deferred
2347         character length components.  Add the hidden string length
2348         field to the structure. Give it the deferred_parameter
2349         attribute.
2350         * trans-array.c (duplicate_allocatable): Add a strlen field
2351         which is used as the element size if it is non-null.
2352         (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
2353         NULL to the new argument in duplicate_allocatable.
2354         (structure_alloc_comps): Set the hidden string length as
2355         appropriate. Use it in calls to duplicate_allocatable.
2356         (gfc_alloc_allocatable_for_assignment): When a deferred length
2357         backend declaration is variable, use that; otherwise use the
2358         string length from the expression evaluation.
2359         * trans-expr.c (gfc_conv_component_ref): If this is a deferred
2360         character length component, the string length should have the
2361         value of the hidden string length field.
2362         (gfc_trans_subcomponent_assign): Set the hidden string length
2363         field for deferred character length components.  Allocate the
2364         necessary memory for the string.
2365         (alloc_scalar_allocatable_for_assignment): Same change as in
2366         gfc_alloc_allocatable_for_assignment above.
2367         * trans-stmt.c (gfc_trans_allocate): Likewise.
2368         * trans-intrinsic (size_of_string_in_bytes): Make non-static.
2369         * trans-types.c (gfc_get_derived_type): Set the tree type for
2370         a deferred character length component.
2371         * trans.c (gfc_deferred_strlen): New function.
2372         * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
2374 2014-03-01  Mikael Morin  <mikael@gcc.gnu.org>
2376         PR fortran/60341
2377         * frontend-passes.c (optimize_comparison): Guard two union accesses
2378         with the corresponding tag checks.
2380 2014-02-28  Janus Weil  <janus@gcc.gnu.org>
2382         PR fortran/60359
2383         * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
2384         procedure for characters.
2386 2014-02-21  Janus Weil  <janus@gcc.gnu.org>
2388         PR fortran/60302
2389         * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
2390         is successful.
2392 2014-02-21  Janus Weil  <janus@gcc.gnu.org>
2394         PR fortran/60234
2395         * gfortran.h (gfc_build_class_symbol): Removed argument.
2396         * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
2397         (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
2398         delayed now, except for unlimited polymorphics.
2399         (comp_is_finalizable): Procedure pointer components are not finalizable.
2400         * decl. (build_sym, build_struct, attr_decl1): Removed argument of
2401         'gfc_build_class_symbol'.
2402         * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
2403         Ditto.
2404         * symbol.c (gfc_set_default_type): Ditto.
2406 2014-02-19  Janus Weil  <janus@gcc.gnu.org>
2408         PR fortran/60232
2409         * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
2410         functions, which are used as procedure pointer target.
2412 2014-02-18  Tobias Burnus  <burnus@net-b.de>
2414         PR fortran/49397
2415         * expr.c (gfc_check_pointer_assign): Add check for
2416         F2008Cor2, C729.
2417         * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
2418         decl in a corner case.
2420 2014-02-18  Janus Weil  <janus@gcc.gnu.org>
2422         PR fortran/60231
2423         * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
2424         arguments to prevent ICE.
2426 2014-02-17  Janus Weil  <janus@gcc.gnu.org>
2428         PR fortran/55907
2429         * resolve.c (build_default_init_expr): Don't initialize character
2430         variable if -fno-automatic is given.
2432 2014-02-15  Mikael Morin  <mikael@gcc.gnu.org>
2434         PR fortran/59599
2435         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
2436         number of arguments.
2438 2014-02-11  Jakub Jelinek  <jakub@redhat.com>
2440         PR fortran/52370
2441         * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
2442         on decl if sym->attr.optional.
2444 2014-02-09  Paul Thomas  <pault@gcc.gnu.org>
2446         PR fortran/57522
2447         * resolve.c (resolve_assoc_var): Set the subref_array_pointer
2448         attribute for the 'associate-name' if necessary.
2449         * trans-stmt.c (trans_associate_var): If the 'associate-name'
2450         is a subref_array_pointer, assign the element size of the
2451         associate variable to 'span'.
2453 2014-02-09  Paul Thomas  <pault@gcc.gnu.org>
2455         PR fortran/59026
2456         * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
2457         actual argument to a formal argument with the value attribute
2458         in an elemental procedure.
2460 2014-02-08  Janus Weil  <janus@gcc.gnu.org>
2461             Mikael Morin <mikael.morin@gcc.gnu.org>
2463         PR fortran/58470
2464         * class.c (generate_finalization_wrapper): Assert that proc_tree has
2465         been set in gfc_resolve_finalizers.
2466         * resolve.c (resolve_fl_derived0): Remove unnecessary call to
2467         gfc_is_finalizable.
2469 2014-02-07  Benno Schulenberg  <bensberg@justemail.net>
2471         PR translation/52289
2472         * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
2473         in an error message.
2475 2014-02-02  Mikael Morin  <mikael@gcc.gnu.org>
2477         PR fortran/57033
2478         * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
2479         dereference.
2481 2014-02-01  Paul Thomas  <pault@gcc.gnu.org>
2483         PR fortran/59906
2484         * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
2485         SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
2486         pointer to the string is stored.
2487         * trans-expr.c (gfc_conv_expr_reference): Likewise, use
2488         gfc_conv_string_parameter to ensure that a pointer to is passed
2489         to the elemental function.
2491 2014-01-28  Paul Thomas  <pault@gcc.gnu.org>
2493         PR fortran/59414
2494         * trans-stmt.c (gfc_trans_allocate): Before the pointer
2495         assignment to transfer the source _vptr to a class allocate
2496         expression, the final class reference should be exposed. The
2497         tail that includes the _data and array references is stored.
2498         This reduced expression is transferred to 'lhs' and the _vptr
2499         added. Then the tail is restored to the allocate expression.
2501 2014-01-26  Mikael Morin  <mikael@gcc.gnu.org>
2503         PR fortran/58007
2504         * module.c (read_module): Assert for component name correctness.
2506 2014-01-18  Mikael Morin  <mikael@gcc.gnu.org>
2508         PR fortran/58007
2509         * module.c (MOD_VERSION): Bump.
2510         (fp2, find_pointer2): Remove.
2511         (mio_component_ref): Don't forcedfully set the containing derived type
2512         symbol for loading.  Remove unused argument.
2513         (mio_ref): Update caller
2514         (mio_symbol): Dump component list earlier.
2515         (skip_list): New argument nest_level.  Initialize level with the new
2516         argument.
2517         (read_module): Add forced pointer components association for derived
2518         type symbols.
2520 2014-01-12  Janus Weil  <janus@gcc.gnu.org>
2522         PR fortran/58026
2523         * decl.c (gfc_match_data_decl): Improve error recovery.
2525 2014-01-09  Tobias Burnus  <burnus@net-b.de>
2527         * cpp.c (gfc_cpp_handle_option): Add missing break.
2528         * trans-io.c (transfer_expr): Silence unused value warning.
2530 2014-01-08  Janus Weil  <janus@gcc.gnu.org>
2532         PR fortran/58182
2533         * resolve.c (gfc_verify_binding_labels): Modify order of checks.
2535 2014-01-06  Janus Weil  <janus@gcc.gnu.org>
2537         PR fortran/59589
2538         * class.c (comp_is_finalizable): New function to dermine if a given
2539         component is finalizable.
2540         (finalize_component, generate_finalization_wrapper): Use it.
2542 2014-01-06  Janus Weil  <janus@gcc.gnu.org>
2544         PR fortran/59023
2545         PR fortran/59662
2546         * resolve.c (resolve_global_procedure): Don't apply to c-binding
2547         procedures.
2548         (gfc_verify_binding_labels): Remove duplicate line.
2550 2014-01-04  Janus Weil  <janus@gcc.gnu.org>
2552         PR fortran/59547
2553         * class.c (add_proc_comp): Copy pure attribute.
2555 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2557         Update copyright years
2559 2014-01-02  Tobias Burnus  <burnus@net-b.de>
2561         * gfortranspec.c (lang_specific_driver): Update copyright notice
2562         dates.
2563         * gfc-internals.texi: Bump @copying's copyright year.
2564         * gfortran.texi: Ditto.
2565         * intrinsic.texi: Ditto.
2566         * invoke.texi: Ditto.
2568 2014-01-02  Janus Weil  <janus@gcc.gnu.org>
2570         PR fortran/59654
2571         * resolve.c (resolve_typebound_procedures): No need to create the vtab
2572         here.
2574 Copyright (C) 2014 Free Software Foundation, Inc.
2576 Copying and distribution of this file, with or without modification,
2577 are permitted in any medium without royalty provided the copyright
2578 notice and this notice are preserved.