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