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