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