1 2014-12-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
4 * error.c (pp_error_buffer): New static variable.
5 (pp_warning_buffer): Make it a pointer.
6 (gfc_output_buffer_empty_p): New.
7 (gfc_error_init_1): Call gfc_buffer_error.
8 (gfc_buffer_error): Do not use pp_warning_buffer.flush_p as the
10 (gfc_clear_warning): Likewise.
11 (gfc_warning_check): Call gfc_clear_warning. Only check the new
12 pp_warning_buffer if the old warning_buffer was empty. Call
13 diagnostic_action_after_output.
14 (gfc_error_1): Renamed from gfc_error.
16 (gfc_clear_error): Clear also pp_error_buffer.
17 (gfc_error_flag_test): Check also pp_error_buffer.
18 (gfc_error_check): Likewise. Only check the new pp_error_buffer
19 if the old error_buffer was empty.
20 (gfc_move_output_buffer_from_to): New.
21 (gfc_push_error): Use it here. Take also an output_buffer as argument.
22 (gfc_pop_error): Likewise.
23 (gfc_free_error): Likewise.
24 (gfc_diagnostics_init): Use XNEW and placement-new to init
25 pp_error_buffer and pp_warning_buffer. Set flush_p to false for
26 both pp_warning_buffer and pp_error_buffer.
28 * Update gfc_push_error, gfc_pop_error and gfc_free_error calls
29 according to the above changes.
30 * Use gfc_error_1 for all gfc_error calls that use multiple
32 * Use %qs instead of '%s' for many gfc_error calls.
34 2014-12-11 Tobias Burnus <burnus@net-b.de>
35 Manuel López-Ibáñez <manu@gcc.gnu.org>
37 * diagnostic.c (get_terminal_width): Renamed from getenv_columns,
38 removed static, and additionally use ioctl to get width.
39 (diagnostic_set_caret_max_width): Update call.
40 * diagnostic.h (get_terminal_width): Add prototype.
41 * opts.c (print_specific_help): Use it for x_help_columns.
42 * doc/invoke.texi (fdiagnostics-show-caret): Document how the
45 2014-12-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
48 * trans-expr.c (gfc_conv_procedure_call): Fix a strict aliasing
49 violation when passing a class object to a formal parameter which has
50 different pointer or allocatable attributes.
52 2014-12-06 Tobias Burnus <burnus@net-b.de>
54 * error.c (gfc_error_check): Use bool not int.
55 * gfortran.h (gfc_error_check): Update prototype.
56 * match.c (gfc_match_if): Update call.
57 * parse.c (decode_statement, decode_omp_directive,
58 decode_gcc_attribute): Ditto.
60 2014-12-06 Tobias Burnus <burnus@net-b.de>
61 Manuel López-Ibáñez <manu@gcc.gnu.org>
63 * error.c (gfc_buffer_error, gfc_error_flag_test): Use bool not int.
64 (buffer_flag): Remove static variable.
65 (buffered_p): Add static variable.
66 (gfc_error_init_1): Call gfc_buffer_error.
67 (gfc_warning_1, gfc_warning, gfc_warning_now_1, gfc_error,
68 gfc_error_now_1): Update for static variable change.
69 * gfortran.h (gfc_buffer_error, gfc_error_flag_test): Update
71 * parse.c (use_modules, decode_specification_statement,
72 next_fixed, next_statement, match_deferred_characteristics):
74 * decl.c (gfc_match_data_decl): Ditto.
75 * match.c (gfc_match_name): Ditto.
77 2014-12-05 Andre Vehreschild <vehre@gmx.de>
80 * interface.c (compare_parameter): Remove class argument rank
83 2014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
85 * error.c (gfc_diagnostic_build_locus_prefix): Use
86 diagnostic_expand_location.
88 2014-12-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
90 * scanner.c (gfc_next_char_literal): Use gfc_warning_now.
91 (load_file): Use the line length as the column hint for
92 linemap_line_start. Reserve a location for the highest column of
95 2014-12-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
98 * gfortran.h (gfc_warning): Now returns bool. Add overload that
100 (gfc_warning_1): Declare.
102 (pp_warning_buffer,warningcount_buffered,werrorcount_buffered): New.
103 (gfc_buffer_error): Set pp_warning_buffer.flush_p.
104 (gfc_clear_pp_buffer): New.
105 (gfc_warning_1): Renamed from gfc_warning.
106 (gfc_warning): Add three new overloads. One that takes just a
107 format string and ellipsis, another that takes also a warning
108 option, and another that takes also va_list instead of ellipsis.
109 (gfc_clear_warning): Clear pp_warning_buffer.
110 (gfc_warning_check): Flush pp_warning_buffer and update warning
112 (gfc_diagnostics_init): Init pp_warning_buffer.
114 * Update all gfc_warning calls that do not use multiple
115 locations to use %qs and OPT_W*, otherwise use gfc_warning_1.
117 2014-12-02 Tobias Burnus <burnus@net-b.de>
118 Manuel López-Ibáñez <manu@gcc.gnu.org>
120 * error.c (warnings_not_errors): Use bool.
121 (gfc_clear_error): Update.
122 (gfc_get_errors): Ditto. Use bool argument.
123 * gfortran.h (gfc_get_errors): Update prototype.
124 * resolve.c (resolve_global_procedure): Update call.
126 2014-12-02 Richard Biener <rguenther@suse.de>
129 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Check
130 proper expressions type, use proper type for computing
133 2014-11-29 Jakub Jelinek <jakub@redhat.com>
135 * trans-openmp.c (gfc_omp_finish_clause,
136 gfc_trans_omp_array_reduction_or_udr, gfc_trans_omp_atomic): Remove
137 NULL last argument from create_tmp_var_raw and create_tmp_var calls.
139 2014-11-29 Tobias Burnus <burnus@net-b.de>
141 * scanner.c (skip_free_comments, gfc_gobble_whitespace): Use
142 gfc_warning_now instead of ..._now_1.
144 2014-11-29 Tobias Burnus <burnus@net-b.de>
145 Manuel López-Ibáñez <manu@gcc.gnu.org>
147 * lang.opt (Wtabs): Combine duplicated item into a single
148 one using || for LangEnabledBy.
150 2014-11-25 Tobias Burnus <burnus@net-b.de>
152 * error.c (gfc_internal_error): Convert to common diagnostics.
153 * interface.c (gfc_find_sym_in_symtree): Use %qs.
154 * intrinsic.c (make_generic, gfc_check_intrinsic_standard,
155 gfc_convert_type_warn): Ditto.
156 * module.c (write_symbol): Ditto.
157 * symbol.c (gfc_get_default_type): Ditto; use fatal instead
159 * trans-array.c (gfc_walk_subexpr): Replace internal_error by
161 * trans-decl.c (gfc_get_symbol_decl,
162 (gfc_create_module_variable): Ditto. Use %qs.
163 * trans-intrinsic.c (gfc_conv_intrinsic_lib_function): Ditto.
164 * trans-io.c (transfer_expr): Ditto.
165 * trans-openmp.c (gfc_trans_omp_workshare): Ditto.
166 * trans.c (trans_code): Ditto.
168 2014-11-25 Tobias Burnus <burnus@net-b.de>
170 * gfortran.h (gfc_option_t): Remove flags moved as Var to .opt.
171 (gfc_error_now_1): Renamed from gfc_error_now.
172 (gfc_error_now): Renamed from gfc_error_now_2.
173 (gfc_warning_now_1): Renamed from gfc_warning_now.
174 (gfc_warning_now): Renamed from gfc_warning_now_2.
175 * error.c (gfc_error_now_1): Renamed from gfc_error_now.
176 (gfc_error_now): Renamed from gfc_error_now_2.
177 (gfc_warning_now_1): Renamed from gfc_warning_now.
178 (gfc_warning_now): Renamed from gfc_warning_now_2.
179 (gfc_get_errors): Include common diagnostic in count.
180 * lang.opt (Wc-binding-type, Wconversion, Wconversion-extra,
181 Wintrinsics-std): Create a Var for those warnings.
182 * check.c (gfc_check_cmplx): Pass warning flag to
184 * decl.c (get_proc_name, gfc_verify_c_interop_param, build_sym
185 gfc_set_constant_character_len, verify_bind_c_sym): Ditto; use
186 _1 for old diagnostic, remove _2 for new diagnostic.
187 * expr.c (gfc_check_assign, gfc_check_vardef_context): Ditto.
188 * frontend-passes.c (doloop_code, do_function): Ditto.
189 * intrinsic.c (gfc_is_intrinsic, gfc_convert_type_warn): Ditto.
190 * match.c (gfc_match_common): Ditto.
191 * module.c (use_iso_fortran_env_module, gfc_use_module): Ditto.
192 * parse.c (decode_statement, decode_gcc_attribute, next_free,
193 next_fixed, gfc_check_do_variable): Ditto.
194 * resolve.c (resolve_common_vars, resolve_ordinary_assign):
196 * scanner.c (add_path_to_list, skip_free_comments,
197 gfc_next_char_literal, gfc_gobble_whitespace, load_line,
198 preprocessor_line, load_file): Ditto.
199 * symbol.c (gfc_set_default_type, verify_bind_c_derived_type):
201 * options.c (gfc_post_options): Ditto.
202 (gfc_init_options, set_Wall, gfc_handle_option): Ditto; remove
203 flags which now have a Var.
204 * invoke.texi (Wconversion-extra): Make clear that the flag
205 does not imply -Wconversion.
207 2014-11-24 Jakub Jelinek <jakub@redhat.com>
210 * trans-openmp.c (gfc_trans_omp_atomic): Make sure lhsaddr is
211 simple enough for goa_lhs_expr_p.
213 2014-11-24 Tobias Burnus <burnus@net-b.de>
215 * error.c (gfc_fatal_error_1): Remove.
216 * gfortran.h (gfc_fatal_error_1): Remove.
217 * check.c (check_co_collective): Change gfc_fatal_error_1 to
219 * match.c (gfc_match_name): Ditto.
220 * trans-array.c (gfc_conv_array_initializer): Ditto.
221 * trans-stmt.c (gfc_trans_sync): Ditto.
223 2014-11-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
226 * decl.c (gfc_verify_c_interop_param): Use gfc_error_now_2.
227 (gfc_set_constant_character_len): Use gfc_warning_now_2.
228 * resolve.c (resolve_ordinary_assign): Likewise.
229 * gfortran.h (warn_character_truncation): Do not declare here.
230 * error.c (gfc_format_decoder): Handle %L.
231 * lang.opt (Wcharacter-truncation): Add Var and LangEnabledBy.
232 * options.c (gfc_init_options): Do not handle
233 warn_character_truncation explicitly.
234 (set_Wall): Likewise.
235 (gfc_handle_option): Likewise.
237 2014-11-23 Tobias Burnus <burnus@net-b.de>
239 * invoke.texi (-Wtabs): Swap -Wtabs/-Wno-tabs now that
240 -Wtabs enables the warning.
242 2014-11-23 Tobias Burnus <burnus@net-b.de>
244 * error.c (gfc_diagnostic_build_prefix): Correct coloring
245 of the colon of the prefix.
247 2014-11-23 Tobias Burnus <burnus@net-b.de>
248 Manuel López-Ibáñez <manu@gcc.gnu.org>
250 * gfortran.h (gfc_option_t): Remove warn_tabs.
251 * lang.opt (Wpedantic): Add.
252 (Wtabs): Use Var and LangEnabledBy.
253 * options.c (gfc_init_options, gfc_post_options,
254 set_Wall): Remove -Wtabs handling.
255 (gfc_handle_option): Update -std=, remove OPT_Wtabs.
256 * scanner.c (gfc_gobble_whitespace): Update for
257 flag-variable renaming.
258 (load_line): Ditto. Pass warn flag to diagnostic.
260 2014-11-22 Tobias Burnus <burnus@net-b.de>
262 * trans-expr.c (gfc_caf_get_image_index): Fix image calculation.
264 2014-11-15 Tobias Burnus <burnus@net-b.de>
266 * error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.
267 (gfc_fatal_error): Add; uses common diagnostics.
268 * array.c (gfc_match_array_ref, gfc_match_array_spec): Use
270 * check.c (check_co_collective, gfc_check_lcobound,
271 gfc_check_image_index, gfc_check_num_images,
272 gfc_check_this_image, gfc_check_ucobound): Ditto.
273 * cpp.c (gfc_cpp_post_options): Ditto.
274 (gfc_cpp_init_0, gfc_cpp_done): Change %s to %qs.
275 * gfc-diagnostic.def (DK_FATAL): Capitalize first letter.
276 * gfortran.h (gfc_fatal_error_1): Add.
277 * match.c (gfc_match_name, gfc_match_critical,
278 lock_unlock_statement, sync_statement): Add %< %>.
279 * module.c (bad_module, gfc_dump_module, gfc_use_module): Change
281 * options.c (gfc_handle_module_path_options, gfc_handle_fpe_option,
282 gfc_handle_coarray_option, gfc_handle_runtime_check_option,
283 gfc_handle_option): Add %< %>.
284 * simplify.c (gfc_simplify_num_images): Ditto.
285 * trans-stmt.c (gfc_trans_sync): Use gfc_fatal_error_1.
286 * trans-array.c (gfc_conv_array_initializer): Ditto.
287 * trans-types.c (gfc_init_kinds): Use gfc_fatal_error instead
288 of fatal_error; add %< %> quotations.
290 2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
291 Thomas Schwinge <thomas@codesourcery.com>
292 Ilya Verbin <ilya.verbin@intel.com>
293 Andrey Turetskiy <andrey.turetskiy@intel.com>
295 * Make-lang.in (fortran.install-common): Do not install for the offload
298 2014-11-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
301 * gfortran.h (warn_use_without_only): Remove.
302 (gfc_diagnostics_finish): Declare.
303 * error.c: Include tree-diagnostics.h
304 (gfc_format_decoder): New.
305 (gfc_diagnostics_init): Use gfc_format_decoder. Set default caret
307 (gfc_diagnostics_finish): Restore tree diagnostics defaults, but
308 keep gfc_diagnostics_starter and finalizer. Restore default caret.
309 * options.c: Remove all uses of warn_use_without_only.
310 * lang.opt (Wuse-without-only): Add Var.
311 * f95-lang.c (gfc_be_parse_file): Call gfc_diagnostics_finish.
312 * module.c (gfc_use_module): Use gfc_warning_now_2.
313 * parse.c (decode_statement): Likewise.
314 (decode_gcc_attribute): Likewise.
315 (next_free): Likewise.
316 (next_fixed): Likewise.
318 2014-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
321 * trans-expr.c (gfc_get_tree_for_caf_expr): Initialise found to false.
323 2014-11-10 Janne Blomqvist <jb@gcc.gnu.org>
327 * gfortran.texi: Add note about locale issues to thread-safety
330 2014-11-04 Bernd Schmidt <bernds@codesourcery.com>
332 * f95-lang.c (gfc_init_builtin_functions): Use type index 2 for
333 scalbn, scalbnl and scalbnf.
334 * mathbuiltins.def (JN, YN): Use type index 5.
336 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
338 * trans-types.c, trans-types.h: Remove redundant enum from
341 2014-10-28 Manuel López-Ibáñez <manu@gcc.gnu.org>
344 * gfortran.h (gfc_warning_cmdline): Rename as gfc_warning_now_2.
345 (gfc_error_cmdline): Rename as gfc_error_now_2.
346 * error.c (gfc_diagnostic_build_locus_prefix): Remove trailing space.
347 (gfc_diagnostic_starter): Add space between locus and prefix.
348 (gfc_warning_now_2): Renamed from gfc_warning_cmdline.
349 (gfc_error_now_2): Renamed from gfc_error_cmdline.
350 * scanner.c (add_path_to_list): Use gfc_warning_now_2.
351 (load_line): Likewise.
352 (load_file): Likewise.
353 * options.c (gfc_post_options): Update all renamed functions.
355 2014-10-28 Andrew MacLeod <amacleod@redhat.com>
357 * f95-lang.c: Adjust include files.
358 * trans-decl.c: Ditto.
360 2014-10-24 Tobias Burnus <burnus@net-b.de>
362 * check.c (check_co_collective): Reject coindexed A args.
363 (gfc_check_co_reduce): Add OPERATOR checks.
364 * gfortran.texi (_gfortran_caf_co_broadcast, _gfortran_caf_co_max,
365 _gfortran_caf_co_min, _gfortran_caf_co_sum,
366 _gfortran_caf_co_reduce): Add ABI documentation.
367 * intrinsic.texi (CO_REDUCE): Document intrinsic.
368 (DPROD): Returns double not single precision.
369 * trans-decl.c (gfor_fndecl_co_reduce): New global var.
370 (gfc_build_builtin_function_decls): Init it.
371 * trans.h (gfor_fndecl_co_reduce): Declare it.
372 * trans-intrinsic.c (conv_co_collective,
373 gfc_conv_intrinsic_subroutine): Handle CO_REDUCE.
375 2014-10-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
378 * trans-const.c (gfc_build_nan): New function.
379 * trans-const.h (gfc_build_nan): New prototype.
380 * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Handle special
382 (gfc_conv_intrinsic_minmaxval): Use gfc_build_nan.
383 (gfc_conv_intrinsic_fraction): Handle special values.
384 (gfc_conv_intrinsic_spacing): Likewise.
385 (gfc_conv_intrinsic_rrspacing): Likewise.
386 (gfc_conv_intrinsic_set_exponent): Likewise.
388 2014-10-18 Paul Thomas <pault@gcc.gnu.org>
391 * resolve.c (resolve_ordinary_assign): Add data component to
392 rvalue expression for class to type assignment.
394 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
396 * f95-lang.c: Adjust include files.
397 * trans-decl.c: Likewise.
399 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
401 * trans-decl.c, trans.c, trans.h: Use hash_table instead of hashtab.
403 2014-10-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
406 * simplify.c (gfc_simplify_atan): Use mpfr_zero_p to check for zeros.
407 (gfc_simplify_log): Likewise.
408 (gfc_simplify_scale): Likewise.
409 (gfc_simplify_exponent): Handle infinities and NaNs.
410 (gfc_simplify_fraction): Handle infinities.
411 (gfc_simplify_rrspacing): Handle signed zeros and NaNs.
412 (gfc_simplify_set_exponent): Handle infinities and NaNs.
413 (gfc_simplify_spacing): Handle zeros, infinities and NaNs.
415 2014-10-10 Jakub Jelinek <jakub@redhat.com>
418 * trans-openmp.c (gfc_omp_predetermined_sharing): Return
419 OMP_CLAUSE_DEFAULT_SHARED for parameters or vtables.
421 2014-10-10 Tobias Burnus <burnus@net-b.de>
423 * gfortran.h (gfc_set_implicit_none): Update prototype.
424 * symbol.c (gfc_set_implicit_none): Take and
425 use error location. Move diagnostic from here to ...
426 * decl.c (gfc_match_implicit_none): ... here. And
427 update call. Handle empty implicit-none-spec.
428 (gfc_match_implicit): Handle statement-separator ";".
430 2014-10-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
432 * f95-lang.c (gfc_init_builtin_functions): Add more floating-point
434 * mathbuiltins.def (OTHER_BUILTIN): Define built-ins for logb,
435 remainder, rint and signbit.
436 * trans-decl.c (save_fp_state, restore_fp_state): Move to
438 (gfc_generate_function_code): Use new names for these two functions.
439 * trans-expr.c (gfc_conv_function_expr): Catch IEEE functions to
440 emit code from the front-end.
441 * trans-intrinsic.c (gfc_save_fp_state, gfc_restore_fp_state,
442 conv_ieee_function_args, conv_intrinsic_ieee_builtin,
443 conv_intrinsic_ieee_is_normal, conv_intrinsic_ieee_is_negative,
444 conv_intrinsic_ieee_logb_rint, conv_intrinsic_ieee_rem,
445 conv_intrinsic_ieee_next_after, conv_intrinsic_ieee_scalb,
446 conv_intrinsic_ieee_copy_sign, gfc_conv_ieee_arithmetic_function):
448 * trans.h (gfc_conv_ieee_arithmetic_function,
449 gfc_save_fp_state, gfc_restore_fp_state): New prototypes.
451 2014-10-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
455 * gfortran.h (gfc_warning_cmdline): Add overload that takes an
457 (gfc_error_cmdline): Declare.
458 * error.c (gfc_warning_cmdline): New overload that takes an option.
459 (gfc_error_cmdline): New.
460 * lang.opt (Wmissing-include-dirs): New.
461 * scanner.c (add_path_to_list): Use the new functions.
462 (load_file): Likewise.
463 * options.c (gfc_init_options): Wmissing-include-dirs is enabled
464 by default in Fortran.
465 (gfc_handle_option): Accept automatically handled options.
467 2014-10-06 Tobias Burnus <burnus@net-b.de>
469 * libgfortran.h (GFC_STD_F2015): Add.
470 * decl.c (gfc_match_implicit_none): Handle spec list.
471 (gfc_match_implicit): Move double intrinsic warning here.
472 * gfortran.h (gfc_namespace): Add has_implicit_none_export:1.
473 (gfc_set_implicit_none): Update interface.
474 * interface.c (gfc_procedure_use): Add implicit-none external
476 * parse.c (accept_statement): Remove call.
477 (verify_st_order): Permit that external-implict-none follows
479 * symbol.c (gfc_set_implicit_none): Handle external/type
482 2014-10-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
485 * resolve.c (resolve_fl_procedure): Clean up obsolescence warning.
487 2014-09-25 Tobias Burnus <burnus@net-b.de>
489 * check.c (check_co_collective): Renamed from check_co_minmaxsum,
491 (gfc_check_co_minmax, gfc_check_co_sum): Update call.
492 (gfc_check_co_broadcast, gfc_check_co_reduce): New.
493 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
495 * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
496 * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
498 * intrinsic.texi (CO_BROADCAST): Add.
499 * trans.h (gfor_fndecl_co_broadcast): New.
500 * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
501 (gfc_build_builtin_function_decls): Add decl for it,
502 * trans-intrinsic.c (conv_co_collective): Renamed from
503 conv_co_minmaxsum. Handle co_reduce.
504 (gfc_conv_intrinsic_subroutine): Handle co_reduce.
506 2014-09-23 Jakub Jelinek <jakub@redhat.com>
509 * trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL
510 instead of VAR_DECL for base_decl.
512 2014-09-21 Jan Hubicka <hubicka@ucw.cz>
514 * openmp.c (omp_context): Rename to ...
515 (fortran_omp_context): ... this one.
517 2014-09-21 Dominique d'Humieres <dominiq@lps.ens.fr>
519 * resolve.c (resolve_fl_procedure): Remove duplicated lines.
521 2014-09-20 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
522 Tobias Burnus <burnus@net-b.de>
524 * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with
525 generating temporary for value argument.
527 2014-09-20 Joost VandeVondele <vondele@gcc.gnu.org>
529 * trans-expr.c (gfc_reset_vptr): Fix comment whitespace.
530 (gfc_conv_class_to_class): Likewise.
531 (gfc_conv_procedure_call): Likewise.
532 (arrayfunc_assign_needs_temporary): Likewise.
533 (realloc_lhs_loop_for_fcn_call): Likewise.
534 (gfc_trans_assignment_1): Likewise.
535 * trans-array.c (gfc_conv_array_ref): Likewise.
536 (gfc_array_allocate): Likewise.
537 (gfc_alloc_allocatable_for_assignment): Likewise.
538 * symbol.c (generate_isocbinding_symbol): Likewise.
539 * class.c (finalization_scalarizer): Likewise.
540 (finalizer_insert_packed_call): Likewise.
541 (generate_finalization_wrapper): Likewise.
542 (find_intrinsic_vtab): Likewise.
543 * decl.c (gfc_match_import): Likewise.
544 (match_procedure_decl): Likewise.
545 (gfc_match_subroutine): Likewise.
546 (gfc_match_bind_c): Likewise.
547 (gfc_match_volatile): Likewise.
548 * trans-common.c (create_common): Likewise.
549 * error.c (gfc_diagnostic_starter): Likewise.
550 * trans-stmt.c (gfc_trans_sync): Likewise.
551 (gfc_trans_critical): Likewise.
552 (gfc_trans_simple_do): Likewise.
553 (gfc_trans_do): Likewise.
554 (gfc_trans_where_assign): Likewise.
555 * expr.c (gfc_is_simply_contiguous): Likewise.
556 * module.c (unquote_string): Likewise.
557 * trans.c (gfc_add_finalizer_call): Likewise.
558 * trans-types.c (gfc_init_kinds): Likewise.
559 * scanner.c (preprocessor_line): Likewise.
560 * gfortranspec.c (lang_specific_driver): Likewise.
561 * frontend-passes.c (create_var): Likewise.
562 (cfe_expr_0): Likewise.
563 * resolve.c (check_host_association): Likewise.
564 (gfc_resolve_code): Likewise.
565 (resolve_fl_derived0): Likewise.
566 (resolve_symbol): Likewise.
567 * f95-lang.c (poplevel): Likewise.
568 * trans-decl.c (create_main_function): Likewise.
569 * trans-io.c (transfer_expr): Likewise.
570 * arith.c (gfc_arith_divide): Likewise.
571 * parse.c (resolve_all_program_units): Likewise.
572 * check.c (gfc_check_rank): Likewise.
573 (gfc_check_sizeof): Likewise.
574 (is_c_interoperable): Likewise.
575 * dependency.c (gfc_dep_difference): Likewise.
576 * primary.c (gfc_match_rvalue): Likewise.
577 * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise.
578 (conv_isocbinding_subroutine): Likewise.
579 * options.c (gfc_post_options): Likewise.
580 (gfc_handle_fpe_option): Likewise.
581 (gfc_get_option_string): Likewise.
582 * simplify.c (simplify_transformation_to_scalar): Likewise.
583 (gfc_simplify_spread): Likewise.
585 2014-09-19 Joost VandeVondele <vondele@gcc.gnu.org>
588 * trans-array.c (gfc_trans_deferred_array): Only nullify allocatables.
590 2014-09-15 Jakub Jelinek <jakub@redhat.com>
592 * Make-lang.in (check_gfortran_parallelize): Change to just an upper
595 2014-09-13 Tobias Burnus <burnus@net-b.de>
598 * trans-decl.c (gfc_build_builtin_function_decls): Fix
599 caf_unlock declaration.
601 2014-09-12 Joseph Myers <joseph@codesourcery.com>
603 * trans-types.c (gfc_init_kinds): Check
604 targetm.libgcc_floating_mode_supported_p for floating-point
605 modes. Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
607 2014-09-05 Joost VandeVondele <vondele@gcc.gnu.org>
610 * intrinsic.texi (INT): clarify result.
612 2014-09-03 Fritz Reese <Reese-Fritz@zai.com>
615 * decl.c (variable_decl): Don't overwrite typespecs of Cray pointees
616 when matching a component declaration.
618 2014-09-02 Marek Polacek <polacek@redhat.com>
621 * interface.c (compare_parameter): Fix condition.
622 * trans-expr.c (gfc_conv_procedure_call): Likewise.
624 2014-08-31 Fritz Reese <Reese-Fritz@zai.com>
627 * resolve.c (apply_default_init_local): Don't treat variables
628 in RECURSIVE procedures as saved.
630 2014-08-31 Tobias Burnus <burnus@net-b.de>
632 * trans-decl.c (gfc_build_builtin_function_decls): Add
633 may_require_tmp dummy argument.
634 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
635 conv_caf_send): Handle may_require_tmp argument.
636 (gfc_conv_intrinsic_function): Update call.
637 * gfortran.texi (_gfortran_caf_send, _gfortran_caf_get,
638 _gfortran_caf_sendget): Update interface description.
640 2014-08-30 Tobias Burnus <burnus@net-b.de>
642 * trans.h (gfc_caf_get_image_index,
643 gfc_get_caf_token_offset): New prototypes.
644 * trans-expr.c (gfc_caf_get_image_index): Moved from
645 trans-intrinsic.c and renamed.
646 (gfc_get_caf_token_offset) Ditto; support offset = NULL
648 * trans-intrinsic.c (get_caf_token_offset, caf_get_image_index):
650 (gfc_conv_intrinsic_caf_get, conv_caf_send,
651 conv_intrinsic_atomic_op, conv_intrinsic_atomic_ref,
652 conv_intrinsic_atomic_cas): Update callers.
654 2014-08-30 Tobias Burnus <burnus@net-b.de>
659 * dependency.c (gfc_check_dependency): Allow for optimizations
660 in the pointer-alias check.
662 2014-08-30 Janne Blomqvist <jb@gcc.gnu.org>
664 * module.c (gfc_dump_module): Use ISO C remove() instead of POSIX
667 2014-08-29 Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com>
670 * module.c (gfc_dump_module): Unlink old module file before
673 2014-08-26 Thomas Koenig <tkoenig@gcc.gnu.org>
675 * frontend_passes (expr_array): Replace by vec template.
677 (expr_count): Remove.
678 (doloop_list): Replace by vec template.
679 (doloop_size): Remove.
680 (gfc_run_passes): Adjust to use of vec template.
681 (cfe_register_funcs): Likewise.
682 (cfe_expr_0): Likewise.
683 (doloop_code): Likewise.
685 2014-08-22 Steven Bosscher <steven@gcc.gnu.org>
688 * resolve.c (resolve_select): Fix list traversal in case the
689 last element of the CASE list was dropped as unreachable code.
691 2014-08-22 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
694 * lang.opt (Wuse-without-only): New flag.
695 * gfortran.h (gfc_option_t): Add it.
696 * invoke.texi: Document it.
697 * module.c (gfc_use_module): Warn if needed.
698 * options.c (gfc_init_options,gfc_handle_option): Init accordingly.
700 2014-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
703 * frontend-passes.c (optimize_binop_array_assignment):
704 Do not try to optimize the array assignment for string
707 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
710 * error.c (gfc_diagnostic_build_locus_prefix): New function.
711 (gfc_diagnostic_starter): Follow Fortran FE diagnostics.
712 (gfc_diagnostic_finalizer): Do not call default finalizer.
714 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
717 * error.c (gfc_diagnostic_finalizer): Call default finalizer.
719 2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
721 * options.c (gfc_init_options_struct): assert that the frontend sets
722 flag_errno_math and flag_associative_math.
724 2014-08-17 Tobias Burnus <burnus@net-b.de>
726 * resolve.c (gfc_resolve_finalizers): Ensure that parents are
729 2014-08-17 Tobias Burnus <burnus@net-b.de>
731 * trans-io.c (gfc_build_io_library_fndecls): Fix decl of
733 (transfer_namelist_element): Use proper int type as argument.
735 2014-08-15 Thomas Koenig <tkoenig@gcc.gnu.org>
738 * trans-expr.c (is_runtime_conformable): Add NULL pointer checks.
740 2014-08-15 Tobias Burnus <burnus@net-b.de>
742 * resolve.c (resolve_critical): Fix name mangling.
743 * trans-stmt.c (gfc_trans_critical): Fix lock call.
745 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
748 * gfortran.h: Define GCC_DIAG_STYLE.
749 (gfc_diagnostics_init,gfc_warning_cmdline): Declare.
750 * trans-array.c: Include gfortran.h before diagnostic-core.h.
751 * trans-expr.c: Likewise.
752 * trans-openmp.c: Likewise.
753 * trans-const.c: Likewise.
755 * trans-types.c: Likewise.
756 * f95-lang.c: Likewise.
757 * trans-decl.c: Likewise.
758 * trans-io.c: Likewise.
759 * trans-intrinsic.c: Likewise.
760 * error.c: Include diagnostic.h and diagnostic-color.h.
761 (gfc_diagnostic_build_prefix): New.
762 (gfc_diagnostic_starter): New.
763 (gfc_diagnostic_finalizer): New.
764 (gfc_warning_cmdline): New.
765 (gfc_diagnostics_init): New.
766 * gfc-diagnostic.def: New.
767 * options.c (gfc_init_options): Call gfc_diagnostics_init.
768 (gfc_post_options): Use gfc_warning_cmdline.
770 2014-08-15 Jakub Jelinek <jakub@redhat.com>
771 Tobias Burnus <burnus@net-b.de>
774 * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
775 is allocatable, rather than whenever var->attr.allocatable.
777 2014-08-15 Jakub Jelinek <jakub@redhat.com>
780 * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
781 or allocatable passed by reference.
782 (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
784 2014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
787 * gfortran.h (symbol_attribute): Add fe_temp flag.
788 * frontend-passes.c (is_fe_temp): New function.
789 (create_var): Don't add a temporary for an already
790 created variable or for a constant.
791 (combine_ARRAY_constructor): Remove special handling
794 2014-08-14 Tobias Burnus <burnus@net-b.de>
796 * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
797 (_gfortran_caf_register): Update for locking/critical.
798 (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
799 * resolve.c (resolve_critical): New.
800 (gfc_resolve_code): Call it.
801 * trans-decl.c (gfor_fndecl_caf_critical,
802 gfor_fndecl_caf_end_critical): Remove.
803 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
804 (gfc_build_builtin_function_decls): Remove critical,
805 assign locking declarations.
806 (generate_coarray_sym_init): Handle locking and
808 * trans-stmt.c (gfc_trans_critical): Add calls to
809 lock/unlock libcaf functions.
810 * trans.h (gfc_coarray_type): Update locking, add
811 critical enum values.
812 (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
813 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
815 2014-08-14 Tobias Burnus <burnus@net-b.de>
817 * gfortran.texi (Coarray Programming): Add first ABI
820 2014-08-14 Jakub Jelinek <jakub@redhat.com>
823 * openmp.c (gfc_match_omp_clauses): When failed to match
824 operator name, defined op name or name, set buffer to
825 empty string. Don't call gfc_find_omp_udr if buffer is empty
827 (gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
828 before calling gfc_free_omp_udr.
830 2014-08-11 Richard Biener <rguenther@suse.de>
833 * trans-expr.c (gfc_conv_structure): Initialize _size with
834 a value of proper type.
836 2014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
839 * simplify.c (gfc_simplify_dot_product): Convert types of
840 vectors before calculating the result.
842 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
844 * openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
846 2014-07-26 Tobias Burnus <burnus@net-b.de>
851 * intrinsic.texi (SIZEOF): Document changed behavior
852 for polymorphic arrays.
854 2014-07-26 Tobias Burnus <burnus@net-b.de>
859 * check.c (gfc_check_sizeof): Permit for assumed type if and
860 only if it has an array descriptor.
861 * intrinsic.c (do_ts29113_check): Permit SIZEOF.
862 (add_functions): SIZEOF is an Inquiry function.
863 * intrinsic.texi (SIZEOF): Add note that only contiguous
864 arrays are permitted.
865 * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
867 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
868 assumed type + array descriptor, CLASS and assumed rank.
869 (gfc_conv_intrinsic_storage_size): Handle class arrays.
871 2014-07-25 Tobias Burnus <burnus@net-b.de>
873 * simplify.c (gfc_simplify_storage_size): Use proper
874 integer kind for the returned value.
876 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
878 * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
879 correct menu position to match sectioning.
881 2014-06-15 Tobias Burnus <burnus@net-b.de>
883 * symbol.c (check_conflict): Add codimension conflict with
884 pointer; fix cray-pointee check.
886 2014-06-14 Tobias Burnus <burnus@net-b.de>
888 * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
889 for kind mismatch with -fcoarray=lib.
891 2014-07-12 Paul Thomas <pault@gcc.gnu.org>
894 * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
895 that elements are skipped. This then correctly aligns 'reverse'
896 with the scalarizer loops.
898 2014-07-12 Tobias Burnus <burnus@net-b.de>
901 * trans-types.c (gfc_init_types): Fix data-type bug
902 with gfc_max_array_element_size.
904 2014-07-12 Tobias Burnus <burnus@net-b.de>
906 * libgfortran.h (libcaf_atomic_codes): Add.
907 * trans-decl.c (gfor_fndecl_caf_atomic_def,
908 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
909 gfor_fndecl_caf_atomic_op): New variables.
910 (gfc_build_builtin_function_decls): Initialize them.
911 * trans.h (gfor_fndecl_caf_atomic_def,
912 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
913 gfor_fndecl_caf_atomic_op): New variables.
914 * trans-intrinsic.c (conv_intrinsic_atomic_op,
915 conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
916 Add library calls with -fcoarray=lib.
918 2014-07-12 Tobias Burnus <burnus@net-b.de>
920 * check.c (gfc_check_atomic): Update for STAT=.
921 (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
922 (gfc_check_atomic_op, gfc_check_atomic_cas,
923 gfc_check_atomic_fetch_op): New.
924 * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
925 GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
926 GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
927 GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
928 * intrinsic.c (add_subroutines): Handle them.
929 * intrinsic.texi: Add documentation for them.
930 (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
931 (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
932 * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
933 gfc_check_atomic_fetch_op): New
935 * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
936 * iso-fortran-env.def: Add it.
937 * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
938 conv_intrinsic_atomic_ref; handle more atomics.
939 (conv_intrinsic_atomic_def): Handle STAT=.
940 (conv_intrinsic_atomic_cas): New.
941 (gfc_conv_intrinsic_subroutine): Handle new atomics.
943 2014-07-09 Bernd Schmidt <bernds@codesourcery.com>
945 * trans-array.c (gfc_build_constant_array_constructor): Build a
946 static decl manually.
947 * trans-decl.c (create_main_function): Likewise.
949 2014-07-07 Paul Thomas <pault@gcc.gnu.org>
953 * trans-expr.c (fcncall_realloc_result): Use the natural type
954 for the address expression of 'res_desc'.
956 2014-07-07 Gerald Pfeifer <gerald@pfeifer.com>
958 * gfortran.texi (Fortran 2003 status): Fix grammar.
960 2014-07-04 Tobias Burnus <burnus@net-b.de>
962 * resolve.c (resolve_assoc_var): Fix corank setting.
963 * trans-array.c (gfc_conv_descriptor_token): Change assert.
964 for select-type temporaries.
965 * trans-decl.c (generate_coarray_sym_init): Skip for
966 attr.select_type_temporary.
967 * trans-expr.c (gfc_conv_procedure_call): Fix for
968 select-type temporaries.
969 * trans-intrinsic.c (get_caf_token_offset): Ditto.
970 (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
972 * trans-types.h (gfc_get_dtype_rank_type): New.
973 * trans-types.c (gfc_get_dtype_rank_type): Ditto.
975 2014-07-03 Tobias Burnus <burnus@net-b.de>
977 * scanner.c (skip_free_comments): Fix indentation.
979 2014-07-02 Jakub Jelinek <jakub@redhat.com>
980 Fritz Reese <Reese-Fritz@zai.com>
982 * decl.c (variable_decl): Reject old style initialization
983 for derived type components.
985 2014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
989 * decl.c (check_bind_name_identifier): New function.
990 (gfc_match_bind_c): Match any constant expression as binding
992 * match.c (gfc_match_name_C): Remove.
994 2014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
997 * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
998 * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
1000 * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
1001 * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
1002 * module.c (mio_symbol): Keep track of symbols which came from
1004 (gfc_use_module): Keep track of the IEEE modules.
1005 * trans-decl.c (gfc_get_symbol_decl): Adjust code since
1006 we have new intrinsic modules.
1007 (gfc_build_builtin_function_decls): Build decls for
1008 ieee_procedure_entry and ieee_procedure_exit.
1009 (is_from_ieee_module, is_ieee_module_used, save_fp_state,
1010 restore_fp_state): New functions.
1011 (gfc_generate_function_code): Save and restore floating-point
1012 state on procedure entry/exit, when IEEE modules are used.
1013 * intrinsic.texi: Document the IEEE modules.
1015 2014-06-25 Tobias Burnus <burnus@net-b.de>
1017 * interface.c (check_intents): Fix diagnostic with
1020 2014-06-25 Tobias Burnus <burnus@net-b.de>
1022 * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
1023 when assigning a coindexed RHS scalar to a noncoindexed LHS
1025 * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
1026 for a noncoindexed scalar RHS.
1028 2014-06-25 Tobias Burnus <burnus@net-b.de>
1030 * check.c (check_co_minmaxsum): Add definable check.
1031 * expr.c (gfc_check_vardef_context): Fix context == NULL case.
1032 * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
1034 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
1037 2014-06-25 Jakub Jelinek <jakub@redhat.com>
1039 * trans.h (gfc_omp_clause_linear_ctor): New prototype.
1040 * trans-openmp.c (gfc_omp_linear_clause_add_loop,
1041 gfc_omp_clause_linear_ctor): New functions.
1042 (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
1043 correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
1044 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
1046 2014-06-24 Jakub Jelinek <jakub@redhat.com>
1048 * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
1050 * f95-lang.c (gfc_init_builtin_functions): Initialize
1051 BUILT_IN_ASSUME_ALIGNED.
1052 * gfortran.h (gfc_omp_namelist): Change udr field type to
1053 struct gfc_omp_namelist_udr.
1054 (gfc_omp_namelist_udr): New type.
1055 (gfc_get_omp_namelist_udr): Define.
1056 (gfc_resolve_code): New prototype.
1057 * match.c (gfc_free_omp_namelist): Free name->udr.
1058 * module.c (intrinsics): Add INTRINSIC_USER.
1059 (fix_mio_expr): Likewise.
1060 (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
1061 * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
1062 (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
1063 Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
1064 (struct resolve_omp_udr_callback_data): New type.
1065 (resolve_omp_udr_callback, resolve_omp_udr_callback2,
1066 resolve_omp_udr_clause): New functions.
1067 (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
1069 (omp_udr_callback): Don't check for implicitly declared functions
1071 (gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
1072 implicitly declared subroutines here.
1073 * resolve.c (resolve_function): If value.function.isym is non-NULL,
1074 consider it already resolved.
1075 (resolve_code): Renamed to ...
1076 (gfc_resolve_code): ... this. No longer static.
1077 (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
1079 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
1080 by reference type (C_PTR) variables.
1081 (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
1082 (gfc_trans_omp_udr_expr): Remove.
1083 (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
1084 Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
1085 expand it as assignment or subroutine call. Don't initialize
1086 value.function.isym.
1088 2014-06-23 Tobias Burnus <burnus@net-b.de>
1090 * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
1091 explicit-size arrays with -fcoarray=lib.
1093 2014-06-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1096 * invoke.texi: Don't mention nonexisting -fcase-lower option.
1098 2014-06-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1101 * expr.c (scalarize_intrinsic_call): Take care of optional
1104 2014-06-19 Tobias Burnus <burnus@net-b.de>
1106 * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
1109 2014-06-18 Tobias Burnus <burnus@net-b.de>
1111 * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
1112 * intrinsic.texi (OpenMP Modules): Ditto.
1114 2014-06-18 Jakub Jelinek <jakub@redhat.com>
1116 * cpp.c (cpp_define_builtins): Change _OPENMP macro to
1118 * dump-parse-tree.c (show_omp_namelist): Add list_type
1119 argument. Adjust for rop being u.reduction_op now,
1120 handle depend_op or map_op.
1121 (show_omp_node): Adjust callers. Print some new
1122 OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
1123 becoming a single OMP_LIST_DEPEND.
1124 * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
1126 (gfc_attribute_table): New variable.
1127 (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
1128 * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
1129 EXEC_OMP_* codes and new clauses.
1130 * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
1131 ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
1132 ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
1133 ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
1134 ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
1135 ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
1136 ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
1137 ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
1138 ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
1139 ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
1140 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
1141 ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
1142 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
1143 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
1144 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
1145 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
1146 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
1147 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
1148 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
1149 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
1150 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
1151 (symbol_attribute): Add omp_declare_target field.
1152 (gfc_omp_depend_op, gfc_omp_map_op): New enums.
1153 (gfc_omp_namelist): Replace rop field with union
1154 containing reduction_op, depend_op and map_op.
1155 (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
1156 (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
1157 (gfc_omp_clauses): Add num_teams, device, thread_limit,
1158 dist_sched_kind, dist_chunk_size fields.
1159 (gfc_common_head): Add omp_declare_target field.
1160 (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
1161 EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
1162 EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
1163 EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
1164 EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
1165 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
1166 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
1167 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
1168 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
1169 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
1170 EXEC_OMP_TARGET_UPDATE.
1171 (gfc_add_omp_declare_target): New prototype.
1172 * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
1173 gfc_match_omp_distribute_parallel_do,
1174 gfc_match_omp_distribute_parallel_do_simd,
1175 gfc_match_omp_distribute_simd, gfc_match_omp_target,
1176 gfc_match_omp_target_data, gfc_match_omp_target_teams,
1177 gfc_match_omp_target_teams_distribute,
1178 gfc_match_omp_target_teams_distribute_parallel_do,
1179 gfc_match_omp_target_teams_distribute_parallel_do_simd,
1180 gfc_match_omp_target_teams_distribute_simd,
1181 gfc_match_omp_target_update, gfc_match_omp_teams,
1182 gfc_match_omp_teams_distribute,
1183 gfc_match_omp_teams_distribute_parallel_do,
1184 gfc_match_omp_teams_distribute_parallel_do_simd,
1185 gfc_match_omp_teams_distribute_simd): New prototypes.
1186 * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
1187 (attr_bits): Likewise.
1188 (mio_symbol_attribute): Handle omp_declare_target attribute.
1189 (gfc_free_omp_clauses): Free num_teams, device, thread_limit
1190 and dist_chunk_size expressions.
1191 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
1192 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
1193 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
1194 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
1195 OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
1196 OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
1197 OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
1198 OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
1199 OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
1200 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
1201 OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
1202 OMP_CLAUSE_DIST_SCHEDULE): Define.
1203 (gfc_match_omp_clauses): Change mask parameter to unsigned int.
1204 Adjust for rop becoming u.reduction_op. Disallow inbranch with
1205 notinbranch. For depend clause, always create OMP_LIST_DEPEND
1206 and fill in u.depend_op. Handle num_teams, device, map,
1207 to, from, thread_limit and dist_schedule clauses.
1208 (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
1209 OMP_CLAUSE_NOTINBRANCH.
1210 (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
1211 OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
1212 OMP_DISTRIBUTE_CLAUSES): Define.
1213 (match_omp): New function.
1214 (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
1215 gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
1216 gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
1217 gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
1218 gfc_match_omp_task): Rewritten using match_omp.
1219 (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
1220 Diagnose if the directives are followed by unexpected junk.
1221 (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
1222 gfc_match_omp_distribute_parallel_do_simd,
1223 gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
1224 gfc_match_omp_target, gfc_match_omp_target_data,
1225 gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
1226 gfc_match_omp_target_teams_distribute_parallel_do,
1227 gfc_match_omp_target_teams_distribute_parallel_do_simd,
1228 gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
1229 gfc_match_omp_teams, gfc_match_omp_teams_distribute,
1230 gfc_match_omp_teams_distribute_parallel_do,
1231 gfc_match_omp_teams_distribute_parallel_do_simd,
1232 gfc_match_omp_teams_distrbute_simd): New functions.
1233 * openmp.c (resolve_omp_clauses): Adjust for
1234 OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
1235 OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
1236 dist_chunk_size and thread_limit.
1237 (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
1238 ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
1239 new EXEC_OMP_* codes.
1240 (resolve_omp_do): Handle various new EXEC_OMP_* codes.
1241 (gfc_resolve_omp_directive): Likewise.
1242 (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
1243 * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
1244 offloading related directives.
1245 (case_executable): Add ST_OMP_TARGET_UPDATE.
1246 (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
1248 (case_decl): Add ST_OMP_DECLARE_TARGET.
1249 (gfc_ascii_statement): Handle new ST_OMP_* codes.
1250 (parse_omp_do): Handle various new ST_OMP_* codes.
1251 (parse_executable): Likewise.
1252 * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
1254 (resolve_code): Likewise.
1255 (resolve_symbol): Change that !$OMP DECLARE TARGET variables
1257 * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
1258 * symbol.c (check_conflict): Check omp_declare_target conflicts.
1259 (gfc_add_omp_declare_target): New function.
1260 (gfc_copy_attr): Copy omp_declare_target.
1261 * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
1262 * trans-common.c (build_common_decl): Add "omp declare target"
1263 attribute if needed.
1264 * trans-decl.c (add_attributes_to_decl): Likewise.
1265 * trans.h (gfc_omp_finish_clause): New prototype.
1266 * trans-openmp.c (gfc_omp_finish_clause): New function.
1267 (gfc_trans_omp_reduction_list): Adjust for rop being renamed
1269 (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
1270 change to OMP_LIST_DEPEND and fix up depend handling.
1271 Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
1272 thread_limit, device, dist_chunk_size and dist_sched_kind.
1273 (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
1274 (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
1275 GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
1276 GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
1277 (gfc_split_omp_clauses): Handle splitting of clauses for new
1279 (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
1280 callable for combined constructs.
1281 (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
1282 (gfc_trans_omp_distribute, gfc_trans_omp_teams,
1283 gfc_trans_omp_target, gfc_trans_omp_target_data,
1284 gfc_trans_omp_target_update): New functions.
1285 (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
1286 new EXEC_OMP_* codes.
1288 2014-06-18 Tobias Burnus <burnus@net-b.de>
1291 * invoke.texi (-Wunused-parameter): Make clearer when
1292 -Wextra implies this option.
1294 2014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
1297 * options.c (gfc_handle_option): Remove call to
1298 handle_generated_option.
1300 2014-06-17 Tobias Burnus <burnus@net-b.de>
1302 * check.c (gfc_check_atomic, gfc_check_atomic_def):
1303 Use argument for GFC_ISYM_CAF_GET.
1304 * resolve.c (resolve_variable): Enable CAF_GET insertion.
1305 (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
1306 (resolve_ordinary_assign): Enable CAF_SEND insertion.
1307 * trans-const.c (gfc_build_string_const,
1308 gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
1309 * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
1310 gfor_fndecl_caf_sendget): New global variables.
1311 (gfc_build_builtin_function_decls): Initialize them;
1312 update co_min/max/sum initialization.
1313 * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
1314 get_tree_for_caf_expr and removed static.
1315 (gfc_conv_procedure_call): Update call.
1316 * trans-intrinsic.c (caf_get_image_index,
1317 conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
1318 get_caf_token_offset, gfc_conv_intrinsic_caf_get,
1319 conv_caf_send): New.
1320 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
1321 gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
1322 (conv_co_minmaxsum): Update call for remove unused vector
1324 (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
1325 Skip a CAF_GET of the argument.
1326 * trans-types.c (gfc_get_caf_vector_type): New.
1327 * trans-types.h (gfc_get_caf_vector_type): New.
1328 * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
1329 gfor_fndecl_caf_sendget): New global variables.
1330 (gfc_get_tree_for_caf_expr): New prototypes.
1332 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
1334 * trans-common.c (build_common_decl): Use
1336 * trans-decl.c (gfc_finish_var_decl): Likewise.
1337 (get_proc_pointer_decl): Likewise.
1339 2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1343 * check.c (gfc_check_system_clock): Improve checking of arguments.
1344 * intrinsic.texi: Update doc of SYSTEM_CLOCK.
1345 * iresolve.c (gfc_resolve_system_clock): Choose library function
1346 used depending on argument kinds.
1347 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
1348 decls for system_clock_4 and system_clock_8.
1349 * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
1350 (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
1351 * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
1354 2014-06-12 Tobias Burnus <burnus@net-b.de>
1356 * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
1357 * symbol.c (gfc_copy_formal_args_intr): Handle the case
1358 that absent optional arguments should be ignored.
1359 * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
1360 (gfc_conv_intrinsic_funcall,
1361 conv_generic_with_optional_char_arg): Update call.
1362 * resolve.c (gfc_resolve_intrinsic): Ditto.
1364 2014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr>
1365 Mikael Morin <mikael@gcc.gnu.org>
1368 * trans-expr.c (gfc_conv_expr_reference): Deallocate array
1371 2014-06-10 Jakub Jelinek <jakub@redhat.com>
1374 * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
1376 * openmp.c (resolve_omp_clauses): Remove allocatable components
1377 diagnostics. Add associate-name and intent(in) pointer
1378 diagnostics for various clauses, diagnose procedure pointers in
1380 * parse.c (match_word_omp_simd): New function.
1381 (matchs, matcho): New macros.
1382 (decode_omp_directive): Change match macros to either matchs
1383 or matcho. Handle -fopenmp-simd.
1384 (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
1385 * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
1387 * trans-array.c (get_full_array_size): Rename to...
1388 (gfc_full_array_size): ... this. No longer static.
1389 (duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
1391 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
1392 duplicate_allocatable callers.
1393 (gfc_duplicate_allocatable_nocopy): New function.
1394 (structure_alloc_comps): Adjust g*_full_array_size and
1395 duplicate_allocatable caller.
1396 * trans-array.h (gfc_full_array_size,
1397 gfc_duplicate_allocatable_nocopy): New prototypes.
1398 * trans-common.c (create_common): Call gfc_finish_decl_attrs.
1399 * trans-decl.c (gfc_finish_decl_attrs): New function.
1400 (gfc_finish_var_decl, create_function_arglist,
1401 gfc_get_fake_result_decl): Call it.
1402 (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
1403 don't allocate it again.
1404 (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
1406 * trans.h (gfc_finish_decl_attrs): New prototype.
1407 (struct lang_decl): Add scalar_allocatable and scalar_pointer
1409 (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
1410 GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
1411 GFC_DECL_ASSOCIATE_VAR_P): Define.
1412 (GFC_POINTER_TYPE_P): Remove.
1413 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
1414 GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
1415 GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
1416 (gfc_omp_predetermined_sharing): Associate-names are predetermined.
1417 (enum walk_alloc_comps): New.
1418 (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
1419 gfc_walk_alloc_comps): New functions.
1420 (gfc_omp_private_outer_ref): Return true for scalar allocatables or
1421 decls with allocatable components.
1422 (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
1423 gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
1424 allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
1425 allocatables and decls with allocatable components.
1426 (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
1428 (gfc_trans_omp_reduction_list): Call
1429 gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
1430 (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
1431 (gfc_trans_omp_parallel_do_simd): Likewise.
1432 * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
1433 (gfc_get_derived_type): Call gfc_finish_decl_attrs.
1435 2014-06-09 Paul Thomas <pault@gcc.gnu.org>
1438 * trans-stmt.c (trans_associate_var): Check that array
1439 constructors are constant for direct reference.
1441 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1444 * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
1445 BESSEL_Y0, and BESSEL_Y1.
1447 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1450 * trans-decl.c (gfc_create_module_variable): Don't create
1451 Cray-pointee decls twice.
1453 2014-06-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1455 * io.c (resolve_tag): Warn on non-default kind for NUMBER,
1456 NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
1458 2014-06-06 Jakub Jelinek <jakub@redhat.com>
1460 * dump-parse-tree.c (show_omp_namelist): Dump reduction
1461 id in each list item.
1462 (show_omp_node): Only handle OMP_LIST_REDUCTION, not
1463 OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
1464 dump reduction id here.
1465 * frontend-passes.c (dummy_code_callback): Renamed to...
1466 (gfc_dummy_code_callback): ... this. No longer static.
1467 (optimize_reduction): Use gfc_dummy_code_callback instead of
1468 dummy_code_callback.
1469 * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
1470 (symbol_attribute): Add omp_udr_artificial_var bitfield.
1471 (gfc_omp_reduction_op): New enum.
1472 (gfc_omp_namelist): Add rop and udr fields.
1473 (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
1474 OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
1475 OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
1476 OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
1477 (OMP_LIST_REDUCTION): New.
1478 (gfc_omp_udr): New type.
1479 (gfc_get_omp_udr): Define.
1480 (gfc_symtree): Add n.omp_udr field.
1481 (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
1482 (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
1483 gfc_dummy_code_callback): New prototypes.
1484 * match.h (gfc_match_omp_declare_reduction): New prototype.
1485 * module.c (MOD_VERSION): Increase to 13.
1486 (omp_declare_reduction_stmt): New array.
1487 (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
1489 (read_module): Read OpenMP user defined reductions.
1490 (write_module): Write OpenMP user defined reductions.
1491 * openmp.c: Include arith.h.
1492 (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
1493 (gfc_match_omp_clauses): Handle user defined reductions.
1494 Store reduction kind into gfc_omp_namelist instead of using
1495 several OMP_LIST_* entries.
1496 (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
1497 gfc_match_omp_declare_reduction): New functions.
1498 (resolve_omp_clauses): Adjust for reduction clauses being only
1499 in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
1500 (struct omp_udr_callback_data): New type.
1501 (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
1503 * parse.c (decode_omp_directive): Handle !$omp declare reduction.
1504 (case_decl): Add ST_OMP_DECLARE_REDUCTION.
1505 (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
1506 * resolve.c (resolve_fl_variable): Allow len=: or len=* on
1507 sym->attr.omp_udr_artificial_var symbols.
1508 (resolve_types): Call gfc_resolve_omp_udrs.
1509 * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
1510 use parent ns instead of gfc_current_ns.
1511 (gfc_get_sym_tree): Don't insert symbols into
1512 namespaces with omp_udr_ns set.
1513 (free_omp_udr_tree): New function.
1514 (gfc_free_namespace): Call it.
1515 * trans-openmp.c (struct omp_udr_find_orig_data): New type.
1516 (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
1517 (gfc_trans_omp_array_reduction): Renamed to...
1518 (gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
1519 argument, instead pass gfc_omp_namelist pointer N. Handle
1520 user defined reductions.
1521 (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
1522 Handle user defined reductions and reduction ops in gfc_omp_namelist.
1523 (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
1525 (gfc_split_omp_clauses): Likewise.
1527 2014-06-05 Richard Biener <rguenther@suse.de>
1530 * gfortranspec.c (spec_file): Remove.
1531 (find_spec_file): Likewise.
1532 (lang_specific_driver): Do not look for specs file in -L
1533 or append -specs command line argument.
1534 (lang_specific_pre_link): Always %:include libgfortran.spec.
1536 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
1538 * fortran/trans.c (trans_runtime_error_vararg): Call
1539 fold_build_call_array_loc instead of fold_builtin_call_array.
1541 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
1543 * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
1544 arguments to caf_init.
1546 2014-05-26 Tobias Burnus <burnus@net-b.de>
1548 * gfortran.texi (Project Status): Fix broken link.
1550 2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
1553 * intrinsics.texi (CTIME): Remove mention of locale-dependent
1556 2014-05-26 Tobias Burnus <burnus@net-b.de>
1559 * trans-io.c (nml_full_name, transfer_namelist_element): Insert
1560 a '+' rather then '%' to differentiate namelist variable names
1561 that are based on extended derived types.
1563 2014-05-25 Tobias Burnus <burnus@net-b.de>
1565 * check.c (gfc_check_num_images): New.
1566 (gfc_check_this_image): Handle distance argument.
1567 * intrinsic.c (add_functions): Update this_image and num_images
1568 for new distance and failed arguments.
1569 * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
1571 * intrinsic.h (gfc_check_num_images): New.
1572 (gfc_check_this_image, gfc_simplify_num_images,
1573 gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
1574 * iresolve.c (gfc_resolve_this_image): Handle distance argument.
1575 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1576 Handle new arguments.
1577 * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
1578 (gfc_conv_intrinsic_function): Update trans_num_images call.
1580 2014-05-23 Tobias Burnus <burnus@net-b.de>
1582 * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
1583 * gfortran.texi: Ditto.
1585 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
1587 * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
1588 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
1589 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
1590 * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
1592 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
1594 * f95-lang.c (pushlevel): Adjust.
1595 * trans-decl.c (gfc_allocate_lang_decl): Adjust.
1596 (gfc_find_module): Likewise.
1597 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1598 (gfc_get_array_type_bounds): Likewise.
1599 (gfc_nonrestricted_type): Likewise.
1600 * trans.h: Don't use variable_size gty attribute.
1602 2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr>
1604 * check.c (gfc_check_fn_rc2008): move "argument" to the right
1607 2014-05-12 Tobias Burnus <burnus@net-b.de>
1610 * openmp.c (resolve_omp_do): Reject do concurrent loops.
1612 2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
1615 * frontend-passes.c (in_assoc_list): New variable.
1616 (optimize_namespace): Initialize in_assoc_list
1617 (combine_array_constructor): Don't try to combine
1619 (gfc_code_walker): Keep track of in_assoc_list.
1621 2014-05-11 Jakub Jelinek <jakub@redhat.com>
1623 * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
1624 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1625 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1626 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1627 ST_OMP_DECLARE_SIMD.
1628 (gfc_omp_namelist): New typedef.
1629 (gfc_get_omp_namelist): Define.
1630 (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
1631 OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
1632 (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
1633 (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
1634 Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
1635 simdlen_expr fields.
1636 (gfc_omp_declare_simd): New typedef.
1637 (gfc_get_omp_declare_simd): Define.
1638 (gfc_namespace): Add omp_declare_simd field.
1639 (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1640 EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
1641 EXEC_OMP_PARALLEL_DO_SIMD.
1642 (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
1643 and GFC_OMP_ATOMIC_SWAP.
1644 (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
1645 (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
1646 gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
1648 * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
1649 * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
1650 * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
1651 simdlen_expr. Use gfc_free_omp_namelist instead of
1653 (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
1655 (gfc_match_omp_variable_list): Add end_colon, headp and
1656 allow_sections arguments. Handle parsing of array sections.
1657 Use *omp_namelist* instead of *namelist* data structure and
1658 functions/macros. Allow termination at : character.
1659 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
1660 OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
1661 OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
1662 (gfc_match_omp_clauses): Change first and needs_space variables
1663 into arguments with default values. Parse inbranch, notinbranch,
1664 proc_bind, safelen, simdlen, uniform, linear, aligned and
1666 (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
1667 (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
1668 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
1669 (gfc_match_omp_do_simd): New function.
1670 (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
1671 data structure and functions/macros.
1672 (gfc_match_omp_simd, gfc_match_omp_declare_simd,
1673 gfc_match_omp_parallel_do_simd): New functions.
1674 (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
1675 (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
1676 gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
1678 (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
1679 Use *omp_namelist* instead of *namelist* data structure and
1680 functions/macros. Resolve uniform, aligned, linear, depend,
1681 safelen and simdlen clauses.
1682 (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
1683 addition, recognize atomic swap.
1684 (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
1685 of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
1686 EXEC_OMP_PARALLEL_DO.
1687 (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
1688 data structure and functions/macros.
1689 (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1690 EXEC_OMP_PARALLEL_DO_SIMD.
1691 (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
1692 EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
1693 resolve_omp_clauses caller.
1694 (gfc_resolve_omp_declare_simd): New function.
1695 * parse.c (decode_omp_directive): Parse cancellation point, cancel,
1696 declare simd, end do simd, end simd, end parallel do simd,
1697 end taskgroup, parallel do simd, simd and taskgroup directives.
1698 (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
1699 (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
1700 ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
1701 (case_decl): Add ST_OMP_DECLARE_SIMD.
1702 (gfc_ascii_statement): Handle ST_OMP_CANCEL,
1703 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
1704 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
1705 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
1706 ST_OMP_DECLARE_SIMD.
1707 (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
1708 ST_OMP_PARALLEL_DO_SIMD.
1709 (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
1710 (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
1711 ST_OMP_PARALLEL_DO_SIMD.
1712 (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
1713 ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
1714 * trans-decl.c (gfc_get_extern_function_decl,
1715 gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
1717 * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
1718 EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
1719 safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
1720 of depend, aligned and linear clauses.
1721 * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
1722 and EXEC_OMP_PARALLEL_DO_SIMD.
1723 (gfc_free_omp_namelist): New function.
1724 * dump-parse-tree.c (show_namelist): Removed.
1725 (show_omp_namelist): New function.
1726 (show_omp_node): Handle OpenMP 4.0 additions.
1727 (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
1728 EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
1730 * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
1731 gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
1732 gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
1733 gfc_match_omp_taskgroup): New prototypes.
1734 * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
1735 argument, handle it. Allow current_function_decl to be NULL.
1736 (gfc_trans_omp_variable_list): Add declare_simd argument, pass
1737 it through to gfc_trans_omp_variable and disregard whether
1738 sym is referenced if declare_simd is true. Work on gfc_omp_namelist
1739 instead of gfc_namelist.
1740 (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
1741 gfc_namelist. Adjust gfc_trans_omp_variable caller.
1742 (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
1743 to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
1744 instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
1745 simdlen, depend, uniform, linear, proc_bind and aligned clauses.
1747 (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
1748 adjust for GFC_OMP_ATOMIC_* changes.
1749 (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
1751 (gfc_trans_omp_do): Add op argument, handle simd translation into
1753 (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
1754 GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
1755 GFC_OMP_MASK_PARALLEL): New.
1756 (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
1757 (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
1758 (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
1760 (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
1761 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1762 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1763 Adjust gfc_trans_omp_do caller.
1764 (gfc_trans_omp_declare_simd): New function.
1765 * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
1766 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1767 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1768 For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
1770 * module.c (omp_declare_simd_clauses): New variable.
1771 (mio_omp_declare_simd): New function.
1772 (mio_symbol): Call it.
1773 * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
1774 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1775 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1776 * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
1777 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1778 (resolve_code): Handle EXEC_OMP_CANCEL,
1779 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1780 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1781 (resolve_types): Call gfc_resolve_omp_declare_simd.
1783 2014-05-11 Tobias Burnus <burnus@net-b.de>
1785 * trans-intrinsic.c (gfc_build_builtin_function_decls):
1786 Change type of second argument to int.
1788 2014-05-09 Mike Stump <mikestump@comcast.net>
1791 * trans-array.c (gfc_conv_array_initializer): Fix wide-int
1794 2014-05-08 Tobias Burnus <burnus@net-b.de>
1796 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
1797 and GFC_ISYM_CAF_SEND.
1798 * intrinsic.c (add_functions): Add only internally
1799 accessible caf_get and caf_send functions.
1800 * resolve.c (add_caf_get_intrinsic,
1801 remove_caf_get_intrinsic): New functions.
1802 (resolve_variable): Resolve expression rank and
1803 prepare for add_caf_get_intrinsic call.
1804 (gfc_resolve_expr): For variables, remove rank
1806 (resolve_ordinary_assign): Prepare call to
1808 (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
1809 the LHS of an assignment.
1811 2014-05-08 Tobias Burnus <burnus@net-b.de>
1813 * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
1815 2014-05-08 Tobias Burnus <burnus@net-b.de>
1817 * check.c (check_co_minmaxsum, gfc_check_co_minmax,
1818 gfc_check_co_sum): New.
1819 * error.c (gfc_notify_std): Update -std=f2008ts.
1820 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
1821 GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
1822 * intrinsic.h (gfc_check_co_minmax,
1823 gfc_check_co_sum): Declare.
1824 * intrinsic.c (add_subroutines): Add co_min, co_max
1826 (gfc_check_intrinsic_standard): Update text for
1828 * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
1830 * invoke.texi (-std=f2008ts): Update wording.
1831 * trans.h (gfor_fndecl_co_max,
1832 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1833 * trans-decl.c (gfor_fndecl_co_max,
1834 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1835 (gfc_build_builtin_function_decls): Assign to it.
1836 * trans-intrinsic.c (conv_co_minmaxsum): New.
1837 (gfc_conv_intrinsic_subroutine): Call it.
1839 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1840 Mike Stump <mikestump@comcast.net>
1841 Richard Sandiford <rdsandiford@googlemail.com>
1843 * target-memory.c: Include wide-int.h.
1844 (gfc_interpret_logical): Use wide-int interfaces.
1845 * trans-array.c: Include wide-int.h.
1846 (gfc_conv_array_initializer): Use wide-int interfaces.
1847 * trans-const.c: Include wide-int.h.
1848 (gfc_conv_string_init): Use wide-int interfaces.
1849 (gfc_conv_mpz_to_tree): Likewise.
1850 (gfc_conv_tree_to_mpz): Likewise.
1851 * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
1852 * trans-expr.c: Include wide-int.h.
1853 (gfc_conv_cst_int_power): Use wide-int interfaces.
1854 (gfc_string_to_single_character): Likewise.
1855 (gfc_optimize_len_trim): Likewise.
1856 * trans-intrinsic.c: Include wide-int.h.
1857 (trans_this_image): Use wide-int interfaces.
1858 (gfc_conv_intrinsic_bound): Likewise.
1859 (conv_intrinsic_cobound): Likewise.
1860 * trans-types.c (gfc_init_types): Likewise.
1861 (gfc_get_array_type_bounds): Pass an integer of the correct type
1862 instead of using integer_one_node.
1864 2014-04-30 Tobias Burnus <burnus@net-b.de>
1866 * trans-decl.c (create_function_arglist): Add hidden coarray arguments
1867 also for polymorphic coarrays.
1868 * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
1869 also for polymorphic coarrays.
1871 2014-04-30 Tobias Burnus <burnus@net-b.de>
1873 * resolve.c (resolve_function): Don't do
1874 assumed-size check for lcobound/ucobound.
1875 * trans-types.c (gfc_build_array_type): Only build an array
1876 descriptor with codimensions for allocatable coarrays.
1878 2014-04-30 Tobias Burnus <burnus@net-b.de>
1880 * gfortran.h (gfc_init_coarray_decl): Remove.
1881 * parse.c (translate_all_program_units): Remove call to it.
1882 (gfc_parse_file): Update call.
1883 * trans.h (gfor_fndecl_caf_this_image,
1884 gfor_fndecl_caf_num_images): Add.
1885 (gfort_gvar_caf_num_images,
1886 gfort_gvar_caf_this_image): Remove.
1887 * trans-decl.c (gfor_fndecl_caf_this_image,
1888 gfor_fndecl_caf_num_images): Add.
1889 (gfort_gvar_caf_num_images,
1890 gfort_gvar_caf_this_image): Remove.
1891 (gfc_build_builtin_function_decls): Init new decl.
1892 (gfc_init_coarray_dec): Remove.
1893 (create_main_function): Change calls.
1894 * trans-intrinsic.c (trans_this_image, trans_image_index,
1895 conv_intrinsic_cobound): Generate call to new library function
1896 instead of to a static variable.
1897 * trans-stmt.c (gfc_trans_sync): Ditto.
1899 2014-04-30 Tobias Burnus <burnus@net-b.de>
1901 * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
1902 and derived-type coarrays.
1904 2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1908 * gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
1909 * arith.c (gfc_int2int): Convert number to signed if
1910 arithmetic overflow is not checked.
1911 * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
1912 size if range checking is in force.
1913 (convert_mpz_to_signed): Make non-static, rename to
1914 (gfc_convert_mpz_to_signed).
1915 (simplify_dshift): Use gfc_convert_mpz_to_signed.
1916 (gfc_simplify_ibclr): Likewise.
1917 (gfc_simplify_ibits): Likewise.
1918 (gfc_simplify_ibset): Likewise.
1919 (simplify_shift): Likewise.
1920 (gfc_simplify_ishiftc): Likewise.
1921 (gfc_simplify_maskr): Likewise.
1922 (gfc_simplify_maskl): Likewise.
1924 2014-04-22 Tobias Burnus <burnus@net-b.de>
1927 * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1930 2014-04-17 Jakub Jelinek <jakub@redhat.com>
1932 * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
1933 argument is enum machine_mode.
1935 2014-04-13 Paul Thomas <pault@gcc.gnu.org>
1939 * trans.h: Add 'use_offset' bitfield to gfc_se.
1940 * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
1941 as a trigger to unconditionally recalculate the offset for
1942 array slices and constant arrays.
1943 trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
1944 trans-stmt.c (trans_associate_var): Ditto.
1945 (gfc_conv_procedure_call): Ditto.
1947 2014-04-11 Tobias Burnus <burnus@net-b.de>
1951 * resolve.c (gfc_resolve_finalizers): Ensure that vtables
1952 and finalization wrappers are generated.
1954 2014-04-11 Janne Blomqvist <jb@gcc.gnu.org>
1956 * intrinsic.texi (RANDOM_SEED): Improve example.
1958 2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1960 * class.c (gfc_build_class_symbol): Append "_t" to target class
1961 names to make the generated type names unique.
1963 2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1966 * trans-types.c (gfc_get_function_type): In case of recursion
1967 build a variadic function type with empty argument list instead of a
1968 stdarg-like function type with incomplete argument list.
1970 2014-04-04 Tobias Burnus <burnus@net-b.de>
1972 * check.c (gfc_check_cmplx): Fix typo.
1974 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1975 Tobias Burnus <burnus@net-b.de>
1978 * trans-expr.c (gfc_conv_derived_to_class): Avoid
1979 generation of out-of-bounds range expr.
1981 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1984 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1987 2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1990 * frontend-passes.c (cfe_code): Do not walk subtrees
1993 2014-03-27 Tobias Burnus <burnus@net-b.de>
1996 * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1999 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
2002 * fortran.texi: Document Volatile COMMON as not supported.
2004 2014-03-22 Jakub Jelinek <jakub@redhat.com>
2007 * cpp.c (gfc_cpp_init): Restore cb_change_file call to
2010 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2013 * gfortran.texi: Add description of namelist DELIM= behavior.
2015 2014-03-19 Tobias Burnus <burnus@net-b.>
2018 * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
2019 * resolve.c (resolve_ordinary_assign): Ditto.
2021 2014-03-19 Tobias Burnus <burnus@net-b.de>
2025 * gfortran.h (gfc_unset_implicit_pure): New prototype.
2026 * resolve.c (gfc_unset_implicit_pure): New.
2027 (resolve_structure_cons, resolve_function,
2028 pure_subroutine): Use it.
2029 * decl.c (match_old_style_init, gfc_match_data,
2030 match_pointer_init, variable_decl): Ditto.
2031 * expr.c (gfc_check_pointer_assign): Ditto.
2032 * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
2033 * io.c (match_vtag, gfc_match_open, gfc_match_close,
2034 match_filepos, gfc_match_inquire, gfc_match_print,
2035 gfc_match_wait): Ditto.
2036 * match.c (gfc_match_critical, gfc_match_stopcode,
2037 lock_unlock_statement, sync_statement, gfc_match_allocate,
2038 gfc_match_deallocate): Ditto.
2039 * parse.c (decode_omp_directive): Ditto.
2040 * symbol.c (gfc_add_save): Ditto.
2042 2014-03-18 Janus Weil <janus@gcc.gnu.org>
2046 * decl.c (match_attr_spec): Revert r208590.
2048 2014-03-18 Jakub Jelinek <jakub@redhat.com>
2051 * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
2054 2014-03-18 Tobias Burnus <burnus@net-b.de>
2057 * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
2058 (gfc_trans_io_runtime_check): Remove.
2059 * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
2060 as argument, add predictor to block.
2061 (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
2062 gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
2063 * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
2064 (gfc_trans_runtime_check, gfc_allocate_using_malloc,
2065 gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
2067 * trans-expr.c (gfc_conv_procedure_call): Ditto.
2068 * trans-stmt.c (gfc_trans_allocate): Ditto.
2069 * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
2071 2014-03-15 Janus Weil <janus@gcc.gnu.org>
2074 * decl.c (match_attr_spec): Variables in the main program implicitly
2075 get the SAVE attribute in Fortran 2008.
2077 2014-03-14 Mikael Morin <mikael@gcc.gnu.org>
2080 * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
2081 if it has transposed dimensions.
2083 2014-03-08 Tobias Burnus <burnus@net-b.de>
2086 * f95-lang.c (gfc_init): Return false when only
2088 * options.c (gfc_post_options): Ditto.
2090 2014-03-08 Tobias Burnus <burnus@net-b.de>
2092 * gfortran.texi (Fortran 2003 Status): Mention finalization,
2093 deferred-length character support and input rounding.
2094 (Fortran 2008 Status): Mention that at termination
2095 signalling exceptions are shown.
2097 2014-03-06 Paul Thomas <pault@gcc.gnu.org>
2098 Janus Weil <janus@gcc.gnu.org>
2101 * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
2102 * primary.c (build_actual_constructor): It is not an error if
2103 a missing component has the deferred_parameter attribute;
2104 equally, if one is given a value, it is an error.
2105 * resolve.c (resolve_fl_derived0): Remove error for deferred
2106 character length components. Add the hidden string length
2107 field to the structure. Give it the deferred_parameter
2109 * trans-array.c (duplicate_allocatable): Add a strlen field
2110 which is used as the element size if it is non-null.
2111 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
2112 NULL to the new argument in duplicate_allocatable.
2113 (structure_alloc_comps): Set the hidden string length as
2114 appropriate. Use it in calls to duplicate_allocatable.
2115 (gfc_alloc_allocatable_for_assignment): When a deferred length
2116 backend declaration is variable, use that; otherwise use the
2117 string length from the expression evaluation.
2118 * trans-expr.c (gfc_conv_component_ref): If this is a deferred
2119 character length component, the string length should have the
2120 value of the hidden string length field.
2121 (gfc_trans_subcomponent_assign): Set the hidden string length
2122 field for deferred character length components. Allocate the
2123 necessary memory for the string.
2124 (alloc_scalar_allocatable_for_assignment): Same change as in
2125 gfc_alloc_allocatable_for_assignment above.
2126 * trans-stmt.c (gfc_trans_allocate): Likewise.
2127 * trans-intrinsic (size_of_string_in_bytes): Make non-static.
2128 * trans-types.c (gfc_get_derived_type): Set the tree type for
2129 a deferred character length component.
2130 * trans.c (gfc_deferred_strlen): New function.
2131 * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
2133 2014-03-01 Mikael Morin <mikael@gcc.gnu.org>
2136 * frontend-passes.c (optimize_comparison): Guard two union accesses
2137 with the corresponding tag checks.
2139 2014-02-28 Janus Weil <janus@gcc.gnu.org>
2142 * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
2143 procedure for characters.
2145 2014-02-21 Janus Weil <janus@gcc.gnu.org>
2148 * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
2151 2014-02-21 Janus Weil <janus@gcc.gnu.org>
2154 * gfortran.h (gfc_build_class_symbol): Removed argument.
2155 * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
2156 (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
2157 delayed now, except for unlimited polymorphics.
2158 (comp_is_finalizable): Procedure pointer components are not finalizable.
2159 * decl. (build_sym, build_struct, attr_decl1): Removed argument of
2160 'gfc_build_class_symbol'.
2161 * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
2163 * symbol.c (gfc_set_default_type): Ditto.
2165 2014-02-19 Janus Weil <janus@gcc.gnu.org>
2168 * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
2169 functions, which are used as procedure pointer target.
2171 2014-02-18 Tobias Burnus <burnus@net-b.de>
2174 * expr.c (gfc_check_pointer_assign): Add check for
2176 * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
2177 decl in a corner case.
2179 2014-02-18 Janus Weil <janus@gcc.gnu.org>
2182 * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
2183 arguments to prevent ICE.
2185 2014-02-17 Janus Weil <janus@gcc.gnu.org>
2188 * resolve.c (build_default_init_expr): Don't initialize character
2189 variable if -fno-automatic is given.
2191 2014-02-15 Mikael Morin <mikael@gcc.gnu.org>
2194 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
2195 number of arguments.
2197 2014-02-11 Jakub Jelinek <jakub@redhat.com>
2200 * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
2201 on decl if sym->attr.optional.
2203 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
2206 * resolve.c (resolve_assoc_var): Set the subref_array_pointer
2207 attribute for the 'associate-name' if necessary.
2208 * trans-stmt.c (trans_associate_var): If the 'associate-name'
2209 is a subref_array_pointer, assign the element size of the
2210 associate variable to 'span'.
2212 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
2215 * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
2216 actual argument to a formal argument with the value attribute
2217 in an elemental procedure.
2219 2014-02-08 Janus Weil <janus@gcc.gnu.org>
2220 Mikael Morin <mikael.morin@gcc.gnu.org>
2223 * class.c (generate_finalization_wrapper): Assert that proc_tree has
2224 been set in gfc_resolve_finalizers.
2225 * resolve.c (resolve_fl_derived0): Remove unnecessary call to
2228 2014-02-07 Benno Schulenberg <bensberg@justemail.net>
2230 PR translation/52289
2231 * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
2232 in an error message.
2234 2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
2237 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
2240 2014-02-01 Paul Thomas <pault@gcc.gnu.org>
2243 * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
2244 SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
2245 pointer to the string is stored.
2246 * trans-expr.c (gfc_conv_expr_reference): Likewise, use
2247 gfc_conv_string_parameter to ensure that a pointer to is passed
2248 to the elemental function.
2250 2014-01-28 Paul Thomas <pault@gcc.gnu.org>
2253 * trans-stmt.c (gfc_trans_allocate): Before the pointer
2254 assignment to transfer the source _vptr to a class allocate
2255 expression, the final class reference should be exposed. The
2256 tail that includes the _data and array references is stored.
2257 This reduced expression is transferred to 'lhs' and the _vptr
2258 added. Then the tail is restored to the allocate expression.
2260 2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
2263 * module.c (read_module): Assert for component name correctness.
2265 2014-01-18 Mikael Morin <mikael@gcc.gnu.org>
2268 * module.c (MOD_VERSION): Bump.
2269 (fp2, find_pointer2): Remove.
2270 (mio_component_ref): Don't forcedfully set the containing derived type
2271 symbol for loading. Remove unused argument.
2272 (mio_ref): Update caller
2273 (mio_symbol): Dump component list earlier.
2274 (skip_list): New argument nest_level. Initialize level with the new
2276 (read_module): Add forced pointer components association for derived
2279 2014-01-12 Janus Weil <janus@gcc.gnu.org>
2282 * decl.c (gfc_match_data_decl): Improve error recovery.
2284 2014-01-09 Tobias Burnus <burnus@net-b.de>
2286 * cpp.c (gfc_cpp_handle_option): Add missing break.
2287 * trans-io.c (transfer_expr): Silence unused value warning.
2289 2014-01-08 Janus Weil <janus@gcc.gnu.org>
2292 * resolve.c (gfc_verify_binding_labels): Modify order of checks.
2294 2014-01-06 Janus Weil <janus@gcc.gnu.org>
2297 * class.c (comp_is_finalizable): New function to dermine if a given
2298 component is finalizable.
2299 (finalize_component, generate_finalization_wrapper): Use it.
2301 2014-01-06 Janus Weil <janus@gcc.gnu.org>
2305 * resolve.c (resolve_global_procedure): Don't apply to c-binding
2307 (gfc_verify_binding_labels): Remove duplicate line.
2309 2014-01-04 Janus Weil <janus@gcc.gnu.org>
2312 * class.c (add_proc_comp): Copy pure attribute.
2314 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2316 Update copyright years
2318 2014-01-02 Tobias Burnus <burnus@net-b.de>
2320 * gfortranspec.c (lang_specific_driver): Update copyright notice
2322 * gfc-internals.texi: Bump @copying's copyright year.
2323 * gfortran.texi: Ditto.
2324 * intrinsic.texi: Ditto.
2325 * invoke.texi: Ditto.
2327 2014-01-02 Janus Weil <janus@gcc.gnu.org>
2330 * resolve.c (resolve_typebound_procedures): No need to create the vtab
2333 Copyright (C) 2014 Free Software Foundation, Inc.
2335 Copying and distribution of this file, with or without modification,
2336 are permitted in any medium without royalty provided the copyright
2337 notice and this notice are preserved.