2018-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob1868780c921ea59f3a95d283eb3a1f13a24bbd42
1 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
3         PR fortran/85138
4         PR fortran/85996
5         PR fortran/86051
6         * decl.c (gfc_match_char_spec): Use private namespace in attempt to
7         reduce a charlen to a constant.
9 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
11         PR fortran/78278
12         * data.c (gfc_assign_data_value): Re-arrange code to allow for
13         an error for double initialization of CHARACTER entities.
15 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
17         PR fortran/63514
18         * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588.
20 2018-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
22         PR fortran/85631
23         * trans.h (gfc_ss): Add field no_bounds_check.
24         * trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and
25         ss->no_bounds_check is set, do not use runtime checks.
26         * trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check
27         for reallocatable lhs.
29 2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
31         PR fortran/86059
32         * array.c (match_array_cons_element): NULL() cannot be in an
33         array constructor.
35 2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
37         PR fortran/78571
38         * data.c (create_character_initializer): Return early if type is
39         incompatible with CHARACTER.
41 2018-06-07  Steven G. Kargl  <kargl@gcc.gnu.org>
43         PR fortran/86045
44         * simplify.c (gfc_simplify_mod): Re-arrange code to test whether
45         'P' is zero and issue an error if it is.
47 2018-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
49         PR fortran/85641
50         * frontend-passes.c (is_fe_temp): Add prototype.
51         (realloc_string_callback): Early return for frontend-generated
52         temporary.
54 2018-06-05  Cesar Philippidis  <cesar@codesourcery.com>
56         PR fortran/85701
58         * openmp.c (gfc_resolve_oacc_declare): Error on functions and
59         subroutine data clause arguments.
61 2018-06-04  Steven G. Kargl  <kargl@gcc.gnu.org>
63         PR fortran/85981
64         * resolve.c (resolve_allocate_deallocate): Check errmsg is default
65         character kind.
67 2018-06-03  Paul Thomas  <pault@gcc.gnu.org>
69         PR fortran/36497
70         * decl.c (variable_decl): Use gfc_add_type for cray pointees.
72 2018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>
74         PR fortran/63570
75         * check.c (gfc_check_random_init): New function. Check arguments of
76         RANDOM_INIT.
77         * gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token.
78         * intrinsic.c (add_subroutines): Add RANDOM_INIT to list of
79         subroutines.
80         (gfc_check_intrinsic_standard): Introduce Fortran 2018 check.
81         * intrinsic.h: Add prototypes for gfc_check_random_init and
82         gfc_resolve_random_init
83         * intrinsic.texi: Document new intrinsic subprogram.
84         * iresolve.c (gfc_resolve_random_init): Resolve routine name.
85         * trans-decl.c: Declare gfor_fndecl_random_init
86         * trans-intrinsic.c (conv_intrinsic_random_init): New function.
87         Translate call to RANDOM_INIT.
88         (gfc_conv_intrinsic_subroutine): Call it.
89         * trans.h: Declare gfor_fndecl_random_init
91 2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
93         * decl.c (match_data_constant):  Fortran 2018 allows pointer
94         initialization in a data statement.
96 2018-05-25  Janus Weil  <janus@gcc.gnu.org>
98         PR fortran/85839
99         * match.c (gfc_match_block_data): Call gfc_notify_std to warn about
100         an obsolescent feature in Fortran 2018.
101         (gfc_match_equivalence): Ditto.
102         * resolve.c (resolve_common_blocks): Ditto.
103         (gfc_resolve_forall): Ditto.
104         * symbol.c (gfc_define_st_label): Ditto.
106 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
108         PR fortran/85543
109         * resolve.c (update_current_proc_array_outer_dependency): Avoid NULL
110         pointer dereference.
112 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
114         PR fortran/85780
115         * resolve.c (resolve_fl_procedure): Avoid NULL dereference.
117 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
119         PR fortran/85779
120         * decl.c (gfc_match_derived_decl): Fix NULL point dereference.
122 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
124         PR fortran/85895
125         * resolve.c (resolve_sync): Resolve expression before checking for
126         an error.
128 2018-05-22  Janus Weil  <janus@gcc.gnu.org>
130         PR fortran/85841
131         * libgfortran.h: Remove the macros GFC_STD_F2008_TS and
132         GFC_STD_OPT_F08TS.
133         * error.c (notify_std_msg): Remove GFC_STD_F2008_TS.
134         * options.c (set_default_std_flags): Ditto.
135         (gfc_handle_option): Make -std=f2008ts an alias for -std=f2018.
136         * array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by
137         GFC_STD_F2018.
138         * check.c (gfc_check_atomic, gfc_check_event_query,
139         gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc,
140         gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto.
141         * decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto.
142         * intrinsic.c (add_functions, add_subroutines,
143         gfc_check_intrinsic_standard): Ditto.
144         * iso-c-binding.def: Ditto.
145         * iso-fortran-env.def: Ditto.
146         * match.c (gfc_match_event_post, gfc_match_event_wait,
147         gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team,
148         gfc_match_end_team, gfc_match_sync_team): Ditto.
149         * gfortran.texi: Remove mention of -std=f2008ts.
150         Move TSs into F2018 section.
151         * invoke.texi: Update documentation of -std=f2008ts.
153 2018-05-21  Janus Weil  <janus@gcc.gnu.org>
155         PR fortran/85841
156         * libgfortran.h: New macros GFC_STD_OPT_*.
157         * error.c (notify_std_msg): New function.
158         (gfc_notify_std): Adjust such that it can handle combinations of
159         GFC_STD_* flags in the 'std' argument, not just a single one.
160         * match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if
161         in Fortran 2018.
162         (gfc_match_stopcode): Use GFC_STD_OPT_* macros.
163         * options.c (set_default_std_flags): Warn for F2018 deleted features
164         by default.
165         (gfc_handle_option): F2018 deleted features are allowed in earlier
166         standards.
167         * symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject
168         nonblock do constructs in Fortran 2018.
170 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
172         PR fortran/80657
173         * resolve.c (flag_fn_result_spec): Use the 'sym' argument to
174         test for self refs to the function result in the character len
175         expression. If a self reference is found, emit an error and
176         return true.
177         (resolve_fntype): Use the function symbol in the calls to the
178         above.
180 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
182         PR fortran/49636
183         * trans-array.c (gfc_get_array_span): Renamed from
184         'get_array_span'.
185         (gfc_conv_expr_descriptor): Change references to above.
186         * trans-array.h : Add prototype for 'gfc_get_array_span'.
187         * trans-intrinsic.c (gfc_conv_associated): Add pre and post
188         blocks for 'arg1'.
189         * trans-stmt.c (trans_associate_var): If the associate name is
190         a subref array pointer, use gfc_get_array_span for the span.
192 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
194         PR fortran/82275
195         * match.c (gfc_match_type_spec): Go through the array ref and
196         decrement 'rank' for every dimension that is an element.
198 2018-05-19  Paul Thomas  <pault@gcc.gnu.org>
200         PR fortran/82923
201         PR fortran/66694
202         PR fortran/82617
203         * trans-array.c (gfc_alloc_allocatable_for_assignment): Set the
204         charlen backend_decl of the rhs expr to ss->info->string_length
205         so that the value in the current scope is used.
207 2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
209         PR fortran/63529
210         * gfortran.texi: Clarify documentation for Cray pointer and
211         assumed-sized array.
213 2018-05-13  Paul Thomas  <pault@gcc.gnu.org>
215         PR fortran/85742
216         * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation
217         of 'size'. If the element type is a pointer use the size of the
218         TREE_TYPE of the type, unless it is VOID_TYPE. In this latter
219         case, set the size to zero.
221 2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
223         * gfortran.h: Remove prototype.
224         * symbol.c (gfc_new_undo_checkpoint): Remove unused function.
226 2018-05-11  Steven G. Kargl  <kargl@gcc.gnu.org>
228         PR fortran/85542
229         * expr.c (check_inquiry): Avoid NULL pointer dereference.
231 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
233         PR fortran/85687
234         * check.c (gfc_check_rank): Check that the argument is a data object.
236 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
238         PR fortran/85521
239         * array.c (gfc_resolve_character_array_constructor): Substrings
240         with upper bound smaller than lower bound are zero length strings.
242 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
244         PR fortran/70870
245         * data.c (gfc_assign_data_value): Check that a data object does
246         not also have default initialization.
248 2018-05-10  Marek Polacek  <polacek@redhat.com>
250         PR fortran/85735
251         * options.c (gfc_post_options): Set main_input_filename.
253 2018-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
255         PR fortran/54613
256         * intrinsic.texi: Document BACK for MINLOC and MAXLOC.
258 2018-05-10  Paul Thomas  <pault@gcc.gnu.org>
260         PR fortran/68846
261         PR fortran/70864
262         * resolve.c (get_temp_from_expr): The temporary must not have
263         dummy or intent attributes.
265 2018-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
267         PR fortran/54613
268         * check.c (gfc_check_minmaxloc): Remove error for BACK not being
269         implemented.  Use gfc_logical_4_kind for BACK.
270         * simplify.c (min_max_choose): Add optional argument back_val.
271         Handle it.
272         (simplify_minmaxloc_to_scalar): Add argument back_val. Pass
273         back_val to min_max_choose.
274         (simplify_minmaxloc_to_nodim): Likewise.
275         (simplify_minmaxloc_to_array): Likewise.
276         (gfc_simplify_minmaxloc): Add argument back, handle it.
277         Pass back_val to specific simplification functions.
278         (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back,
279         pass it on to gfc_simplify_minmaxloc.
280         (gfc_simplify_maxloc): Likewise.
281         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust
282         comment. If BACK is true, use greater or equal (or lesser or
283         equal) insteal of greater (or lesser). Mark the condition of
284         having found a value which exceeds the limit as unlikely.
286 2018-05-07  Jeff Law  <law@redhat.comg>
288         * scanner.c (preprocessor_line): Call linemap_add after a line
289         directive that changes the current filename.
291 2018-05-06  Andre Vehreschild  <vehre@gcc.gnu.org>
293         PR fortran/85507
294         * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension
295         introduced by r259385.
296         * trans-intrinsic.c (conv_caf_send): Always report a dependency for
297         same variables in coarray assignments.
299 2018-05-02  Tom de Vries  <tom@codesourcery.com>
301         PR libgomp/82428
302         * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define.
304 2018-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
306         PR fortran/85520
307         * decl.c (gfc_match_char_spec): Check for negative length and set to 0.
309 2018-04-14  Andre Vehreschild  <vehre@gcc.gnu.org>
311         PR fortran/81773
312         PR fortran/83606
313         * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored
314         during dependency computation.  They define no data dependency.
315         * trans-array.c (conv_array_index_offset): The stride can not be set
316         here, prevent fail.
317         * trans-intrinsic.c (conv_caf_send): Add creation of temporary array
318         for caf_get's result and copying to the array with vectorial
319         indexing.
321 2018-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
323         PR fortran/85387
324         * frontend-passes.c (traverse_io_block): Check for start, end or
325         stride being defined by an outer implied DO loop.
327 2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
329         PR fortran/83064
330         PR testsuite/85346
331         * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind
332         for annotation and remove dependence on -ftree-parallelize-loops.
334 2018-04-10  Jakub Jelinek  <jakub@redhat.com>
336         PR fortran/85313
337         * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;.
338         (resolve_oacc_nested_loops): Likewise.  Formatting fix.
340 2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
342         PR fortran/83064
343         * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for
344         parallell processing of DO CONCURRENT -ftree-parallelize-loops
345         is set.
347 2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
349         PR fortran/51260
350         * resolve.c (resolve_variable): Simplify cases where access to a
351         parameter array results in a single constant.
353 2018-04-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
355         PR fortran/85102
356         * decl.c (variable_decl): If upper or lower bounds simplify
357         to a constant, use that.
359 2018-03-30  Paul Thomas  <pault@gcc.gnu.org>
361         PR fortran/84931
362         * simplify.c (gfc_convert_constant): Handle case of array
363         constructors within an array that has no iterator and improve
364         the conciseness of this section of code.
366 2017-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
368         PR fortran/85111
369         * array.c (gfc_resolve_character_array_constructor): Early
370         exit for zero-size arrays.
371         * simplify.c (simplify_transformation_to_array): Exit early
372         if the result size is zero.
373         (simplify_minmaxloc_to_array): Likewise.
375 2018-03-28  Mikael Morin  <mikael@gcc.gnu.org>
377         PR fortran/69497
378         * symbol.c (gfc_symbol_done_2): Start freeing namespaces
379         from the root.
380         (gfc_free_namespace): Restore assert (revert r258839).
382 2018-03-28  Jakub Jelinek  <jakub@redhat.com>
384         * gfortran.h (gfc_dt): Rename default_exp field to dec_ext.
385         * ioparm.def (IOPARM_dt_default_exp): Rename to ...
386         (IOPARM_dt_dec_ext): ... this.
387         * trans-io.c (build_dt): Adjust for default_exp renaming to
388         dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext.
389         * io.c (match_io): Likewise.
391 2018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
393         PR fortran/85084
394         * frontend-passes.c (gfc_run_passes): Do not run front-end
395         optimizations if a previous error occurred.
397 2018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
398         Harald Anlauf  <anlauf@gmx.de>
400         PR fortran/85083
401         * primary.c (gfc_convert_to_structure_constructor): Check
402         conformance of argument types in structure constructor.
404 2018-03-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
406         PR fortran/66709
407         * io.c: Include constructor.h.
408         (resolve_tag_format): For a constant character array, concatenate
409         into a single character expression.
411 2018-03-25  Seth Johnson <johnsonsr@ornl.gov>
412         Dominique d'Humieres  <dominiq@gcc.gnu.org>
414         PR fortran/84924
415         * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable
416         scalar derived type with -std=f2003 and -std=f2008.
418 2018-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
419             Dominique d'Humieres  <dominiq@gcc.gnu.org>
421         PR fortran/69497
422         * symbol.c (gfc_free_namespace): Delete the assert and only if
423         refs count is equals zero, free the namespace. Otherwise,
424         something is halfway and other errors will resound.
426 2018-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
428         PR fortran/70068
429         * expr.c (find_substring_ref): Change types of start, end
430         and length variables to gfc_charlen_t. Set length to zero
431         for empty substring.
433 2018-03-24  Steven G. Kargl  <kargl@gcc.gnu.org>
435         PR fortran/42651
436         * decl.c (check_function_name): Improved error message
437         (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name.
439 2018-03-22  Steven G. Kargl  <kargl@gcc.gnu.org>
441         PR fortran/84922
442         * decl.c (get_proc_name): If the MODULE prefix appears in interface
443         body, then it must appear on the contained subroutine or function.
444         While here, fix nearby mis-indented code.
446 2018-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
447         Harald Anlauf  <anlauf@gmx.de>
449         PR fortran/84957
450         * trans-types.c (gfc_sym_type): Do not dereference NULL pointer.
452 2018-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
454         PR fortran/84615
455         * trans-expr.c (gfc_conv_procedure_call): Convert charlen to
456         gfc_charlen_type_node when calling procedure.
458 2018-03-20  Steven G. Kargl  <kargl@gcc.gnu.org>
460         PR fortran/85001
461         * interface.c (symbol_rank): Remove bogus null pointer check that
462         crept in when translating a ternary operator into an if-else
463         constructor.
465 2018-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
467         PR fortran/84931
468         * simplify.c (gfc_convert_constant): Correctly handle iterators
469         for type conversion.
471 2018-03-18  Steven G. Kargl  <kargl@gcc.gnu.org>
473         PR fortran/77414
474         * decl.c (get_proc_name):  Check for a subroutine re-defined in
475         the contain portion of a subroutine.  Change language of existing
476         error message to better describe the issue. While here fix whitespace
477         issues.
479 2018-03-18  Steven G. Kargl  <kargl@gcc.gnu.org>
481         PR fortran/65453
482         * decl.c (get_proc_name): Catch clash between a procedure statement
483         and a contained subprogram
485 2018-03-16  Steven G. Kargl  <kargl@gcc.gnu.org>
487         PR fortran/69395
488         * decl.c (merge_array_spec): Correct the error condition.
490 2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
492         PR fortran/78741
493         * decl.c (get_proc_name):  Check for clash of entry name with
494         subroutine name.
496 2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
498         PR fortran/69395
499         * decl.c (merge_array_spec): Limit the merging to maximum allowed
500         dimensions, and issue error message if limit is exceeded.
502 2018-03-13  Steven G. Kargl  <kargl@gcc.gnu.org>
504         * check.c (gfc_check_kill_sub):  Remove check for INTEGER(4) or (8).
505         * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill.
506         (add_subroutines): Remove reference to gfc_resolve_kill_sub.
507         * intrinsic.texi: Update documentation.
508         * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove.
509         * trans-decl.c (gfc_build_intrinsic_function_decls):  Add
510         gfor_fndecl_kill and gfor_fndecl_kill_sub
511         * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new
512         functions.
513         (gfc_conv_intrinsic_function): Use conv_intrinsic_kill.
514         (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub.
515         * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub.
517 2018-03-11  Paul Thomas  <pault@gcc.gnu.org>
519         PR fortran/84546
520         * trans-array.c (structure_alloc_comps): Make sure that the
521         vptr is copied and that the unlimited polymorphic _len is used
522         to compute the size to be allocated.
523         * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the
524         unlimited polymorphic _len for the offset to the element.
525         (gfc_copy_class_to_class): Set the new 'unlimited' argument.
526         * trans.h : Add the boolean 'unlimited' to the prototype.
528 2018-03-11  Steven G. Kargl  <kargl@gcc.gnu.org>
530         PR fortran/83939
531         * resolve.c (resolve_fl_procedure): Enforce F2018:C15100.
533 2018-03-11  Steven G. Kargl  <kargls@gcc.gnu.org>
535         * check.c (gfc_check_kill):  Check pid and sig are scalar.
536         (gfc_check_kill_sub): Restrict kind to 4 and 8.
537         * intrinsic.c (add_function): Sort keyword list.  Add pid and sig
538         keywords for KILL.  Remove redundant *back="back" in favor of the
539         original *bck="back".
540         (add_subroutines): Sort keyword list.  Add pid and sig keywords
541         for KILL.
542         * intrinsic.texi: Fix documentation to consistently use pid and sig.
543         * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8.  Choose the
544         correct function.
545         (gfc_resolve_rename_sub): Add comment.
547 2018-03-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
549         PR fortran/66128
550         * simplify.c (simplify_transformation): Return default result for
551         empty array argument.
552         (gfc_simplify_all): Remove special-case handling for zerosize.
553         (gfc_simplify_any): Likewise.
554         (gfc_simplify_count): Likewise.
555         (gfc_simplify_iall): Likewise.
556         (gfc_simplify_iany): Likewise.
557         (gfc_simplify_iparity): Likewise.
558         (gfc_simplify_minval): Likewise.
559         (gfc_simplify_maxval): Likewise.
560         (gfc_simplify_norm2): Likewise.
561         (gfc_simplify_product): Likewise.
562         (gfc_simplify_sum): Likewise.
564 2018-03-10  Steven G. Kargl  <kargl@gcc.gnu.org>
566         PR fortran/84734
567         * arith.c (check_result, eval_intrinsic):  If result overflows, pass
568         the expression up the chain instead of a NULL pointer.
570 2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>
572         PR fortran/64124
573         PR fortran/70409
574         * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
576 2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
578         PR fortran/84697
579         PR fortran/66128
580         * expr.c (simplify_parameter_variable): If p is a size zero array
581         and not an ARRAY_EXPR insert an empty array constructor and
582         return.
583         * gfortran.h: Add prototype for gfc_is_size_zero_array.
584         * simplify.c (is_size_zero_array): Make non-static and rename into
585         (gfc_is_size_zero_array):  Check for parameter arrays of zero
586         size by comparing shape and absence of constructor.
587         (gfc_simplify_all): Use gfc_is_size_zero_array instead of
588         is_size_zero_array.
589         (gfc_simplify_count): Likewise.
590         (gfc_simplify_iall): Likewise.
591         (gfc_simplify_iany): Likewise.
592         (gfc_simplify_iparity): Likewise.
593         (gfc_simplify_minval): Likewise.
594         (gfc_simplify_maxval): Likewise.
595         (gfc_simplify_product): Likewise.
596         (gfc_simplify_sum): Likewise.
598 2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>
600         PR fortran/56667
601         * primary.c (match_sym_complex_part): Give the matcher for an implied
602         do-loop a chance to run.
604 2018-03-03  Harald Anlauf  <anlauf@gmx.de>
606         PR fortran/71085
607         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
608         dereference NULL pointer.
610 2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
612         PR fortran/66128
613         * simplify.c (is_size_zero_array): New function to check for size
614         zero array.
615         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
616          gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
617          gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
618          gfc_simplify_product, gfc_simplify_sum): Use it, and implement
619         requirements from F2018.
621 2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
623         PR fortran/51434
624         * simplify.c (gfc_simplify_transfer): Resolve mold.
626 2018-03-03  Paul Thomas  <pault@gcc.gnu.org>
628         PR fortran/80965
629         * resolve.c (build_loc_call): Change symtree name from 'loc' to
630         '_loc'.
632 2018-03-01  Paul Thomas  <pault@gcc.gnu.org>
634         PR fortran/84219
635         * target-memory.c (gfc_interpret_derived): Assert that BT_VOID
636         components are caf tokens.
637         (gfc_target_interpret_expr): Treat BT_VOID expressions as
638         integers.
640 2018-03-01  Paul Thomas  <pault@gcc.gnu.org>
642         PR fortran/84538
643         * class.c (class_array_ref_detected): Remove the condition that
644         there be no reference after the array reference.
645         (find_intrinsic_vtab): Remove excess whitespace.
646         * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
647         as 'base and call build_class_array_ref earlier.
649 2018-02-28  Paul Thomas  <pault@gcc.gnu.org>
651         PR fortran/83901
652         * trans-stmt.c (trans_associate_var): Make sure that the se
653         expression is a pointer type before converting it to the symbol
654         backend_decl type.
656 2018-02-25  Steven G. Kargl  <kargl@gcc.gnu.org>
658         PR fortran/83633
659         * decl.c (variable_decl): Check that an explicit-shape-array with
660         nonconstant bounds is allowed.
662 2018-02-25  Paul Thomas  <pault@gcc.gnu.org>
664         PR fortran/84523
665         * trans-intrinsic.c (gfc_conv_allocated): If the argument se
666         has a pre block, add it to the expression pre block.
668 2018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
670         PR fortran/78238
671         * gfortran.h (gfc_integer_4_kind): Define.
672         * resolve.c (resolve_select_type): Make sure that the
673         kind of c->high is gfc_integer_4_kind.
675 2018-02-24  Steven G. Kargl <kargl@gcc.gnu.org>
677         PR fortran/30792
678         * decl.c (gfc_match_data): Check for invalid substring in
679         data-implied-do
681 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
683         * intrinsic.texi: Arguments to MATMUL cannot both be rank one.
685 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
687         PR fortran/84511
688         * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement.
690 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
692         PR fortran/84346
693         * interface.c (compare_actual_formal): Issue error if keyword is
694         used in a statement function.
696 2018-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
698         PR fortran/84506
699         * trans-io.c (set_parameter_value_inquire): Adjust range check of
700         negative unit values for kind=8 units to the kind=4 negative limit.
702 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
704         PR fortran/83149
705         * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before
706         accessing its components.
708 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
710         PR fortran/83149
711         * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name
712         before accessing its components.
714 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
716         PR fortran/83148
717         * trans-const.c : Clean up some whitespace issues.
718         * trans-expr.c (gfc_conv_initializer): If an iso_c_binding
719         derived type has a kind value of zero, set it to the default
720         integer kind.
722 2018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>
724         PR fortran/84519
725         * trans-decl.c (gfc_build_builtin_function_decls): Add bool
726         argument to stop and error stop decls.
727         * trans-stmt.c (gfc_trans_stop): Add false value to argument
728         lists.
730 2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
732         PR 78534
733         PR 84509
734         * trans-decl.c (gfc_build_builtin_function_decls): Pass
735         gfc_int8_type node to pause_numeric, size_type_node to
736         pause_string.
737         * trans-stmt.c (gfc_trans_pause): Likewise.
739 2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
741         * gfortran.texi: Update Coarray API description.
742         * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
743         character lengths, int for exit codes.
744         (generate_coarray_sym_init): Use size_t for character length.
745         * trans-intrinsic.c (conv_co_collective): Likewise.
746         * trans-stmt.c (gfc_trans_lock_unlock): Likewise.
747         (gfc_trans_event_post_wait): Likewise.
748         (gfc_trans_sync): Likewise.
749         (gfc_trans_stop): Use size_t for character lengths, int for exit
750         codes.
752 2018-02-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
754         PR fortran/48890
755         PR fortran/83823
756         * primary.c (gfc_convert_to_structure_constructor):
757         For a constant string constructor, make sure the length
758         is correct.
760 2018-02-19  Paul Thomas  <pault@gcc.gnu.org>
762         PR fortran/83344
763         PR fortran/83975
764         * resolve.c (resolve_assoc_var): Rearrange the logic for the
765         determination of the character length of associate names. If
766         the associate name is missing a length expression or the length
767         expression is not a constant and the target is not a variable,
768         make the associate name allocatable and deferred length.
769         * trans-decl.c (gfc_get_symbol_decl): Null the character length
770         backend_decl for deferred length associate names that are not
771         variables. Set 'length' to gfc_index_zero_node for character
772         associate names, whose character length is a PARM_DECL.
774 2018-02-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
776         PR fortran/35339
777         * frontend-passes.c (traverse_io_block): Remove workaround for
778         PR 80945.
780 2018-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>
782         * gfortran.texi: Document additional src/dst_type.  Fix some typos.
783         * trans-decl.c (gfc_build_builtin_function_decls): Declare the new
784         argument of _caf_*_by_ref () with * e { get, send, sendget }.
785         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the
786         data referenced when generating a call to caf_get_by_ref ().
787         (conv_caf_send): Same but for caf_send_by_ref () and
788         caf_sendget_by_ref ().
790 2018-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
792         PR fortran/84389
793         * io.c (check_format): Allow FMT_COLON.
795 2018-02-18  Paul Thomas  <pault@gcc.gnu.org>
797         PR fortran/80945
798         * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from
799         the typenode in the case of deferred length characters.
801 2018-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
803         PR fortran/84270
804         * frontend-passes (scalarized_expr):  If the expression
805         is an assumed size array, leave in the last reference
806         and pass AR_SECTION instead of AR_FULL to gfc_resolve
807         in order to avoid an error.
809 2018-02-17  Paul Thomas  <pault@gcc.gnu.org>
811         PR fortran/84115
812         * resolve.c (resolve_assoc_var): If a non-constant target expr.
813         has no string length expression, make the associate variable
814         into a deferred length, allocatable symbol.
815         * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to
816         the symbol.
817         * trans-stmt.c (trans_associate_var): Null and free scalar
818         associate names that are allocatable. After assignment, remove
819         the allocatable attribute to prevent reallocation.
821 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
823         PR fortran/84418
824         * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF
825         kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step.
827 2018-02-16  Dominique d'Humieres  <dominiq@gcc.gnu.org>
829         PR fortran/84354
830         * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs.
832 2018-02-15  Janus Weil  <janus@gcc.gnu.org>
834         PR fortran/84409
835         * interface.c (check_dtio_arg_TKR_intent): Add a check for character
836         length.
838 2018-02-14  Janus Weil  <janus@gcc.gnu.org>
840         PR fortran/84385
841         * match.c (gfc_match_select_type): Fix check for selector in
842         SELECT TYPE statement.
844 2018-02-13  Janus Weil  <janus@gcc.gnu.org>
846         PR fortran/84313
847         * symbol.c (check_conflict): Reject procedure pointers in common blocks.
849 2018-02-13  Alastair McKinstry  <alastair.mckinstry@sceal.ie>
850             Janne Blomqvist  <jb@gcc.gnu.org>
852         * module.c (dump_module): Use lbasename to ensure that module
853         files are reproducible.
855 2018-02-12  Janus Weil  <janus@gcc.gnu.org>
857         PR fortran/84273
858         * resolve.c (resolve_component): Fix checks of passed argument in
859         procedure-pointer components.
861 2018-02-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
863         PR fortran/35299
864         * resolve.c (resolve_formal_arglist): Update error message.
866 2018-02-11  Andre Vehreschild  <vehre@gcc.gnu.org>
868         * gfortran.texi: Fix typos in documentation of caf_register ().
869         * trans-array.c (structure_alloc_comps): Only register a component of
870         a derived typed corray, not of an ultimate component coarray.
872 2018-02-11  Steven G. Kargl  <kargl@gcc.gnu.org>
874         PR fortran/54223
875         PR fortran/84276
876         * interface.c (compare_actual_formal): Add in_statement_function
877         bool parameter.  Skip check of INTENT attribute for statement
878         functions.  Arguments to a statement function cannot be optional,
879         issue error for missing argument.
880         (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use
881          in_statement_function.
883 2018-02-11  Paul Thomas  <pault@gcc.gnu.org>
885         PR fortran/84074
886         * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset
887         flag. If the is a vector subscript or the expression is not a
888         variable, make the descriptor one-based.
890 2018-02-10  Paul Thomas  <pault@gcc.gnu.org>
892         PR fortran/84141
893         PR fortran/84155
894         * trans-array.c (gfc_array_init_size): Revert the change made
895         in revision 257356 setting the dtype.
896         * trans-types.c (gfc_get_dtype): Do not use the cached dtype.
897         Call gfc_get_dtype_rank_type every time.
899         PR fortran/56691
900         * trans-array.c (gfc_conv_expr_descriptor): If the source array
901         is a descriptor type, use its offset, removing the condition
902         that is be a class expression.
904 2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
906         PR fortran/82994
907         * match.c (gfc_match_deallocate): Check for NULL pointer.
909 2018-02-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
911         PR fortran/68560
912         * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function.
913         (gfc_conv_intrinsic_function): Call it.
915 2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
917         PR fortran/82049
918         * match.c (gfc_match_type_spec): If the charlen is non-NULL, then
919         try to resolve it.  While here return early if possible.
921 2018-02-04  Paul Thomas  <pault@gcc.gnu.org>
923         PR fortran/84115
924         * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of
925         'length' if the symbol charlen backend_decl is an indirect ref.
927 2018-02-03  Paul Thomas  <pault@gcc.gnu.org>
929         PR fortran/84141
930         PR fortran/84155
931         * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype
932         use gfc_get_dtype_rank_type.
934 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
936         PR 83975
937         PR 83344
938         * resolve.c (resolve_assoc_var): Generate an error if
939         target length unknown.
941 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
943         PR fortran/83705
944         * simplify.c (gfc_simplify_repeat): Increase limit for deferring
945         to runtime, print a warning message.
947 2018-01-31  Jakub Jelinek  <jakub@redhat.com>
949         PR fortran/84116
950         * openmp.c (gfc_match_omp_clauses): If all the linear
951         gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist
952         nor set *head = NULL.  Formatting fixes.
954 2018-01-31  Paul Thomas  <pault@gcc.gnu.org>
956         PR fortran/84088
957         * trans-expr.c (gfc_conv_procedure_call): If the parm expr is
958         an address expression passed to an assumed rank dummy, convert
959         to an indirect reference.
961 2018-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
963         * dump-parse-tree.c (write_proc): Use sym_name (which may
964         be sym->binding_label) instead of sym->name.
966 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
968         * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead
969         of int for slen.
971 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
973         PR fortran/78534
974         * trans-expr.c (fill_with_spaces): Use memset instead of
975         generating loop.
976         (gfc_trans_string_copy): Improve opportunity to use builtins with
977         constant lengths.
979 2018-01-30  Jakub Jelinek  <jakub@redhat.com>
981         PR debug/84131
982         * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off
983         to DATA_FIELD's offset rather than OFFSET_FIELD's offset.
985 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
987         PR fortran/84134
988         * array.c (gfc_ref_dimen_size): Whitespace fixes.  If stride is
989         zero, return false.
991 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
993         PR fortran/84133
994         * frontend-passes (matmul_to_var_expr): Return early if
995         in association list.
996         (inline_matmul_assign): Likewise.
998 2017-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1000         PR fortran/84073
1001         * resolve.c (resolve_component): Ensure BIND(C) character
1002         components have length one.
1003         (resolve_symbol): Likewise for variables.
1005 2018-01-27  Jakub Jelinek  <jakub@redhat.com>
1007         PR fortran/84065
1008         * decl.c (add_init_expr_to_sym): Ignore initializers for too large
1009         lengths.
1011 2018-01-26  Damian Rouson  <damian@sourceryinstitute.org>
1012             Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1013             Soren Rasmussen  <s.c.rasmussen@gmail.com>
1015         Partial support for Fortran 2018 teams features.
1017         * array.c (gfc_match_array_ref): add team attribute in coarray
1018         transfers.
1019         * check.c (gfc_check_get_team, gfc_check_team_number): add new
1020         functions for get_team and team_number.
1021         * dump-parse-tree.c (show_code_node): add new statements: form team,
1022         change team, end team, and sync team.
1023         * expr.c (gfc_find_team_co): add new function.
1024         * gfortran.h: add new statements.
1025         * intrinsic.c (add_functions): add get_team and team_number functions.
1026         * intrinsic.h: add get_team and team_number prototypes for check,
1027         simplify, and resolve.
1028         * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new
1029         functions.
1030         * iso-fortran-env.def: add the team_type derived type.
1031         * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number)
1032         (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team):
1033         add change team, end team, form team, sync team match and functions.
1034         * match.h: add new prototypes for change team, end team, form team,
1035         and sync team.
1036         * parse.c (decode_statement): add cases for change team, end team,
1037         form team, and sync team.
1038         * resolve.c: add cases for exec form team, change team, end team, and
1039         sync team.
1040         * simplify.c (gfc_simplify_get_team): add new function for get team.
1041         * st.c (gfc_free_statement): add cases exec for change team, end team,
1042         form team, sync team.
1043         * trans-decl.c (gfor_fndecl_caf_form_team)
1044         (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team)
1045         (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team)
1046         (gfor_fndecl_caf_team_number): add functions and definitions.
1047         * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add
1048         new function and team_type argument support.
1049         * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team)
1050         (gfc_trans_end_team, gfc_trans_sync_team): add new functions.
1051         * trans-stmt.h: add new prototypes.
1052         * trans-types.c (gfc_get_derived_type): check condition for team_type.
1053         * trans.c (trans_code): new exec cases for form team, change team, end
1054         team, and sync team.
1055         * trans.h: add new prototypes.
1057 2018-01-26  Steven G. Kargl  <kargl@gcc.gnu.org>
1059         PR fortran/83998
1060         * simplify.c (compute_dot_product):  Initialize result to INTEGER(1) 0
1061         or .false.  The summation does the correct type conversion.
1062         (gfc_simplify_dot_product): Special case zero-sized arrays.
1064 2018-25-01  Paul Thomas  <pault@gcc.gnu.org>
1066         PR fortran/37577
1067         * array.c (gfc_match_array_ref): If standard earlier than F2008
1068         it is an error if the reference dimension is greater than 7.
1069         libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the
1070         dtype masks and shifts accordingly.
1071         * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype
1072         type node to check the field.
1073         (gfc_conv_descriptor_dtype): Access the rank field of dtype.
1074         (duplicate_allocatable_coarray): Access the rank field of the
1075         dtype descriptor rather than the dtype itself.
1076         * trans-expr.c (get_scalar_to_descriptor_type): Store the type
1077         of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE
1078         (ie. a character).
1079         (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to
1080         get_scalar_to_descriptor_type if the actual expression is a
1081         constant.
1082         (gfc_trans_structure_assign): Assign the rank directly to the
1083         dtype rank field.
1084         * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result
1085         to default integer kind.
1086         (gfc_conv_intrinsic_sizeof): Obtain the element size from the
1087         'elem_len' field of the dtype.
1088         * trans-io.c (gfc_build_io_library_fndecls): Replace
1089         gfc_int4_type_node with dtype_type_node where necessary.
1090         (transfer_namelist_element): Use gfc_get_dtype_rank_type for
1091         scalars.
1092         * trans-types.c : Provide 'get_dtype_type_node' to acces the
1093         dtype_type_node and, if necessary, build it.
1094         The maximum size of an array element is now determined by the
1095         maximum value of size_t.
1096         Update the description of the array descriptor, including the
1097         type def for the dtype_type.
1098         (gfc_get_dtype_rank_type): Build a constructor for the dtype.
1099         Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS.
1100         (gfc_get_array_descriptor_base): Change the type of the dtype
1101         field to dtype_type_node.
1102         (gfc_get_array_descr_info): Get the offset to the rank field of
1103         the dtype.
1104         * trans-types.h : Add a prototype for 'get_dtype_type_node ()'.
1105         * trans.h : Define the indices of the dtype fields.
1107 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
1109         PR fortran/83866
1110         * decl.c (gfc_match_derived_decl): If eos not matched, recover
1111         and emit error about garbage after declaration.
1113 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
1115         PR fortran/83898
1116         * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
1117         for characters.
1119 2018-01-22  Janne Blomqvist  <jb@gcc.gnu.org>
1121         PR 78534
1122         PR 83704
1123         * arith.c (gfc_arith_concat): Use size_t for string length.
1124         (gfc_compare_string): Likewise.
1125         (gfc_compare_with_Cstring): Likewise.
1126         * array.c (gfc_resolve_character_array_constructor): Use
1127         HOST_WIDE_INT, gfc_mpz_get_hwi.
1128         * check.c (gfc_check_fe_runtime_error): Use size_t.
1129         * data.c (create_character_initializer): Use HOST_WIDE_INT,
1130         gfc_extract_hwi.
1131         * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t.
1132         (add_init_expr_to_sym): Use HOST_WIDE_INT.
1133         * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT,
1134         gfc_extract_hwi.
1135         (gfc_apply_init): Likewise.
1136         * match.h (gfc_set_constant_character_len): Update prototype.
1137         * primary.c (match_string_constant): Use size_t.
1138         * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT,
1139         gfc_mpz_get_hwi.
1140         * simplify.c (init_result_expr): Likewise.
1141         (gfc_simplify_len_trim): Use size_t.
1142         * target-memory.c (gfc_encode_character): Use size_t.
1143         (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi.
1144         (interpret_array): Use size_t.
1145         (gfc_interpret_character): Likewise.
1146         * target-memory.h (gfc_encode_character): Update prototype.
1147         (gfc_interpret_character): Likewise.
1148         (gfc_target_interpret_expr): Likewise.
1149         * trans-const.c (gfc_build_string_const): Use size_t for length
1150         argument.
1151         (gfc_build_wide_string_const): Likewise.
1152         * trans-const.h (gfc_build_string_const): Likewise.
1153         (gfc_build_wide_string_const): Likewise.
1155 2018-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1157         PR fortran/83900
1158     * simplify.c (gfc_simplify_matmul): Set return type correctly.
1160 2018-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1162         PR fortran/83900
1163         * simplify.c (gfc_simplify_matmul): Delete bogus assertion.
1165 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
1167         PR fortran/83864
1168         * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
1170 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
1172         PR fortran/83874
1173         * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
1175 2018-01-15  Louis Krupp  <louis.krupp@zoho.com>
1177         PR fortran/82257
1178         * interface.c (compare_rank): Don't try to retrieve CLASS_DATA
1179         from symbol marked unlimited polymorphic.
1180         * resolve.c (resolve_structure_cons): Likewise.
1181         * misc.c (gfc_typename): Don't dereference derived->components
1182         if it's NULL.
1184 2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
1186         PR fortran/54613
1187         * gfortran.h (gfc_check_f): Rename f4ml to f5ml.
1188         (gfc_logical_4_kind): New macro
1189         * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
1190         (gfc_simplify_maxloc): Likewise.
1191         (gfc_resolve_maxloc): Likewise.
1192         (gfc_resolve_minloc): Likewise.
1193         * check.c (gfc_check_minloc_maxloc): Add checking for "back"
1194         argument; also raise error if it is used (for now). Add it
1195         if it isn't present.
1196         * intrinsic.c (add_sym_4ml): Rename to
1197         (add_sym_5ml), adjust for extra argument.
1198         (add_functions): Add "back" constant. Adjust maxloc and minloc
1199         for back argument.
1200         * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
1201         not of gfc_logical_4_kind, convert.
1202         (gfc_resolve_minloc): Likewise.
1203         * simplify.c (gfc_simplify_minloc): Add back argument.
1204         (gfc_simplify_maxloc): Likewise.
1205         * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
1206         argument to %VAL to ensure passing by value.
1207         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
1208         also for library calls.
1210 2018-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1212         PR fortran/82007
1213         * resolve.c (resolve_transfer): Delete code looking for 'DT'
1214         format specifiers in format strings. Set formatted to true if a
1215         format string or format label is present.
1216         * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix
1217         whitespace.
1219 2018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1221         PR fortran/83744
1222         * dump-parse-tree.c (get_c_type_name): Remove extra line.
1223         Change for loop to use declaration in for loop. Handle BT_LOGICAL
1224         and BT_CHARACTER.
1225         (write_decl): Add where argument. Fix indentation. Replace
1226         assert with error message. Add typename to warning
1227         in comment.
1228         (write_type): Adjust locus to call of write_decl.
1229         (write_variable): Likewise.
1230         (write_proc): Likewise. Replace assert with error message.
1232 2018-01-13  Paul Thomas  <pault@gcc.gnu.org>
1234         PR fortran/52162
1235         * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if
1236         the rhs expression is neither an elemental nor a conversion
1237         function.
1239         PR fortran/83622
1240         * trans-array.c (is_pointer_array): Remove unconditional return
1241         of false for -fopenmp.
1243 2018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1244         <emsr@gcc.gnu.org>
1246         PR fortran/83803
1247         * dump-parse-tree.c (write_proc): Always emit closing parenthesis
1248         for functions.
1250 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1252         PR fortran/82367
1253         * resolve.c (resolve_allocate_expr): Check for NULL pointer.
1255 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1257         PR fortran/83093
1258         * resolve.c (resolve_charlen): Check the type of cl->length
1259         after resolution.
1261 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
1263         PR fortran/83740
1264         * trans-array.c (gfc_trans_array_ctor_element): Fix formatting.
1266 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
1268         PR fortran/83740
1269         * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the
1270         LHS type when assigning.
1272 2018-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1274         PR fortran/83742
1275         * expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
1277 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1279         * match.c (gfc_match_allocate): Check for NULL pointer.
1281 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1283         * expr.c (gfc_check_pointer_assign): Fix typo in comment.
1285 2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
1287         PR fortran/83611
1288         * decl.c (gfc_get_pdt_instance): If parameterized arrays have
1289         an initializer, convert the kind parameters and add to the
1290         component if the instance.
1291         * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
1292         use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
1293         for parameterized arrays. Clean up typos in comments. Convert
1294         parameterized array initializers and copy into the array.
1295         * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
1296         parameterized types.
1297         *trans-stmt.c (trans_associate_var): Deallocate associate vars
1298         as necessary, when they are PDT function results for example.
1300         PR fortran/83731
1301         * trans-array.c (structure_alloc_comps): Only compare len parms
1302         when they are declared explicitly.
1304 2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
1306         PR fortran/50892
1307         * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
1308         lhs type.
1310 2018-01-05  Janne Blomqvist  <jb@gcc.gnu.org>
1312         PR fortran/78534
1313         PR fortran/66310
1314         * array.c (got_charlen): Use gfc_charlen_int_kind.
1315         * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
1316         hardcoded kind.
1317         (find_intrinsic_vtab): Likewise.
1318         * decl.c (match_char_length): Use gfc_charlen_int_kind.
1319         (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind.
1320         (gfc_match_implicit): Use gfc_charlen_int_kind.
1321         * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t.
1322         (show_expr): Use HOST_WIDE_INT_PRINT_DEC.
1323         * expr.c (gfc_get_character_expr): Length parameter of type
1324         gfc_charlen_t.
1325         (gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
1326         (gfc_extract_hwi): New function.
1327         (simplify_const_ref): Make string_len of type gfc_charlen_t.
1328         (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
1329         * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind.
1330         * gfortran.h (gfc_mpz_get_hwi): New prototype.
1331         (gfc_mpz_set_hwi): Likewise.
1332         (gfc_charlen_t): New typedef.
1333         (gfc_expr): Use gfc_charlen_t for character lengths.
1334         (gfc_size_kind): New extern variable.
1335         (gfc_extract_hwi): New prototype.
1336         (gfc_get_character_expr): Use gfc_charlen_t for character length.
1337         (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
1338         * gfortran.texi: Update description of hidden string length argument.
1339         * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind.
1340         (gfc_resolve_char_achar): Likewise.
1341         (gfc_resolve_repeat): Pass string length directly without
1342         temporary, use gfc_charlen_int_kind.
1343         (gfc_resolve_transfer): Use gfc_charlen_int_kind.
1344         * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
1345         * misc.c (gfc_mpz_get_hwi): New function.
1346         (gfc_mpz_set_hwi): New function.
1347         * module.c (atom_int): Change type from int to HOST_WIDE_INT.
1348         (parse_integer): Don't complain about large integers.
1349         (write_atom): Use HOST_WIDE_INT for integers.
1350         (mio_integer): Handle integer type mismatch.
1351         (mio_hwi): New function.
1352         (mio_intrinsic_op): Use HOST_WIDE_INT.
1353         (mio_array_ref): Likewise.
1354         (mio_expr): Likewise.
1355         * primary.c (match_substring): Use gfc_charlen_int_kind.
1356         * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind.
1357         (resolve_character_operator): Likewise.
1358         (resolve_assoc_var): Likewise.
1359         (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf.
1360         (resolve_charlen): Use mpz_sgn to determine sign.
1361         * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
1362         instead of long.
1363         * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind.
1364         * target-memory.c (size_character): Length argument of type
1365         gfc_charlen_t.
1366         (gfc_encode_character): Likewise.
1367         (gfc_interpret_character): Use gfc_charlen_t.
1368         * target-memory.h (gfc_encode_character): Modify prototype.
1369         * trans-array.c (gfc_trans_array_ctor_element): Use existing type.
1370         (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type.
1371         (trans_array_constructor): Use existing type.
1372         (get_array_charlen): Likewise.
1373         * trans-const.c (gfc_conv_mpz_to_tree_type): New function.
1374         * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
1375         * trans-decl.c (gfc_trans_deferred_vars): Use existing type.
1376         (add_argument_checking): Likewise.
1377         * trans-expr.c (gfc_class_len_or_zero_get): Build const of type
1378         gfc_charlen_type_node.
1379         (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
1380         4, fold_convert to correct type.
1381         (gfc_conv_class_to_class): Build const of type size_type_node for
1382         size.
1383         (gfc_copy_class_to_class): Likewise.
1384         (gfc_conv_string_length): Use same type in expression.
1385         (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
1386         (gfc_conv_string_tmp): Make sure len is of the right type.
1387         (gfc_conv_concat_op): Use same type in expression.
1388         (gfc_conv_procedure_call): Likewise.
1389         (fill_with_spaces): Comment out memset() block due to spurious
1390         -Wstringop-overflow warnings.
1391         (gfc_trans_string_copy): Use gfc_charlen_type_node.
1392         (alloc_scalar_allocatable_for_subcomponent_assignment):
1393         fold_convert to right type.
1394         (gfc_trans_subcomponent_assign): Likewise.
1395         (trans_class_vptr_len_assignment): Build const of correct type.
1396         (gfc_trans_pointer_assignment): Likewise.
1397         (alloc_scalar_allocatable_for_assignment): fold_convert to right
1398         type in expr.
1399         (trans_class_assignment): Build const of correct type.
1400         * trans-intrinsic.c (gfc_conv_associated): Likewise.
1401         (gfc_conv_intrinsic_repeat): Do calculation in sizetype.
1402         * trans-io.c (gfc_build_io_library_fndecls): Use
1403         gfc_charlen_type_node for character lengths.
1404         (set_string): Convert to right type in assignment.
1405         * trans-stmt.c (gfc_trans_label_assign): Build const of
1406         gfc_charlen_type_node.
1407         (trans_associate_var): Likewise.
1408         (gfc_trans_character_select): Likewise.
1409         (gfc_trans_allocate): Likewise, don't typecast strlen result.
1410         (gfc_trans_deallocate): Don't typecast strlen result.
1411         * trans-types.c (gfc_size_kind): New variable.
1412         (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
1413         from size_type_node.
1414         * trans-types.h: Fix comment.
1416 2018-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1418         PR fortran/83683
1419         PR fortran/45689
1420         * check.c (gfc_check_eoshift): Check for string length and
1421         for conformance of boundary.
1422         * intrinsic.c (add_functions): Add gfc_simplify_eoshift.
1423         * intrinsic.h: Add prototype for gfc_simplify_eoshift.
1424         * simplify.c (gfc_simplify_eoshift): New function.
1426 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
1427             Alan Hayward  <alan.hayward@arm.com>
1428             David Sherwood  <david.sherwood@arm.com>
1430         * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
1432 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
1433             Alan Hayward  <alan.hayward@arm.com>
1434             David Sherwood  <david.sherwood@arm.com>
1436         * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
1438 2018-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1440         PR fortran/83664
1441         * check.c (gfc_check_eoshift): Error for missing boundary if array
1442         is not one of the standard types.
1444 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
1446         Update copyright years.
1448         * gfortranspec.c (lang_specific_driver): Update copyright notice
1449         dates.
1450         * gfc-internals.texi: Bump @copying's copyright year.
1451         * gfortran.texi: Ditto.
1452         * intrinsic.texi: Ditto.
1453         * invoke.texi: Ditto.
1455 2017-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1457         PR fortran/45689
1458         * intrinsic.c (add_function): Add gfc_simplify_maxloc and
1459         gfc_simplify_minloc to maxloc and minloc, respectively.
1460         * intrinsic.h: Add prototypes for gfc_simplify_minloc
1461         and gfc_simplify_maxloc.
1462         * simplify.c (min_max_chose): Adjust prototype.  Modify function
1463         to have a return value which indicates if the extremum was found.
1464         (is_constant_array_expr): Fix typo in comment.
1465         (simplify_minmaxloc_to_scalar): New function.
1466         (simplify_minmaxloc_nodim): New function.
1467         (new_array): New function.
1468         (simplify_minmaxloc_to_array): New function.
1469         (gfc_simplify_minmaxloc): New function.
1470         (simplify_minloc): New function.
1471         (simplify_maxloc): New function.
1473 2018-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1475         PR fortran/45689
1476         PR fortran/83650
1477         * simplify.c (gfc_simplify_cshift): Re-implement to allow full
1478         range of arguments.
1480 2018-01-01  Paul Thomas  <pault@gcc.gnu.org>
1482         PR fortran/83076
1483         * resolve.c (resolve_fl_derived0): Add caf_token fields for
1484         allocatable and pointer scalars, when -fcoarray selected.
1485         * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token
1486         field as well as the backend_decl.
1487         (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module
1488         derived types that are not vtypes. Components with caf_token
1489         attribute are pvoid types. For a component requiring it, find
1490         the caf_token field and have the component token field point to
1491         its backend_decl.
1493         PR fortran/83319
1494         *trans-types.c (gfc_get_array_descriptor_base): Add the token
1495         field to the descriptor even when codimen not set.
1497 Copyright (C) 2018 Free Software Foundation, Inc.
1499 Copying and distribution of this file, with or without modification,
1500 are permitted in any medium without royalty provided the copyright
1501 notice and this notice are preserved.