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