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