2018-06-21 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob852f36e8f7cf66728ac92b06e270dd607982ebb8
1 2018-06-21  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/83118
4         * resolve.c (resolve_ordinary_assign): Force the creation of a
5         vtable for assignment of non-polymorphic expressions to an
6         unlimited polymorphic object.
7         * trans-array.c (gfc_alloc_allocatable_for_assignment): Use the
8         size of the rhs type for such assignments. Set the dtype, _len
9         and vptrs appropriately.
10         * trans-expr.c (gfc_trans_assignment): Force the use of the
11         _copy function for these assignments.
13 2018-06-20  Chung-Lin Tang <cltang@codesourcery.com>
14             Thomas Schwinge <thomas@codesourcery.com>
15             Cesar Philippidis  <cesar@codesourcery.com>
17         * gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize
18         bitfields.
19         * openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add
20         OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
21         (gfc_match_omp_clauses): Update handling of copy, copyin, copyout,
22         create, deviceptr, present_of_*. Add support for finalize and
23         if_present.
24         (OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses.
25         (OACC_KERNELS_CLAUSES): Likewise.
26         (OACC_DATA_CLAUSES): Likewise.
27         (OACC_DECLARE_CLAUSES): Likewise.
28         (OACC_UPDATE_CLAUSES): Add IF_PRESENT clause.
29         (OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses.
30         (OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause.
31         (gfc_match_oacc_declare): Update to OpenACC 2.5 semantics.
32         * trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT
33         and FINALIZE.
35 2018-06-18  Eric Botcazou  <ebotcazou@adacore.com>
37         * trans-decl.c (gfc_get_fake_result_decl): Revert latest change.
39 2018-06-17  Eric Botcazou  <ebotcazou@adacore.com>
41         * trans-decl.c (nonlocal_dummy_decl_pset): Delete.
42         (nonlocal_dummy_decls): Likewise.
43         (gfc_nonlocal_dummy_array_decl): Likewise.
44         (gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl.
45         (gfc_get_fake_result_decl): Do not generate a new DECL if simply
46         reusing the result of a recursive call.
47         (gfc_generate_function_code): Do not create, insert and destroy
48         nonlocal_dummy_decls.
50 2018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>
52         PR fortran/86110
53         * array.c (gfc_resolve_character_array_constructor): Avoid NULL
54         pointer dereference.
56 2018-06-13  Cesar Philippidis  <cesar@codesourcery.com>
58         PR fortran/85703
59         * parse.c (decode_oacc_directive): Set gfc_matching_function
60         to false.
61         (decode_omp_directive): Likewise.
63 2018-06-13  Cesar Philippidis  <cesar@codesourcery.com>
65         PR fortran/85702
66         * openmp.c (gfc_match_oacc_wait): Use %C to report error location.
68 2018-06-12  David Malcolm  <dmalcolm@redhat.com>
70         PR other/69968
71         * misc.c (gfc_closest_fuzzy_match): Update for renaming of
72         levenshtein_distance to get_edit_distance.
74 2018-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>
76         PR fortran/44491
77         * expr.c (gfc_check_assign): Select non-NULL locus.
79 2018-06-11  Janus Weil  <janus@gcc.gnu.org>
81         PR fortran/45521
82         * interface.c (compare_ptr_alloc): New function.
83         (generic_correspondence): Call it.
85 2018-06-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
87         * gfortran.h (gfc_expr): Add no_bounds_check field.
88         * frontend-passes.c (get_array_inq_function): Set no_bounds_check
89         on function and function argument.
90         (inline_matmul_assign): Set no_bounds_check on zero expression
91         and on lhs of zero expression.
92         Also handle A1B2 case if realloc on assigment is active.
93         * trans-array.c (gfc_conv_array_ref): Don't do range checking
94         if expr has no_bounds_check set.
95         (gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr
96         has it set.
97         * trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check
98         on lss and lss if the corresponding expressions have it set.
100 2018-06-10  Dominique d'Humieres  <dominiq@gcc.gnu.org>
102         PR fortran/79854
103         * trans-const.c: Remove include "diagnostic-core.h".
104         (gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable.
106 2018-06-10  Janus Weil  <janus@gcc.gnu.org>
108         PR fortran/85088
109         * decl.c (match_attr_spec): Synchronize the DECL_* enum values with the
110         INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec'
111         and remove a TODO note.
112         * gfortran.h: Add a comment to sym_intent.
114 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
116         PR fortran/38351
117         * resolve.c (resolve_operator): Provide better error message for
118         derived type entity used in an binary intrinsic numeric operator.
120 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
122         PR fortran/85138
123         PR fortran/85996
124         PR fortran/86051
125         * decl.c (gfc_match_char_spec): Use private namespace in attempt to
126         reduce a charlen to a constant.
128 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
130         PR fortran/78278
131         * data.c (gfc_assign_data_value): Re-arrange code to allow for
132         an error for double initialization of CHARACTER entities.
134 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
136         PR fortran/63514
137         * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588.
139 2018-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
141         PR fortran/85631
142         * trans.h (gfc_ss): Add field no_bounds_check.
143         * trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and
144         ss->no_bounds_check is set, do not use runtime checks.
145         * trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check
146         for reallocatable lhs.
148 2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
150         PR fortran/86059
151         * array.c (match_array_cons_element): NULL() cannot be in an
152         array constructor.
154 2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
156         PR fortran/78571
157         * data.c (create_character_initializer): Return early if type is
158         incompatible with CHARACTER.
160 2018-06-07  Steven G. Kargl  <kargl@gcc.gnu.org>
162         PR fortran/86045
163         * simplify.c (gfc_simplify_mod): Re-arrange code to test whether
164         'P' is zero and issue an error if it is.
166 2018-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
168         PR fortran/85641
169         * frontend-passes.c (is_fe_temp): Add prototype.
170         (realloc_string_callback): Early return for frontend-generated
171         temporary.
173 2018-06-05  Cesar Philippidis  <cesar@codesourcery.com>
175         PR fortran/85701
177         * openmp.c (gfc_resolve_oacc_declare): Error on functions and
178         subroutine data clause arguments.
180 2018-06-04  Steven G. Kargl  <kargl@gcc.gnu.org>
182         PR fortran/85981
183         * resolve.c (resolve_allocate_deallocate): Check errmsg is default
184         character kind.
186 2018-06-03  Paul Thomas  <pault@gcc.gnu.org>
188         PR fortran/36497
189         * decl.c (variable_decl): Use gfc_add_type for cray pointees.
191 2018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>
193         PR fortran/63570
194         * check.c (gfc_check_random_init): New function. Check arguments of
195         RANDOM_INIT.
196         * gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token.
197         * intrinsic.c (add_subroutines): Add RANDOM_INIT to list of
198         subroutines.
199         (gfc_check_intrinsic_standard): Introduce Fortran 2018 check.
200         * intrinsic.h: Add prototypes for gfc_check_random_init and
201         gfc_resolve_random_init
202         * intrinsic.texi: Document new intrinsic subprogram.
203         * iresolve.c (gfc_resolve_random_init): Resolve routine name.
204         * trans-decl.c: Declare gfor_fndecl_random_init
205         * trans-intrinsic.c (conv_intrinsic_random_init): New function.
206         Translate call to RANDOM_INIT.
207         (gfc_conv_intrinsic_subroutine): Call it.
208         * trans.h: Declare gfor_fndecl_random_init
210 2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
212         * decl.c (match_data_constant):  Fortran 2018 allows pointer
213         initialization in a data statement.
215 2018-05-25  Janus Weil  <janus@gcc.gnu.org>
217         PR fortran/85839
218         * match.c (gfc_match_block_data): Call gfc_notify_std to warn about
219         an obsolescent feature in Fortran 2018.
220         (gfc_match_equivalence): Ditto.
221         * resolve.c (resolve_common_blocks): Ditto.
222         (gfc_resolve_forall): Ditto.
223         * symbol.c (gfc_define_st_label): Ditto.
225 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
227         PR fortran/85543
228         * resolve.c (update_current_proc_array_outer_dependency): Avoid NULL
229         pointer dereference.
231 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
233         PR fortran/85780
234         * resolve.c (resolve_fl_procedure): Avoid NULL dereference.
236 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
238         PR fortran/85779
239         * decl.c (gfc_match_derived_decl): Fix NULL point dereference.
241 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
243         PR fortran/85895
244         * resolve.c (resolve_sync): Resolve expression before checking for
245         an error.
247 2018-05-22  Janus Weil  <janus@gcc.gnu.org>
249         PR fortran/85841
250         * libgfortran.h: Remove the macros GFC_STD_F2008_TS and
251         GFC_STD_OPT_F08TS.
252         * error.c (notify_std_msg): Remove GFC_STD_F2008_TS.
253         * options.c (set_default_std_flags): Ditto.
254         (gfc_handle_option): Make -std=f2008ts an alias for -std=f2018.
255         * array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by
256         GFC_STD_F2018.
257         * check.c (gfc_check_atomic, gfc_check_event_query,
258         gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc,
259         gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto.
260         * decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto.
261         * intrinsic.c (add_functions, add_subroutines,
262         gfc_check_intrinsic_standard): Ditto.
263         * iso-c-binding.def: Ditto.
264         * iso-fortran-env.def: Ditto.
265         * match.c (gfc_match_event_post, gfc_match_event_wait,
266         gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team,
267         gfc_match_end_team, gfc_match_sync_team): Ditto.
268         * gfortran.texi: Remove mention of -std=f2008ts.
269         Move TSs into F2018 section.
270         * invoke.texi: Update documentation of -std=f2008ts.
272 2018-05-21  Janus Weil  <janus@gcc.gnu.org>
274         PR fortran/85841
275         * libgfortran.h: New macros GFC_STD_OPT_*.
276         * error.c (notify_std_msg): New function.
277         (gfc_notify_std): Adjust such that it can handle combinations of
278         GFC_STD_* flags in the 'std' argument, not just a single one.
279         * match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if
280         in Fortran 2018.
281         (gfc_match_stopcode): Use GFC_STD_OPT_* macros.
282         * options.c (set_default_std_flags): Warn for F2018 deleted features
283         by default.
284         (gfc_handle_option): F2018 deleted features are allowed in earlier
285         standards.
286         * symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject
287         nonblock do constructs in Fortran 2018.
289 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
291         PR fortran/80657
292         * resolve.c (flag_fn_result_spec): Use the 'sym' argument to
293         test for self refs to the function result in the character len
294         expression. If a self reference is found, emit an error and
295         return true.
296         (resolve_fntype): Use the function symbol in the calls to the
297         above.
299 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
301         PR fortran/49636
302         * trans-array.c (gfc_get_array_span): Renamed from
303         'get_array_span'.
304         (gfc_conv_expr_descriptor): Change references to above.
305         * trans-array.h : Add prototype for 'gfc_get_array_span'.
306         * trans-intrinsic.c (gfc_conv_associated): Add pre and post
307         blocks for 'arg1'.
308         * trans-stmt.c (trans_associate_var): If the associate name is
309         a subref array pointer, use gfc_get_array_span for the span.
311 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
313         PR fortran/82275
314         * match.c (gfc_match_type_spec): Go through the array ref and
315         decrement 'rank' for every dimension that is an element.
317 2018-05-19  Paul Thomas  <pault@gcc.gnu.org>
319         PR fortran/82923
320         PR fortran/66694
321         PR fortran/82617
322         * trans-array.c (gfc_alloc_allocatable_for_assignment): Set the
323         charlen backend_decl of the rhs expr to ss->info->string_length
324         so that the value in the current scope is used.
326 2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
328         PR fortran/63529
329         * gfortran.texi: Clarify documentation for Cray pointer and
330         assumed-sized array.
332 2018-05-13  Paul Thomas  <pault@gcc.gnu.org>
334         PR fortran/85742
335         * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation
336         of 'size'. If the element type is a pointer use the size of the
337         TREE_TYPE of the type, unless it is VOID_TYPE. In this latter
338         case, set the size to zero.
340 2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
342         * gfortran.h: Remove prototype.
343         * symbol.c (gfc_new_undo_checkpoint): Remove unused function.
345 2018-05-11  Steven G. Kargl  <kargl@gcc.gnu.org>
347         PR fortran/85542
348         * expr.c (check_inquiry): Avoid NULL pointer dereference.
350 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
352         PR fortran/85687
353         * check.c (gfc_check_rank): Check that the argument is a data object.
355 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
357         PR fortran/85521
358         * array.c (gfc_resolve_character_array_constructor): Substrings
359         with upper bound smaller than lower bound are zero length strings.
361 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
363         PR fortran/70870
364         * data.c (gfc_assign_data_value): Check that a data object does
365         not also have default initialization.
367 2018-05-10  Marek Polacek  <polacek@redhat.com>
369         PR fortran/85735
370         * options.c (gfc_post_options): Set main_input_filename.
372 2018-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
374         PR fortran/54613
375         * intrinsic.texi: Document BACK for MINLOC and MAXLOC.
377 2018-05-10  Paul Thomas  <pault@gcc.gnu.org>
379         PR fortran/68846
380         PR fortran/70864
381         * resolve.c (get_temp_from_expr): The temporary must not have
382         dummy or intent attributes.
384 2018-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
386         PR fortran/54613
387         * check.c (gfc_check_minmaxloc): Remove error for BACK not being
388         implemented.  Use gfc_logical_4_kind for BACK.
389         * simplify.c (min_max_choose): Add optional argument back_val.
390         Handle it.
391         (simplify_minmaxloc_to_scalar): Add argument back_val. Pass
392         back_val to min_max_choose.
393         (simplify_minmaxloc_to_nodim): Likewise.
394         (simplify_minmaxloc_to_array): Likewise.
395         (gfc_simplify_minmaxloc): Add argument back, handle it.
396         Pass back_val to specific simplification functions.
397         (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back,
398         pass it on to gfc_simplify_minmaxloc.
399         (gfc_simplify_maxloc): Likewise.
400         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust
401         comment. If BACK is true, use greater or equal (or lesser or
402         equal) insteal of greater (or lesser). Mark the condition of
403         having found a value which exceeds the limit as unlikely.
405 2018-05-07  Jeff Law  <law@redhat.comg>
407         * scanner.c (preprocessor_line): Call linemap_add after a line
408         directive that changes the current filename.
410 2018-05-06  Andre Vehreschild  <vehre@gcc.gnu.org>
412         PR fortran/85507
413         * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension
414         introduced by r259385.
415         * trans-intrinsic.c (conv_caf_send): Always report a dependency for
416         same variables in coarray assignments.
418 2018-05-02  Tom de Vries  <tom@codesourcery.com>
420         PR libgomp/82428
421         * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define.
423 2018-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
425         PR fortran/85520
426         * decl.c (gfc_match_char_spec): Check for negative length and set to 0.
428 2018-04-14  Andre Vehreschild  <vehre@gcc.gnu.org>
430         PR fortran/81773
431         PR fortran/83606
432         * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored
433         during dependency computation.  They define no data dependency.
434         * trans-array.c (conv_array_index_offset): The stride can not be set
435         here, prevent fail.
436         * trans-intrinsic.c (conv_caf_send): Add creation of temporary array
437         for caf_get's result and copying to the array with vectorial
438         indexing.
440 2018-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
442         PR fortran/85387
443         * frontend-passes.c (traverse_io_block): Check for start, end or
444         stride being defined by an outer implied DO loop.
446 2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
448         PR fortran/83064
449         PR testsuite/85346
450         * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind
451         for annotation and remove dependence on -ftree-parallelize-loops.
453 2018-04-10  Jakub Jelinek  <jakub@redhat.com>
455         PR fortran/85313
456         * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;.
457         (resolve_oacc_nested_loops): Likewise.  Formatting fix.
459 2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
461         PR fortran/83064
462         * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for
463         parallell processing of DO CONCURRENT -ftree-parallelize-loops
464         is set.
466 2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
468         PR fortran/51260
469         * resolve.c (resolve_variable): Simplify cases where access to a
470         parameter array results in a single constant.
472 2018-04-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
474         PR fortran/85102
475         * decl.c (variable_decl): If upper or lower bounds simplify
476         to a constant, use that.
478 2018-03-30  Paul Thomas  <pault@gcc.gnu.org>
480         PR fortran/84931
481         * simplify.c (gfc_convert_constant): Handle case of array
482         constructors within an array that has no iterator and improve
483         the conciseness of this section of code.
485 2017-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
487         PR fortran/85111
488         * array.c (gfc_resolve_character_array_constructor): Early
489         exit for zero-size arrays.
490         * simplify.c (simplify_transformation_to_array): Exit early
491         if the result size is zero.
492         (simplify_minmaxloc_to_array): Likewise.
494 2018-03-28  Mikael Morin  <mikael@gcc.gnu.org>
496         PR fortran/69497
497         * symbol.c (gfc_symbol_done_2): Start freeing namespaces
498         from the root.
499         (gfc_free_namespace): Restore assert (revert r258839).
501 2018-03-28  Jakub Jelinek  <jakub@redhat.com>
503         * gfortran.h (gfc_dt): Rename default_exp field to dec_ext.
504         * ioparm.def (IOPARM_dt_default_exp): Rename to ...
505         (IOPARM_dt_dec_ext): ... this.
506         * trans-io.c (build_dt): Adjust for default_exp renaming to
507         dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext.
508         * io.c (match_io): Likewise.
510 2018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
512         PR fortran/85084
513         * frontend-passes.c (gfc_run_passes): Do not run front-end
514         optimizations if a previous error occurred.
516 2018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
517         Harald Anlauf  <anlauf@gmx.de>
519         PR fortran/85083
520         * primary.c (gfc_convert_to_structure_constructor): Check
521         conformance of argument types in structure constructor.
523 2018-03-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
525         PR fortran/66709
526         * io.c: Include constructor.h.
527         (resolve_tag_format): For a constant character array, concatenate
528         into a single character expression.
530 2018-03-25  Seth Johnson <johnsonsr@ornl.gov>
531         Dominique d'Humieres  <dominiq@gcc.gnu.org>
533         PR fortran/84924
534         * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable
535         scalar derived type with -std=f2003 and -std=f2008.
537 2018-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
538             Dominique d'Humieres  <dominiq@gcc.gnu.org>
540         PR fortran/69497
541         * symbol.c (gfc_free_namespace): Delete the assert and only if
542         refs count is equals zero, free the namespace. Otherwise,
543         something is halfway and other errors will resound.
545 2018-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
547         PR fortran/70068
548         * expr.c (find_substring_ref): Change types of start, end
549         and length variables to gfc_charlen_t. Set length to zero
550         for empty substring.
552 2018-03-24  Steven G. Kargl  <kargl@gcc.gnu.org>
554         PR fortran/42651
555         * decl.c (check_function_name): Improved error message
556         (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name.
558 2018-03-22  Steven G. Kargl  <kargl@gcc.gnu.org>
560         PR fortran/84922
561         * decl.c (get_proc_name): If the MODULE prefix appears in interface
562         body, then it must appear on the contained subroutine or function.
563         While here, fix nearby mis-indented code.
565 2018-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
566         Harald Anlauf  <anlauf@gmx.de>
568         PR fortran/84957
569         * trans-types.c (gfc_sym_type): Do not dereference NULL pointer.
571 2018-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
573         PR fortran/84615
574         * trans-expr.c (gfc_conv_procedure_call): Convert charlen to
575         gfc_charlen_type_node when calling procedure.
577 2018-03-20  Steven G. Kargl  <kargl@gcc.gnu.org>
579         PR fortran/85001
580         * interface.c (symbol_rank): Remove bogus null pointer check that
581         crept in when translating a ternary operator into an if-else
582         constructor.
584 2018-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
586         PR fortran/84931
587         * simplify.c (gfc_convert_constant): Correctly handle iterators
588         for type conversion.
590 2018-03-18  Steven G. Kargl  <kargl@gcc.gnu.org>
592         PR fortran/77414
593         * decl.c (get_proc_name):  Check for a subroutine re-defined in
594         the contain portion of a subroutine.  Change language of existing
595         error message to better describe the issue. While here fix whitespace
596         issues.
598 2018-03-18  Steven G. Kargl  <kargl@gcc.gnu.org>
600         PR fortran/65453
601         * decl.c (get_proc_name): Catch clash between a procedure statement
602         and a contained subprogram
604 2018-03-16  Steven G. Kargl  <kargl@gcc.gnu.org>
606         PR fortran/69395
607         * decl.c (merge_array_spec): Correct the error condition.
609 2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
611         PR fortran/78741
612         * decl.c (get_proc_name):  Check for clash of entry name with
613         subroutine name.
615 2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
617         PR fortran/69395
618         * decl.c (merge_array_spec): Limit the merging to maximum allowed
619         dimensions, and issue error message if limit is exceeded.
621 2018-03-13  Steven G. Kargl  <kargl@gcc.gnu.org>
623         * check.c (gfc_check_kill_sub):  Remove check for INTEGER(4) or (8).
624         * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill.
625         (add_subroutines): Remove reference to gfc_resolve_kill_sub.
626         * intrinsic.texi: Update documentation.
627         * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove.
628         * trans-decl.c (gfc_build_intrinsic_function_decls):  Add
629         gfor_fndecl_kill and gfor_fndecl_kill_sub
630         * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new
631         functions.
632         (gfc_conv_intrinsic_function): Use conv_intrinsic_kill.
633         (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub.
634         * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub.
636 2018-03-11  Paul Thomas  <pault@gcc.gnu.org>
638         PR fortran/84546
639         * trans-array.c (structure_alloc_comps): Make sure that the
640         vptr is copied and that the unlimited polymorphic _len is used
641         to compute the size to be allocated.
642         * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the
643         unlimited polymorphic _len for the offset to the element.
644         (gfc_copy_class_to_class): Set the new 'unlimited' argument.
645         * trans.h : Add the boolean 'unlimited' to the prototype.
647 2018-03-11  Steven G. Kargl  <kargl@gcc.gnu.org>
649         PR fortran/83939
650         * resolve.c (resolve_fl_procedure): Enforce F2018:C15100.
652 2018-03-11  Steven G. Kargl  <kargls@gcc.gnu.org>
654         * check.c (gfc_check_kill):  Check pid and sig are scalar.
655         (gfc_check_kill_sub): Restrict kind to 4 and 8.
656         * intrinsic.c (add_function): Sort keyword list.  Add pid and sig
657         keywords for KILL.  Remove redundant *back="back" in favor of the
658         original *bck="back".
659         (add_subroutines): Sort keyword list.  Add pid and sig keywords
660         for KILL.
661         * intrinsic.texi: Fix documentation to consistently use pid and sig.
662         * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8.  Choose the
663         correct function.
664         (gfc_resolve_rename_sub): Add comment.
666 2018-03-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
668         PR fortran/66128
669         * simplify.c (simplify_transformation): Return default result for
670         empty array argument.
671         (gfc_simplify_all): Remove special-case handling for zerosize.
672         (gfc_simplify_any): Likewise.
673         (gfc_simplify_count): Likewise.
674         (gfc_simplify_iall): Likewise.
675         (gfc_simplify_iany): Likewise.
676         (gfc_simplify_iparity): Likewise.
677         (gfc_simplify_minval): Likewise.
678         (gfc_simplify_maxval): Likewise.
679         (gfc_simplify_norm2): Likewise.
680         (gfc_simplify_product): Likewise.
681         (gfc_simplify_sum): Likewise.
683 2018-03-10  Steven G. Kargl  <kargl@gcc.gnu.org>
685         PR fortran/84734
686         * arith.c (check_result, eval_intrinsic):  If result overflows, pass
687         the expression up the chain instead of a NULL pointer.
689 2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>
691         PR fortran/64124
692         PR fortran/70409
693         * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
695 2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
697         PR fortran/84697
698         PR fortran/66128
699         * expr.c (simplify_parameter_variable): If p is a size zero array
700         and not an ARRAY_EXPR insert an empty array constructor and
701         return.
702         * gfortran.h: Add prototype for gfc_is_size_zero_array.
703         * simplify.c (is_size_zero_array): Make non-static and rename into
704         (gfc_is_size_zero_array):  Check for parameter arrays of zero
705         size by comparing shape and absence of constructor.
706         (gfc_simplify_all): Use gfc_is_size_zero_array instead of
707         is_size_zero_array.
708         (gfc_simplify_count): Likewise.
709         (gfc_simplify_iall): Likewise.
710         (gfc_simplify_iany): Likewise.
711         (gfc_simplify_iparity): Likewise.
712         (gfc_simplify_minval): Likewise.
713         (gfc_simplify_maxval): Likewise.
714         (gfc_simplify_product): Likewise.
715         (gfc_simplify_sum): Likewise.
717 2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>
719         PR fortran/56667
720         * primary.c (match_sym_complex_part): Give the matcher for an implied
721         do-loop a chance to run.
723 2018-03-03  Harald Anlauf  <anlauf@gmx.de>
725         PR fortran/71085
726         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
727         dereference NULL pointer.
729 2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
731         PR fortran/66128
732         * simplify.c (is_size_zero_array): New function to check for size
733         zero array.
734         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
735          gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
736          gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
737          gfc_simplify_product, gfc_simplify_sum): Use it, and implement
738         requirements from F2018.
740 2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
742         PR fortran/51434
743         * simplify.c (gfc_simplify_transfer): Resolve mold.
745 2018-03-03  Paul Thomas  <pault@gcc.gnu.org>
747         PR fortran/80965
748         * resolve.c (build_loc_call): Change symtree name from 'loc' to
749         '_loc'.
751 2018-03-01  Paul Thomas  <pault@gcc.gnu.org>
753         PR fortran/84219
754         * target-memory.c (gfc_interpret_derived): Assert that BT_VOID
755         components are caf tokens.
756         (gfc_target_interpret_expr): Treat BT_VOID expressions as
757         integers.
759 2018-03-01  Paul Thomas  <pault@gcc.gnu.org>
761         PR fortran/84538
762         * class.c (class_array_ref_detected): Remove the condition that
763         there be no reference after the array reference.
764         (find_intrinsic_vtab): Remove excess whitespace.
765         * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
766         as 'base and call build_class_array_ref earlier.
768 2018-02-28  Paul Thomas  <pault@gcc.gnu.org>
770         PR fortran/83901
771         * trans-stmt.c (trans_associate_var): Make sure that the se
772         expression is a pointer type before converting it to the symbol
773         backend_decl type.
775 2018-02-25  Steven G. Kargl  <kargl@gcc.gnu.org>
777         PR fortran/83633
778         * decl.c (variable_decl): Check that an explicit-shape-array with
779         nonconstant bounds is allowed.
781 2018-02-25  Paul Thomas  <pault@gcc.gnu.org>
783         PR fortran/84523
784         * trans-intrinsic.c (gfc_conv_allocated): If the argument se
785         has a pre block, add it to the expression pre block.
787 2018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
789         PR fortran/78238
790         * gfortran.h (gfc_integer_4_kind): Define.
791         * resolve.c (resolve_select_type): Make sure that the
792         kind of c->high is gfc_integer_4_kind.
794 2018-02-24  Steven G. Kargl <kargl@gcc.gnu.org>
796         PR fortran/30792
797         * decl.c (gfc_match_data): Check for invalid substring in
798         data-implied-do
800 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
802         * intrinsic.texi: Arguments to MATMUL cannot both be rank one.
804 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
806         PR fortran/84511
807         * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement.
809 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
811         PR fortran/84346
812         * interface.c (compare_actual_formal): Issue error if keyword is
813         used in a statement function.
815 2018-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
817         PR fortran/84506
818         * trans-io.c (set_parameter_value_inquire): Adjust range check of
819         negative unit values for kind=8 units to the kind=4 negative limit.
821 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
823         PR fortran/83149
824         * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before
825         accessing its components.
827 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
829         PR fortran/83149
830         * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name
831         before accessing its components.
833 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
835         PR fortran/83148
836         * trans-const.c : Clean up some whitespace issues.
837         * trans-expr.c (gfc_conv_initializer): If an iso_c_binding
838         derived type has a kind value of zero, set it to the default
839         integer kind.
841 2018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>
843         PR fortran/84519
844         * trans-decl.c (gfc_build_builtin_function_decls): Add bool
845         argument to stop and error stop decls.
846         * trans-stmt.c (gfc_trans_stop): Add false value to argument
847         lists.
849 2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
851         PR 78534
852         PR 84509
853         * trans-decl.c (gfc_build_builtin_function_decls): Pass
854         gfc_int8_type node to pause_numeric, size_type_node to
855         pause_string.
856         * trans-stmt.c (gfc_trans_pause): Likewise.
858 2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
860         * gfortran.texi: Update Coarray API description.
861         * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
862         character lengths, int for exit codes.
863         (generate_coarray_sym_init): Use size_t for character length.
864         * trans-intrinsic.c (conv_co_collective): Likewise.
865         * trans-stmt.c (gfc_trans_lock_unlock): Likewise.
866         (gfc_trans_event_post_wait): Likewise.
867         (gfc_trans_sync): Likewise.
868         (gfc_trans_stop): Use size_t for character lengths, int for exit
869         codes.
871 2018-02-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
873         PR fortran/48890
874         PR fortran/83823
875         * primary.c (gfc_convert_to_structure_constructor):
876         For a constant string constructor, make sure the length
877         is correct.
879 2018-02-19  Paul Thomas  <pault@gcc.gnu.org>
881         PR fortran/83344
882         PR fortran/83975
883         * resolve.c (resolve_assoc_var): Rearrange the logic for the
884         determination of the character length of associate names. If
885         the associate name is missing a length expression or the length
886         expression is not a constant and the target is not a variable,
887         make the associate name allocatable and deferred length.
888         * trans-decl.c (gfc_get_symbol_decl): Null the character length
889         backend_decl for deferred length associate names that are not
890         variables. Set 'length' to gfc_index_zero_node for character
891         associate names, whose character length is a PARM_DECL.
893 2018-02-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
895         PR fortran/35339
896         * frontend-passes.c (traverse_io_block): Remove workaround for
897         PR 80945.
899 2018-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>
901         * gfortran.texi: Document additional src/dst_type.  Fix some typos.
902         * trans-decl.c (gfc_build_builtin_function_decls): Declare the new
903         argument of _caf_*_by_ref () with * e { get, send, sendget }.
904         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the
905         data referenced when generating a call to caf_get_by_ref ().
906         (conv_caf_send): Same but for caf_send_by_ref () and
907         caf_sendget_by_ref ().
909 2018-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
911         PR fortran/84389
912         * io.c (check_format): Allow FMT_COLON.
914 2018-02-18  Paul Thomas  <pault@gcc.gnu.org>
916         PR fortran/80945
917         * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from
918         the typenode in the case of deferred length characters.
920 2018-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
922         PR fortran/84270
923         * frontend-passes (scalarized_expr):  If the expression
924         is an assumed size array, leave in the last reference
925         and pass AR_SECTION instead of AR_FULL to gfc_resolve
926         in order to avoid an error.
928 2018-02-17  Paul Thomas  <pault@gcc.gnu.org>
930         PR fortran/84115
931         * resolve.c (resolve_assoc_var): If a non-constant target expr.
932         has no string length expression, make the associate variable
933         into a deferred length, allocatable symbol.
934         * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to
935         the symbol.
936         * trans-stmt.c (trans_associate_var): Null and free scalar
937         associate names that are allocatable. After assignment, remove
938         the allocatable attribute to prevent reallocation.
940 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
942         PR fortran/84418
943         * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF
944         kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step.
946 2018-02-16  Dominique d'Humieres  <dominiq@gcc.gnu.org>
948         PR fortran/84354
949         * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs.
951 2018-02-15  Janus Weil  <janus@gcc.gnu.org>
953         PR fortran/84409
954         * interface.c (check_dtio_arg_TKR_intent): Add a check for character
955         length.
957 2018-02-14  Janus Weil  <janus@gcc.gnu.org>
959         PR fortran/84385
960         * match.c (gfc_match_select_type): Fix check for selector in
961         SELECT TYPE statement.
963 2018-02-13  Janus Weil  <janus@gcc.gnu.org>
965         PR fortran/84313
966         * symbol.c (check_conflict): Reject procedure pointers in common blocks.
968 2018-02-13  Alastair McKinstry  <alastair.mckinstry@sceal.ie>
969             Janne Blomqvist  <jb@gcc.gnu.org>
971         * module.c (dump_module): Use lbasename to ensure that module
972         files are reproducible.
974 2018-02-12  Janus Weil  <janus@gcc.gnu.org>
976         PR fortran/84273
977         * resolve.c (resolve_component): Fix checks of passed argument in
978         procedure-pointer components.
980 2018-02-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
982         PR fortran/35299
983         * resolve.c (resolve_formal_arglist): Update error message.
985 2018-02-11  Andre Vehreschild  <vehre@gcc.gnu.org>
987         * gfortran.texi: Fix typos in documentation of caf_register ().
988         * trans-array.c (structure_alloc_comps): Only register a component of
989         a derived typed corray, not of an ultimate component coarray.
991 2018-02-11  Steven G. Kargl  <kargl@gcc.gnu.org>
993         PR fortran/54223
994         PR fortran/84276
995         * interface.c (compare_actual_formal): Add in_statement_function
996         bool parameter.  Skip check of INTENT attribute for statement
997         functions.  Arguments to a statement function cannot be optional,
998         issue error for missing argument.
999         (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use
1000          in_statement_function.
1002 2018-02-11  Paul Thomas  <pault@gcc.gnu.org>
1004         PR fortran/84074
1005         * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset
1006         flag. If the is a vector subscript or the expression is not a
1007         variable, make the descriptor one-based.
1009 2018-02-10  Paul Thomas  <pault@gcc.gnu.org>
1011         PR fortran/84141
1012         PR fortran/84155
1013         * trans-array.c (gfc_array_init_size): Revert the change made
1014         in revision 257356 setting the dtype.
1015         * trans-types.c (gfc_get_dtype): Do not use the cached dtype.
1016         Call gfc_get_dtype_rank_type every time.
1018         PR fortran/56691
1019         * trans-array.c (gfc_conv_expr_descriptor): If the source array
1020         is a descriptor type, use its offset, removing the condition
1021         that is be a class expression.
1023 2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1025         PR fortran/82994
1026         * match.c (gfc_match_deallocate): Check for NULL pointer.
1028 2018-02-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1030         PR fortran/68560
1031         * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function.
1032         (gfc_conv_intrinsic_function): Call it.
1034 2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1036         PR fortran/82049
1037         * match.c (gfc_match_type_spec): If the charlen is non-NULL, then
1038         try to resolve it.  While here return early if possible.
1040 2018-02-04  Paul Thomas  <pault@gcc.gnu.org>
1042         PR fortran/84115
1043         * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of
1044         'length' if the symbol charlen backend_decl is an indirect ref.
1046 2018-02-03  Paul Thomas  <pault@gcc.gnu.org>
1048         PR fortran/84141
1049         PR fortran/84155
1050         * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype
1051         use gfc_get_dtype_rank_type.
1053 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
1055         PR 83975
1056         PR 83344
1057         * resolve.c (resolve_assoc_var): Generate an error if
1058         target length unknown.
1060 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
1062         PR fortran/83705
1063         * simplify.c (gfc_simplify_repeat): Increase limit for deferring
1064         to runtime, print a warning message.
1066 2018-01-31  Jakub Jelinek  <jakub@redhat.com>
1068         PR fortran/84116
1069         * openmp.c (gfc_match_omp_clauses): If all the linear
1070         gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist
1071         nor set *head = NULL.  Formatting fixes.
1073 2018-01-31  Paul Thomas  <pault@gcc.gnu.org>
1075         PR fortran/84088
1076         * trans-expr.c (gfc_conv_procedure_call): If the parm expr is
1077         an address expression passed to an assumed rank dummy, convert
1078         to an indirect reference.
1080 2018-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
1082         * dump-parse-tree.c (write_proc): Use sym_name (which may
1083         be sym->binding_label) instead of sym->name.
1085 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
1087         * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead
1088         of int for slen.
1090 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
1092         PR fortran/78534
1093         * trans-expr.c (fill_with_spaces): Use memset instead of
1094         generating loop.
1095         (gfc_trans_string_copy): Improve opportunity to use builtins with
1096         constant lengths.
1098 2018-01-30  Jakub Jelinek  <jakub@redhat.com>
1100         PR debug/84131
1101         * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off
1102         to DATA_FIELD's offset rather than OFFSET_FIELD's offset.
1104 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1106         PR fortran/84134
1107         * array.c (gfc_ref_dimen_size): Whitespace fixes.  If stride is
1108         zero, return false.
1110 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1112         PR fortran/84133
1113         * frontend-passes (matmul_to_var_expr): Return early if
1114         in association list.
1115         (inline_matmul_assign): Likewise.
1117 2017-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1119         PR fortran/84073
1120         * resolve.c (resolve_component): Ensure BIND(C) character
1121         components have length one.
1122         (resolve_symbol): Likewise for variables.
1124 2018-01-27  Jakub Jelinek  <jakub@redhat.com>
1126         PR fortran/84065
1127         * decl.c (add_init_expr_to_sym): Ignore initializers for too large
1128         lengths.
1130 2018-01-26  Damian Rouson  <damian@sourceryinstitute.org>
1131             Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1132             Soren Rasmussen  <s.c.rasmussen@gmail.com>
1134         Partial support for Fortran 2018 teams features.
1136         * array.c (gfc_match_array_ref): add team attribute in coarray
1137         transfers.
1138         * check.c (gfc_check_get_team, gfc_check_team_number): add new
1139         functions for get_team and team_number.
1140         * dump-parse-tree.c (show_code_node): add new statements: form team,
1141         change team, end team, and sync team.
1142         * expr.c (gfc_find_team_co): add new function.
1143         * gfortran.h: add new statements.
1144         * intrinsic.c (add_functions): add get_team and team_number functions.
1145         * intrinsic.h: add get_team and team_number prototypes for check,
1146         simplify, and resolve.
1147         * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new
1148         functions.
1149         * iso-fortran-env.def: add the team_type derived type.
1150         * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number)
1151         (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team):
1152         add change team, end team, form team, sync team match and functions.
1153         * match.h: add new prototypes for change team, end team, form team,
1154         and sync team.
1155         * parse.c (decode_statement): add cases for change team, end team,
1156         form team, and sync team.
1157         * resolve.c: add cases for exec form team, change team, end team, and
1158         sync team.
1159         * simplify.c (gfc_simplify_get_team): add new function for get team.
1160         * st.c (gfc_free_statement): add cases exec for change team, end team,
1161         form team, sync team.
1162         * trans-decl.c (gfor_fndecl_caf_form_team)
1163         (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team)
1164         (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team)
1165         (gfor_fndecl_caf_team_number): add functions and definitions.
1166         * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add
1167         new function and team_type argument support.
1168         * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team)
1169         (gfc_trans_end_team, gfc_trans_sync_team): add new functions.
1170         * trans-stmt.h: add new prototypes.
1171         * trans-types.c (gfc_get_derived_type): check condition for team_type.
1172         * trans.c (trans_code): new exec cases for form team, change team, end
1173         team, and sync team.
1174         * trans.h: add new prototypes.
1176 2018-01-26  Steven G. Kargl  <kargl@gcc.gnu.org>
1178         PR fortran/83998
1179         * simplify.c (compute_dot_product):  Initialize result to INTEGER(1) 0
1180         or .false.  The summation does the correct type conversion.
1181         (gfc_simplify_dot_product): Special case zero-sized arrays.
1183 2018-25-01  Paul Thomas  <pault@gcc.gnu.org>
1185         PR fortran/37577
1186         * array.c (gfc_match_array_ref): If standard earlier than F2008
1187         it is an error if the reference dimension is greater than 7.
1188         libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the
1189         dtype masks and shifts accordingly.
1190         * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype
1191         type node to check the field.
1192         (gfc_conv_descriptor_dtype): Access the rank field of dtype.
1193         (duplicate_allocatable_coarray): Access the rank field of the
1194         dtype descriptor rather than the dtype itself.
1195         * trans-expr.c (get_scalar_to_descriptor_type): Store the type
1196         of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE
1197         (ie. a character).
1198         (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to
1199         get_scalar_to_descriptor_type if the actual expression is a
1200         constant.
1201         (gfc_trans_structure_assign): Assign the rank directly to the
1202         dtype rank field.
1203         * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result
1204         to default integer kind.
1205         (gfc_conv_intrinsic_sizeof): Obtain the element size from the
1206         'elem_len' field of the dtype.
1207         * trans-io.c (gfc_build_io_library_fndecls): Replace
1208         gfc_int4_type_node with dtype_type_node where necessary.
1209         (transfer_namelist_element): Use gfc_get_dtype_rank_type for
1210         scalars.
1211         * trans-types.c : Provide 'get_dtype_type_node' to acces the
1212         dtype_type_node and, if necessary, build it.
1213         The maximum size of an array element is now determined by the
1214         maximum value of size_t.
1215         Update the description of the array descriptor, including the
1216         type def for the dtype_type.
1217         (gfc_get_dtype_rank_type): Build a constructor for the dtype.
1218         Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS.
1219         (gfc_get_array_descriptor_base): Change the type of the dtype
1220         field to dtype_type_node.
1221         (gfc_get_array_descr_info): Get the offset to the rank field of
1222         the dtype.
1223         * trans-types.h : Add a prototype for 'get_dtype_type_node ()'.
1224         * trans.h : Define the indices of the dtype fields.
1226 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
1228         PR fortran/83866
1229         * decl.c (gfc_match_derived_decl): If eos not matched, recover
1230         and emit error about garbage after declaration.
1232 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
1234         PR fortran/83898
1235         * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
1236         for characters.
1238 2018-01-22  Janne Blomqvist  <jb@gcc.gnu.org>
1240         PR 78534
1241         PR 83704
1242         * arith.c (gfc_arith_concat): Use size_t for string length.
1243         (gfc_compare_string): Likewise.
1244         (gfc_compare_with_Cstring): Likewise.
1245         * array.c (gfc_resolve_character_array_constructor): Use
1246         HOST_WIDE_INT, gfc_mpz_get_hwi.
1247         * check.c (gfc_check_fe_runtime_error): Use size_t.
1248         * data.c (create_character_initializer): Use HOST_WIDE_INT,
1249         gfc_extract_hwi.
1250         * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t.
1251         (add_init_expr_to_sym): Use HOST_WIDE_INT.
1252         * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT,
1253         gfc_extract_hwi.
1254         (gfc_apply_init): Likewise.
1255         * match.h (gfc_set_constant_character_len): Update prototype.
1256         * primary.c (match_string_constant): Use size_t.
1257         * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT,
1258         gfc_mpz_get_hwi.
1259         * simplify.c (init_result_expr): Likewise.
1260         (gfc_simplify_len_trim): Use size_t.
1261         * target-memory.c (gfc_encode_character): Use size_t.
1262         (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi.
1263         (interpret_array): Use size_t.
1264         (gfc_interpret_character): Likewise.
1265         * target-memory.h (gfc_encode_character): Update prototype.
1266         (gfc_interpret_character): Likewise.
1267         (gfc_target_interpret_expr): Likewise.
1268         * trans-const.c (gfc_build_string_const): Use size_t for length
1269         argument.
1270         (gfc_build_wide_string_const): Likewise.
1271         * trans-const.h (gfc_build_string_const): Likewise.
1272         (gfc_build_wide_string_const): Likewise.
1274 2018-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1276         PR fortran/83900
1277     * simplify.c (gfc_simplify_matmul): Set return type correctly.
1279 2018-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1281         PR fortran/83900
1282         * simplify.c (gfc_simplify_matmul): Delete bogus assertion.
1284 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
1286         PR fortran/83864
1287         * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
1289 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
1291         PR fortran/83874
1292         * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
1294 2018-01-15  Louis Krupp  <louis.krupp@zoho.com>
1296         PR fortran/82257
1297         * interface.c (compare_rank): Don't try to retrieve CLASS_DATA
1298         from symbol marked unlimited polymorphic.
1299         * resolve.c (resolve_structure_cons): Likewise.
1300         * misc.c (gfc_typename): Don't dereference derived->components
1301         if it's NULL.
1303 2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
1305         PR fortran/54613
1306         * gfortran.h (gfc_check_f): Rename f4ml to f5ml.
1307         (gfc_logical_4_kind): New macro
1308         * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
1309         (gfc_simplify_maxloc): Likewise.
1310         (gfc_resolve_maxloc): Likewise.
1311         (gfc_resolve_minloc): Likewise.
1312         * check.c (gfc_check_minloc_maxloc): Add checking for "back"
1313         argument; also raise error if it is used (for now). Add it
1314         if it isn't present.
1315         * intrinsic.c (add_sym_4ml): Rename to
1316         (add_sym_5ml), adjust for extra argument.
1317         (add_functions): Add "back" constant. Adjust maxloc and minloc
1318         for back argument.
1319         * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
1320         not of gfc_logical_4_kind, convert.
1321         (gfc_resolve_minloc): Likewise.
1322         * simplify.c (gfc_simplify_minloc): Add back argument.
1323         (gfc_simplify_maxloc): Likewise.
1324         * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
1325         argument to %VAL to ensure passing by value.
1326         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
1327         also for library calls.
1329 2018-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1331         PR fortran/82007
1332         * resolve.c (resolve_transfer): Delete code looking for 'DT'
1333         format specifiers in format strings. Set formatted to true if a
1334         format string or format label is present.
1335         * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix
1336         whitespace.
1338 2018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1340         PR fortran/83744
1341         * dump-parse-tree.c (get_c_type_name): Remove extra line.
1342         Change for loop to use declaration in for loop. Handle BT_LOGICAL
1343         and BT_CHARACTER.
1344         (write_decl): Add where argument. Fix indentation. Replace
1345         assert with error message. Add typename to warning
1346         in comment.
1347         (write_type): Adjust locus to call of write_decl.
1348         (write_variable): Likewise.
1349         (write_proc): Likewise. Replace assert with error message.
1351 2018-01-13  Paul Thomas  <pault@gcc.gnu.org>
1353         PR fortran/52162
1354         * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if
1355         the rhs expression is neither an elemental nor a conversion
1356         function.
1358         PR fortran/83622
1359         * trans-array.c (is_pointer_array): Remove unconditional return
1360         of false for -fopenmp.
1362 2018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1363         <emsr@gcc.gnu.org>
1365         PR fortran/83803
1366         * dump-parse-tree.c (write_proc): Always emit closing parenthesis
1367         for functions.
1369 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1371         PR fortran/82367
1372         * resolve.c (resolve_allocate_expr): Check for NULL pointer.
1374 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1376         PR fortran/83093
1377         * resolve.c (resolve_charlen): Check the type of cl->length
1378         after resolution.
1380 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
1382         PR fortran/83740
1383         * trans-array.c (gfc_trans_array_ctor_element): Fix formatting.
1385 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
1387         PR fortran/83740
1388         * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the
1389         LHS type when assigning.
1391 2018-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1393         PR fortran/83742
1394         * expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
1396 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1398         * match.c (gfc_match_allocate): Check for NULL pointer.
1400 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1402         * expr.c (gfc_check_pointer_assign): Fix typo in comment.
1404 2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
1406         PR fortran/83611
1407         * decl.c (gfc_get_pdt_instance): If parameterized arrays have
1408         an initializer, convert the kind parameters and add to the
1409         component if the instance.
1410         * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
1411         use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
1412         for parameterized arrays. Clean up typos in comments. Convert
1413         parameterized array initializers and copy into the array.
1414         * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
1415         parameterized types.
1416         *trans-stmt.c (trans_associate_var): Deallocate associate vars
1417         as necessary, when they are PDT function results for example.
1419         PR fortran/83731
1420         * trans-array.c (structure_alloc_comps): Only compare len parms
1421         when they are declared explicitly.
1423 2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
1425         PR fortran/50892
1426         * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
1427         lhs type.
1429 2018-01-05  Janne Blomqvist  <jb@gcc.gnu.org>
1431         PR fortran/78534
1432         PR fortran/66310
1433         * array.c (got_charlen): Use gfc_charlen_int_kind.
1434         * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
1435         hardcoded kind.
1436         (find_intrinsic_vtab): Likewise.
1437         * decl.c (match_char_length): Use gfc_charlen_int_kind.
1438         (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind.
1439         (gfc_match_implicit): Use gfc_charlen_int_kind.
1440         * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t.
1441         (show_expr): Use HOST_WIDE_INT_PRINT_DEC.
1442         * expr.c (gfc_get_character_expr): Length parameter of type
1443         gfc_charlen_t.
1444         (gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
1445         (gfc_extract_hwi): New function.
1446         (simplify_const_ref): Make string_len of type gfc_charlen_t.
1447         (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
1448         * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind.
1449         * gfortran.h (gfc_mpz_get_hwi): New prototype.
1450         (gfc_mpz_set_hwi): Likewise.
1451         (gfc_charlen_t): New typedef.
1452         (gfc_expr): Use gfc_charlen_t for character lengths.
1453         (gfc_size_kind): New extern variable.
1454         (gfc_extract_hwi): New prototype.
1455         (gfc_get_character_expr): Use gfc_charlen_t for character length.
1456         (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
1457         * gfortran.texi: Update description of hidden string length argument.
1458         * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind.
1459         (gfc_resolve_char_achar): Likewise.
1460         (gfc_resolve_repeat): Pass string length directly without
1461         temporary, use gfc_charlen_int_kind.
1462         (gfc_resolve_transfer): Use gfc_charlen_int_kind.
1463         * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
1464         * misc.c (gfc_mpz_get_hwi): New function.
1465         (gfc_mpz_set_hwi): New function.
1466         * module.c (atom_int): Change type from int to HOST_WIDE_INT.
1467         (parse_integer): Don't complain about large integers.
1468         (write_atom): Use HOST_WIDE_INT for integers.
1469         (mio_integer): Handle integer type mismatch.
1470         (mio_hwi): New function.
1471         (mio_intrinsic_op): Use HOST_WIDE_INT.
1472         (mio_array_ref): Likewise.
1473         (mio_expr): Likewise.
1474         * primary.c (match_substring): Use gfc_charlen_int_kind.
1475         * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind.
1476         (resolve_character_operator): Likewise.
1477         (resolve_assoc_var): Likewise.
1478         (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf.
1479         (resolve_charlen): Use mpz_sgn to determine sign.
1480         * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
1481         instead of long.
1482         * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind.
1483         * target-memory.c (size_character): Length argument of type
1484         gfc_charlen_t.
1485         (gfc_encode_character): Likewise.
1486         (gfc_interpret_character): Use gfc_charlen_t.
1487         * target-memory.h (gfc_encode_character): Modify prototype.
1488         * trans-array.c (gfc_trans_array_ctor_element): Use existing type.
1489         (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type.
1490         (trans_array_constructor): Use existing type.
1491         (get_array_charlen): Likewise.
1492         * trans-const.c (gfc_conv_mpz_to_tree_type): New function.
1493         * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
1494         * trans-decl.c (gfc_trans_deferred_vars): Use existing type.
1495         (add_argument_checking): Likewise.
1496         * trans-expr.c (gfc_class_len_or_zero_get): Build const of type
1497         gfc_charlen_type_node.
1498         (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
1499         4, fold_convert to correct type.
1500         (gfc_conv_class_to_class): Build const of type size_type_node for
1501         size.
1502         (gfc_copy_class_to_class): Likewise.
1503         (gfc_conv_string_length): Use same type in expression.
1504         (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
1505         (gfc_conv_string_tmp): Make sure len is of the right type.
1506         (gfc_conv_concat_op): Use same type in expression.
1507         (gfc_conv_procedure_call): Likewise.
1508         (fill_with_spaces): Comment out memset() block due to spurious
1509         -Wstringop-overflow warnings.
1510         (gfc_trans_string_copy): Use gfc_charlen_type_node.
1511         (alloc_scalar_allocatable_for_subcomponent_assignment):
1512         fold_convert to right type.
1513         (gfc_trans_subcomponent_assign): Likewise.
1514         (trans_class_vptr_len_assignment): Build const of correct type.
1515         (gfc_trans_pointer_assignment): Likewise.
1516         (alloc_scalar_allocatable_for_assignment): fold_convert to right
1517         type in expr.
1518         (trans_class_assignment): Build const of correct type.
1519         * trans-intrinsic.c (gfc_conv_associated): Likewise.
1520         (gfc_conv_intrinsic_repeat): Do calculation in sizetype.
1521         * trans-io.c (gfc_build_io_library_fndecls): Use
1522         gfc_charlen_type_node for character lengths.
1523         (set_string): Convert to right type in assignment.
1524         * trans-stmt.c (gfc_trans_label_assign): Build const of
1525         gfc_charlen_type_node.
1526         (trans_associate_var): Likewise.
1527         (gfc_trans_character_select): Likewise.
1528         (gfc_trans_allocate): Likewise, don't typecast strlen result.
1529         (gfc_trans_deallocate): Don't typecast strlen result.
1530         * trans-types.c (gfc_size_kind): New variable.
1531         (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
1532         from size_type_node.
1533         * trans-types.h: Fix comment.
1535 2018-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1537         PR fortran/83683
1538         PR fortran/45689
1539         * check.c (gfc_check_eoshift): Check for string length and
1540         for conformance of boundary.
1541         * intrinsic.c (add_functions): Add gfc_simplify_eoshift.
1542         * intrinsic.h: Add prototype for gfc_simplify_eoshift.
1543         * simplify.c (gfc_simplify_eoshift): New function.
1545 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
1546             Alan Hayward  <alan.hayward@arm.com>
1547             David Sherwood  <david.sherwood@arm.com>
1549         * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
1551 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
1552             Alan Hayward  <alan.hayward@arm.com>
1553             David Sherwood  <david.sherwood@arm.com>
1555         * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
1557 2018-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1559         PR fortran/83664
1560         * check.c (gfc_check_eoshift): Error for missing boundary if array
1561         is not one of the standard types.
1563 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
1565         Update copyright years.
1567         * gfortranspec.c (lang_specific_driver): Update copyright notice
1568         dates.
1569         * gfc-internals.texi: Bump @copying's copyright year.
1570         * gfortran.texi: Ditto.
1571         * intrinsic.texi: Ditto.
1572         * invoke.texi: Ditto.
1574 2017-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1576         PR fortran/45689
1577         * intrinsic.c (add_function): Add gfc_simplify_maxloc and
1578         gfc_simplify_minloc to maxloc and minloc, respectively.
1579         * intrinsic.h: Add prototypes for gfc_simplify_minloc
1580         and gfc_simplify_maxloc.
1581         * simplify.c (min_max_chose): Adjust prototype.  Modify function
1582         to have a return value which indicates if the extremum was found.
1583         (is_constant_array_expr): Fix typo in comment.
1584         (simplify_minmaxloc_to_scalar): New function.
1585         (simplify_minmaxloc_nodim): New function.
1586         (new_array): New function.
1587         (simplify_minmaxloc_to_array): New function.
1588         (gfc_simplify_minmaxloc): New function.
1589         (simplify_minloc): New function.
1590         (simplify_maxloc): New function.
1592 2018-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1594         PR fortran/45689
1595         PR fortran/83650
1596         * simplify.c (gfc_simplify_cshift): Re-implement to allow full
1597         range of arguments.
1599 2018-01-01  Paul Thomas  <pault@gcc.gnu.org>
1601         PR fortran/83076
1602         * resolve.c (resolve_fl_derived0): Add caf_token fields for
1603         allocatable and pointer scalars, when -fcoarray selected.
1604         * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token
1605         field as well as the backend_decl.
1606         (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module
1607         derived types that are not vtypes. Components with caf_token
1608         attribute are pvoid types. For a component requiring it, find
1609         the caf_token field and have the component token field point to
1610         its backend_decl.
1612         PR fortran/83319
1613         *trans-types.c (gfc_get_array_descriptor_base): Add the token
1614         field to the descriptor even when codimen not set.
1616 Copyright (C) 2018 Free Software Foundation, Inc.
1618 Copying and distribution of this file, with or without modification,
1619 are permitted in any medium without royalty provided the copyright
1620 notice and this notice are preserved.