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