2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob6e1af909a5a5e59315bdfed58bae31027096ae83
1 2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
3         PR fortran/69395
4         * decl.c (merge_array_spec): Limit the merging to maximum allowed
5         dimensions, and issue error message if limit is exceeded.
7 2018-03-13  Steven G. Kargl  <kargl@gcc.gnu.org>
9         * check.c (gfc_check_kill_sub):  Remove check for INTEGER(4) or (8).
10         * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill.
11         (add_subroutines): Remove reference to gfc_resolve_kill_sub.
12         * intrinsic.texi: Update documentation.
13         * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove.
14         * trans-decl.c (gfc_build_intrinsic_function_decls):  Add
15         gfor_fndecl_kill and gfor_fndecl_kill_sub
16         * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new
17         functions.
18         (gfc_conv_intrinsic_function): Use conv_intrinsic_kill.
19         (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub.
20         * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub.
22 2018-03-11  Paul Thomas  <pault@gcc.gnu.org>
24         PR fortran/84546
25         * trans-array.c (structure_alloc_comps): Make sure that the
26         vptr is copied and that the unlimited polymorphic _len is used
27         to compute the size to be allocated.
28         * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the
29         unlimited polymorphic _len for the offset to the element.
30         (gfc_copy_class_to_class): Set the new 'unlimited' argument.
31         * trans.h : Add the boolean 'unlimited' to the prototype.
33 2018-03-11  Steven G. Kargl  <kargl@gcc.gnu.org>
35         PR fortran/83939
36         * resolve.c (resolve_fl_procedure): Enforce F2018:C15100.
38 2018-03-11  Steven G. Kargl  <kargls@gcc.gnu.org>
40         * check.c (gfc_check_kill):  Check pid and sig are scalar.
41         (gfc_check_kill_sub): Restrict kind to 4 and 8.
42         * intrinsic.c (add_function): Sort keyword list.  Add pid and sig
43         keywords for KILL.  Remove redundant *back="back" in favor of the
44         original *bck="back".
45         (add_subroutines): Sort keyword list.  Add pid and sig keywords
46         for KILL.
47         * intrinsic.texi: Fix documentation to consistently use pid and sig.
48         * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8.  Choose the
49         correct function.
50         (gfc_resolve_rename_sub): Add comment.
52 2018-03-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
54         PR fortran/66128
55         * simplify.c (simplify_transformation): Return default result for
56         empty array argument.
57         (gfc_simplify_all): Remove special-case handling for zerosize.
58         (gfc_simplify_any): Likewise.
59         (gfc_simplify_count): Likewise.
60         (gfc_simplify_iall): Likewise.
61         (gfc_simplify_iany): Likewise.
62         (gfc_simplify_iparity): Likewise.
63         (gfc_simplify_minval): Likewise.
64         (gfc_simplify_maxval): Likewise.
65         (gfc_simplify_norm2): Likewise.
66         (gfc_simplify_product): Likewise.
67         (gfc_simplify_sum): Likewise.
69 2018-03-10  Steven G. Kargl  <kargl@gcc.gnu.org>
71         PR fortran/84734
72         * arith.c (check_result, eval_intrinsic):  If result overflows, pass
73         the expression up the chain instead of a NULL pointer.
75 2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>
77         PR fortran/64124
78         PR fortran/70409
79         * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
81 2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
83         PR fortran/84697
84         PR fortran/66128
85         * expr.c (simplify_parameter_variable): If p is a size zero array
86         and not an ARRAY_EXPR insert an empty array constructor and
87         return.
88         * gfortran.h: Add prototype for gfc_is_size_zero_array.
89         * simplify.c (is_size_zero_array): Make non-static and rename into
90         (gfc_is_size_zero_array):  Check for parameter arrays of zero
91         size by comparing shape and absence of constructor.
92         (gfc_simplify_all): Use gfc_is_size_zero_array instead of
93         is_size_zero_array.
94         (gfc_simplify_count): Likewise.
95         (gfc_simplify_iall): Likewise.
96         (gfc_simplify_iany): Likewise.
97         (gfc_simplify_iparity): Likewise.
98         (gfc_simplify_minval): Likewise.
99         (gfc_simplify_maxval): Likewise.
100         (gfc_simplify_product): Likewise.
101         (gfc_simplify_sum): Likewise.
103 2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>
105         PR fortran/56667
106         * primary.c (match_sym_complex_part): Give the matcher for an implied
107         do-loop a chance to run.
109 2018-03-03  Harald Anlauf  <anlauf@gmx.de>
111         PR fortran/71085
112         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
113         dereference NULL pointer.
115 2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
117         PR fortran/66128
118         * simplify.c (is_size_zero_array): New function to check for size
119         zero array.
120         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
121          gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
122          gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
123          gfc_simplify_product, gfc_simplify_sum): Use it, and implement
124         requirements from F2018.
126 2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
128         PR fortran/51434
129         * simplify.c (gfc_simplify_transfer): Resolve mold.
131 2018-03-03  Paul Thomas  <pault@gcc.gnu.org>
133         PR fortran/80965
134         * resolve.c (build_loc_call): Change symtree name from 'loc' to
135         '_loc'.
137 2018-03-01  Paul Thomas  <pault@gcc.gnu.org>
139         PR fortran/84219
140         * target-memory.c (gfc_interpret_derived): Assert that BT_VOID
141         components are caf tokens.
142         (gfc_target_interpret_expr): Treat BT_VOID expressions as
143         integers.
145 2018-03-01  Paul Thomas  <pault@gcc.gnu.org>
147         PR fortran/84538
148         * class.c (class_array_ref_detected): Remove the condition that
149         there be no reference after the array reference.
150         (find_intrinsic_vtab): Remove excess whitespace.
151         * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
152         as 'base and call build_class_array_ref earlier.
154 2018-02-28  Paul Thomas  <pault@gcc.gnu.org>
156         PR fortran/83901
157         * trans-stmt.c (trans_associate_var): Make sure that the se
158         expression is a pointer type before converting it to the symbol
159         backend_decl type.
161 2018-02-25  Steven G. Kargl  <kargl@gcc.gnu.org>
163         PR fortran/83633
164         * decl.c (variable_decl): Check that an explicit-shape-array with
165         nonconstant bounds is allowed.
167 2018-02-25  Paul Thomas  <pault@gcc.gnu.org>
169         PR fortran/84523
170         * trans-intrinsic.c (gfc_conv_allocated): If the argument se
171         has a pre block, add it to the expression pre block.
173 2018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
175         PR fortran/78238
176         * gfortran.h (gfc_integer_4_kind): Define.
177         * resolve.c (resolve_select_type): Make sure that the
178         kind of c->high is gfc_integer_4_kind.
180 2018-02-24  Steven G. Kargl <kargl@gcc.gnu.org>
182         PR fortran/30792
183         * decl.c (gfc_match_data): Check for invalid substring in
184         data-implied-do
186 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
188         * intrinsic.texi: Arguments to MATMUL cannot both be rank one.
190 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
192         PR fortran/84511
193         * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement.
195 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
197         PR fortran/84346
198         * interface.c (compare_actual_formal): Issue error if keyword is
199         used in a statement function.
201 2018-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
203         PR fortran/84506
204         * trans-io.c (set_parameter_value_inquire): Adjust range check of
205         negative unit values for kind=8 units to the kind=4 negative limit.
207 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
209         PR fortran/83149
210         * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before
211         accessing its components.
213 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
215         PR fortran/83149
216         * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name
217         before accessing its components.
219 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
221         PR fortran/83148
222         * trans-const.c : Clean up some whitespace issues.
223         * trans-expr.c (gfc_conv_initializer): If an iso_c_binding
224         derived type has a kind value of zero, set it to the default
225         integer kind.
227 2018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>
229         PR fortran/84519
230         * trans-decl.c (gfc_build_builtin_function_decls): Add bool
231         argument to stop and error stop decls.
232         * trans-stmt.c (gfc_trans_stop): Add false value to argument
233         lists.
235 2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
237         PR 78534
238         PR 84509
239         * trans-decl.c (gfc_build_builtin_function_decls): Pass
240         gfc_int8_type node to pause_numeric, size_type_node to
241         pause_string.
242         * trans-stmt.c (gfc_trans_pause): Likewise.
244 2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
246         * gfortran.texi: Update Coarray API description.
247         * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
248         character lengths, int for exit codes.
249         (generate_coarray_sym_init): Use size_t for character length.
250         * trans-intrinsic.c (conv_co_collective): Likewise.
251         * trans-stmt.c (gfc_trans_lock_unlock): Likewise.
252         (gfc_trans_event_post_wait): Likewise.
253         (gfc_trans_sync): Likewise.
254         (gfc_trans_stop): Use size_t for character lengths, int for exit
255         codes.
257 2018-02-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
259         PR fortran/48890
260         PR fortran/83823
261         * primary.c (gfc_convert_to_structure_constructor):
262         For a constant string constructor, make sure the length
263         is correct.
265 2018-02-19  Paul Thomas  <pault@gcc.gnu.org>
267         PR fortran/83344
268         PR fortran/83975
269         * resolve.c (resolve_assoc_var): Rearrange the logic for the
270         determination of the character length of associate names. If
271         the associate name is missing a length expression or the length
272         expression is not a constant and the target is not a variable,
273         make the associate name allocatable and deferred length.
274         * trans-decl.c (gfc_get_symbol_decl): Null the character length
275         backend_decl for deferred length associate names that are not
276         variables. Set 'length' to gfc_index_zero_node for character
277         associate names, whose character length is a PARM_DECL.
279 2018-02-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
281         PR fortran/35339
282         * frontend-passes.c (traverse_io_block): Remove workaround for
283         PR 80945.
285 2018-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>
287         * gfortran.texi: Document additional src/dst_type.  Fix some typos.
288         * trans-decl.c (gfc_build_builtin_function_decls): Declare the new
289         argument of _caf_*_by_ref () with * e { get, send, sendget }.
290         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the
291         data referenced when generating a call to caf_get_by_ref ().
292         (conv_caf_send): Same but for caf_send_by_ref () and
293         caf_sendget_by_ref ().
295 2018-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
297         PR fortran/84389
298         * io.c (check_format): Allow FMT_COLON.
300 2018-02-18  Paul Thomas  <pault@gcc.gnu.org>
302         PR fortran/80945
303         * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from
304         the typenode in the case of deferred length characters.
306 2018-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
308         PR fortran/84270
309         * frontend-passes (scalarized_expr):  If the expression
310         is an assumed size array, leave in the last reference
311         and pass AR_SECTION instead of AR_FULL to gfc_resolve
312         in order to avoid an error.
314 2018-02-17  Paul Thomas  <pault@gcc.gnu.org>
316         PR fortran/84115
317         * resolve.c (resolve_assoc_var): If a non-constant target expr.
318         has no string length expression, make the associate variable
319         into a deferred length, allocatable symbol.
320         * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to
321         the symbol.
322         * trans-stmt.c (trans_associate_var): Null and free scalar
323         associate names that are allocatable. After assignment, remove
324         the allocatable attribute to prevent reallocation.
326 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
328         PR fortran/84418
329         * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF
330         kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step.
332 2018-02-16  Dominique d'Humieres  <dominiq@gcc.gnu.org>
334         PR fortran/84354
335         * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs.
337 2018-02-15  Janus Weil  <janus@gcc.gnu.org>
339         PR fortran/84409
340         * interface.c (check_dtio_arg_TKR_intent): Add a check for character
341         length.
343 2018-02-14  Janus Weil  <janus@gcc.gnu.org>
345         PR fortran/84385
346         * match.c (gfc_match_select_type): Fix check for selector in
347         SELECT TYPE statement.
349 2018-02-13  Janus Weil  <janus@gcc.gnu.org>
351         PR fortran/84313
352         * symbol.c (check_conflict): Reject procedure pointers in common blocks.
354 2018-02-13  Alastair McKinstry  <alastair.mckinstry@sceal.ie>
355             Janne Blomqvist  <jb@gcc.gnu.org>
357         * module.c (dump_module): Use lbasename to ensure that module
358         files are reproducible.
360 2018-02-12  Janus Weil  <janus@gcc.gnu.org>
362         PR fortran/84273
363         * resolve.c (resolve_component): Fix checks of passed argument in
364         procedure-pointer components.
366 2018-02-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
368         PR fortran/35299
369         * resolve.c (resolve_formal_arglist): Update error message.
371 2018-02-11  Andre Vehreschild  <vehre@gcc.gnu.org>
373         * gfortran.texi: Fix typos in documentation of caf_register ().
374         * trans-array.c (structure_alloc_comps): Only register a component of
375         a derived typed corray, not of an ultimate component coarray.
377 2018-02-11  Steven G. Kargl  <kargl@gcc.gnu.org>
379         PR fortran/54223
380         PR fortran/84276
381         * interface.c (compare_actual_formal): Add in_statement_function
382         bool parameter.  Skip check of INTENT attribute for statement
383         functions.  Arguments to a statement function cannot be optional,
384         issue error for missing argument.
385         (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use
386          in_statement_function.
388 2018-02-11  Paul Thomas  <pault@gcc.gnu.org>
390         PR fortran/84074
391         * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset
392         flag. If the is a vector subscript or the expression is not a
393         variable, make the descriptor one-based.
395 2018-02-10  Paul Thomas  <pault@gcc.gnu.org>
397         PR fortran/84141
398         PR fortran/84155
399         * trans-array.c (gfc_array_init_size): Revert the change made
400         in revision 257356 setting the dtype.
401         * trans-types.c (gfc_get_dtype): Do not use the cached dtype.
402         Call gfc_get_dtype_rank_type every time.
404         PR fortran/56691
405         * trans-array.c (gfc_conv_expr_descriptor): If the source array
406         is a descriptor type, use its offset, removing the condition
407         that is be a class expression.
409 2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
411         PR fortran/82994
412         * match.c (gfc_match_deallocate): Check for NULL pointer.
414 2018-02-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
416         PR fortran/68560
417         * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function.
418         (gfc_conv_intrinsic_function): Call it.
420 2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
422         PR fortran/82049
423         * match.c (gfc_match_type_spec): If the charlen is non-NULL, then
424         try to resolve it.  While here return early if possible.
426 2018-02-04  Paul Thomas  <pault@gcc.gnu.org>
428         PR fortran/84115
429         * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of
430         'length' if the symbol charlen backend_decl is an indirect ref.
432 2018-02-03  Paul Thomas  <pault@gcc.gnu.org>
434         PR fortran/84141
435         PR fortran/84155
436         * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype
437         use gfc_get_dtype_rank_type.
439 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
441         PR 83975
442         PR 83344
443         * resolve.c (resolve_assoc_var): Generate an error if
444         target length unknown.
446 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
448         PR fortran/83705
449         * simplify.c (gfc_simplify_repeat): Increase limit for deferring
450         to runtime, print a warning message.
452 2018-01-31  Jakub Jelinek  <jakub@redhat.com>
454         PR fortran/84116
455         * openmp.c (gfc_match_omp_clauses): If all the linear
456         gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist
457         nor set *head = NULL.  Formatting fixes.
459 2018-01-31  Paul Thomas  <pault@gcc.gnu.org>
461         PR fortran/84088
462         * trans-expr.c (gfc_conv_procedure_call): If the parm expr is
463         an address expression passed to an assumed rank dummy, convert
464         to an indirect reference.
466 2018-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
468         * dump-parse-tree.c (write_proc): Use sym_name (which may
469         be sym->binding_label) instead of sym->name.
471 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
473         * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead
474         of int for slen.
476 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
478         PR fortran/78534
479         * trans-expr.c (fill_with_spaces): Use memset instead of
480         generating loop.
481         (gfc_trans_string_copy): Improve opportunity to use builtins with
482         constant lengths.
484 2018-01-30  Jakub Jelinek  <jakub@redhat.com>
486         PR debug/84131
487         * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off
488         to DATA_FIELD's offset rather than OFFSET_FIELD's offset.
490 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
492         PR fortran/84134
493         * array.c (gfc_ref_dimen_size): Whitespace fixes.  If stride is
494         zero, return false.
496 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
498         PR fortran/84133
499         * frontend-passes (matmul_to_var_expr): Return early if
500         in association list.
501         (inline_matmul_assign): Likewise.
503 2017-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
505         PR fortran/84073
506         * resolve.c (resolve_component): Ensure BIND(C) character
507         components have length one.
508         (resolve_symbol): Likewise for variables.
510 2018-01-27  Jakub Jelinek  <jakub@redhat.com>
512         PR fortran/84065
513         * decl.c (add_init_expr_to_sym): Ignore initializers for too large
514         lengths.
516 2018-01-26  Damian Rouson  <damian@sourceryinstitute.org>
517             Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
518             Soren Rasmussen  <s.c.rasmussen@gmail.com>
520         Partial support for Fortran 2018 teams features.
522         * array.c (gfc_match_array_ref): add team attribute in coarray
523         transfers.
524         * check.c (gfc_check_get_team, gfc_check_team_number): add new
525         functions for get_team and team_number.
526         * dump-parse-tree.c (show_code_node): add new statements: form team,
527         change team, end team, and sync team.
528         * expr.c (gfc_find_team_co): add new function.
529         * gfortran.h: add new statements.
530         * intrinsic.c (add_functions): add get_team and team_number functions.
531         * intrinsic.h: add get_team and team_number prototypes for check,
532         simplify, and resolve.
533         * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new
534         functions.
535         * iso-fortran-env.def: add the team_type derived type.
536         * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number)
537         (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team):
538         add change team, end team, form team, sync team match and functions.
539         * match.h: add new prototypes for change team, end team, form team,
540         and sync team.
541         * parse.c (decode_statement): add cases for change team, end team,
542         form team, and sync team.
543         * resolve.c: add cases for exec form team, change team, end team, and
544         sync team.
545         * simplify.c (gfc_simplify_get_team): add new function for get team.
546         * st.c (gfc_free_statement): add cases exec for change team, end team,
547         form team, sync team.
548         * trans-decl.c (gfor_fndecl_caf_form_team)
549         (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team)
550         (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team)
551         (gfor_fndecl_caf_team_number): add functions and definitions.
552         * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add
553         new function and team_type argument support.
554         * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team)
555         (gfc_trans_end_team, gfc_trans_sync_team): add new functions.
556         * trans-stmt.h: add new prototypes.
557         * trans-types.c (gfc_get_derived_type): check condition for team_type.
558         * trans.c (trans_code): new exec cases for form team, change team, end
559         team, and sync team.
560         * trans.h: add new prototypes.
562 2018-01-26  Steven G. Kargl  <kargl@gcc.gnu.org>
564         PR fortran/83998
565         * simplify.c (compute_dot_product):  Initialize result to INTEGER(1) 0
566         or .false.  The summation does the correct type conversion.
567         (gfc_simplify_dot_product): Special case zero-sized arrays.
569 2018-25-01  Paul Thomas  <pault@gcc.gnu.org>
571         PR fortran/37577
572         * array.c (gfc_match_array_ref): If standard earlier than F2008
573         it is an error if the reference dimension is greater than 7.
574         libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the
575         dtype masks and shifts accordingly.
576         * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype
577         type node to check the field.
578         (gfc_conv_descriptor_dtype): Access the rank field of dtype.
579         (duplicate_allocatable_coarray): Access the rank field of the
580         dtype descriptor rather than the dtype itself.
581         * trans-expr.c (get_scalar_to_descriptor_type): Store the type
582         of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE
583         (ie. a character).
584         (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to
585         get_scalar_to_descriptor_type if the actual expression is a
586         constant.
587         (gfc_trans_structure_assign): Assign the rank directly to the
588         dtype rank field.
589         * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result
590         to default integer kind.
591         (gfc_conv_intrinsic_sizeof): Obtain the element size from the
592         'elem_len' field of the dtype.
593         * trans-io.c (gfc_build_io_library_fndecls): Replace
594         gfc_int4_type_node with dtype_type_node where necessary.
595         (transfer_namelist_element): Use gfc_get_dtype_rank_type for
596         scalars.
597         * trans-types.c : Provide 'get_dtype_type_node' to acces the
598         dtype_type_node and, if necessary, build it.
599         The maximum size of an array element is now determined by the
600         maximum value of size_t.
601         Update the description of the array descriptor, including the
602         type def for the dtype_type.
603         (gfc_get_dtype_rank_type): Build a constructor for the dtype.
604         Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS.
605         (gfc_get_array_descriptor_base): Change the type of the dtype
606         field to dtype_type_node.
607         (gfc_get_array_descr_info): Get the offset to the rank field of
608         the dtype.
609         * trans-types.h : Add a prototype for 'get_dtype_type_node ()'.
610         * trans.h : Define the indices of the dtype fields.
612 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
614         PR fortran/83866
615         * decl.c (gfc_match_derived_decl): If eos not matched, recover
616         and emit error about garbage after declaration.
618 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
620         PR fortran/83898
621         * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
622         for characters.
624 2018-01-22  Janne Blomqvist  <jb@gcc.gnu.org>
626         PR 78534
627         PR 83704
628         * arith.c (gfc_arith_concat): Use size_t for string length.
629         (gfc_compare_string): Likewise.
630         (gfc_compare_with_Cstring): Likewise.
631         * array.c (gfc_resolve_character_array_constructor): Use
632         HOST_WIDE_INT, gfc_mpz_get_hwi.
633         * check.c (gfc_check_fe_runtime_error): Use size_t.
634         * data.c (create_character_initializer): Use HOST_WIDE_INT,
635         gfc_extract_hwi.
636         * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t.
637         (add_init_expr_to_sym): Use HOST_WIDE_INT.
638         * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT,
639         gfc_extract_hwi.
640         (gfc_apply_init): Likewise.
641         * match.h (gfc_set_constant_character_len): Update prototype.
642         * primary.c (match_string_constant): Use size_t.
643         * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT,
644         gfc_mpz_get_hwi.
645         * simplify.c (init_result_expr): Likewise.
646         (gfc_simplify_len_trim): Use size_t.
647         * target-memory.c (gfc_encode_character): Use size_t.
648         (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi.
649         (interpret_array): Use size_t.
650         (gfc_interpret_character): Likewise.
651         * target-memory.h (gfc_encode_character): Update prototype.
652         (gfc_interpret_character): Likewise.
653         (gfc_target_interpret_expr): Likewise.
654         * trans-const.c (gfc_build_string_const): Use size_t for length
655         argument.
656         (gfc_build_wide_string_const): Likewise.
657         * trans-const.h (gfc_build_string_const): Likewise.
658         (gfc_build_wide_string_const): Likewise.
660 2018-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
662         PR fortran/83900
663     * simplify.c (gfc_simplify_matmul): Set return type correctly.
665 2018-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
667         PR fortran/83900
668         * simplify.c (gfc_simplify_matmul): Delete bogus assertion.
670 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
672         PR fortran/83864
673         * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
675 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
677         PR fortran/83874
678         * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
680 2018-01-15  Louis Krupp  <louis.krupp@zoho.com>
682         PR fortran/82257
683         * interface.c (compare_rank): Don't try to retrieve CLASS_DATA
684         from symbol marked unlimited polymorphic.
685         * resolve.c (resolve_structure_cons): Likewise.
686         * misc.c (gfc_typename): Don't dereference derived->components
687         if it's NULL.
689 2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
691         PR fortran/54613
692         * gfortran.h (gfc_check_f): Rename f4ml to f5ml.
693         (gfc_logical_4_kind): New macro
694         * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
695         (gfc_simplify_maxloc): Likewise.
696         (gfc_resolve_maxloc): Likewise.
697         (gfc_resolve_minloc): Likewise.
698         * check.c (gfc_check_minloc_maxloc): Add checking for "back"
699         argument; also raise error if it is used (for now). Add it
700         if it isn't present.
701         * intrinsic.c (add_sym_4ml): Rename to
702         (add_sym_5ml), adjust for extra argument.
703         (add_functions): Add "back" constant. Adjust maxloc and minloc
704         for back argument.
705         * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
706         not of gfc_logical_4_kind, convert.
707         (gfc_resolve_minloc): Likewise.
708         * simplify.c (gfc_simplify_minloc): Add back argument.
709         (gfc_simplify_maxloc): Likewise.
710         * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
711         argument to %VAL to ensure passing by value.
712         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
713         also for library calls.
715 2018-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
717         PR fortran/82007
718         * resolve.c (resolve_transfer): Delete code looking for 'DT'
719         format specifiers in format strings. Set formatted to true if a
720         format string or format label is present.
721         * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix
722         whitespace.
724 2018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
726         PR fortran/83744
727         * dump-parse-tree.c (get_c_type_name): Remove extra line.
728         Change for loop to use declaration in for loop. Handle BT_LOGICAL
729         and BT_CHARACTER.
730         (write_decl): Add where argument. Fix indentation. Replace
731         assert with error message. Add typename to warning
732         in comment.
733         (write_type): Adjust locus to call of write_decl.
734         (write_variable): Likewise.
735         (write_proc): Likewise. Replace assert with error message.
737 2018-01-13  Paul Thomas  <pault@gcc.gnu.org>
739         PR fortran/52162
740         * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if
741         the rhs expression is neither an elemental nor a conversion
742         function.
744         PR fortran/83622
745         * trans-array.c (is_pointer_array): Remove unconditional return
746         of false for -fopenmp.
748 2018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
749         <emsr@gcc.gnu.org>
751         PR fortran/83803
752         * dump-parse-tree.c (write_proc): Always emit closing parenthesis
753         for functions.
755 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
757         PR fortran/82367
758         * resolve.c (resolve_allocate_expr): Check for NULL pointer.
760 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
762         PR fortran/83093
763         * resolve.c (resolve_charlen): Check the type of cl->length
764         after resolution.
766 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
768         PR fortran/83740
769         * trans-array.c (gfc_trans_array_ctor_element): Fix formatting.
771 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
773         PR fortran/83740
774         * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the
775         LHS type when assigning.
777 2018-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
779         PR fortran/83742
780         * expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
782 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
784         * match.c (gfc_match_allocate): Check for NULL pointer.
786 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
788         * expr.c (gfc_check_pointer_assign): Fix typo in comment.
790 2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
792         PR fortran/83611
793         * decl.c (gfc_get_pdt_instance): If parameterized arrays have
794         an initializer, convert the kind parameters and add to the
795         component if the instance.
796         * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
797         use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
798         for parameterized arrays. Clean up typos in comments. Convert
799         parameterized array initializers and copy into the array.
800         * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
801         parameterized types.
802         *trans-stmt.c (trans_associate_var): Deallocate associate vars
803         as necessary, when they are PDT function results for example.
805         PR fortran/83731
806         * trans-array.c (structure_alloc_comps): Only compare len parms
807         when they are declared explicitly.
809 2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
811         PR fortran/50892
812         * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
813         lhs type.
815 2018-01-05  Janne Blomqvist  <jb@gcc.gnu.org>
817         PR fortran/78534
818         PR fortran/66310
819         * array.c (got_charlen): Use gfc_charlen_int_kind.
820         * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
821         hardcoded kind.
822         (find_intrinsic_vtab): Likewise.
823         * decl.c (match_char_length): Use gfc_charlen_int_kind.
824         (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind.
825         (gfc_match_implicit): Use gfc_charlen_int_kind.
826         * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t.
827         (show_expr): Use HOST_WIDE_INT_PRINT_DEC.
828         * expr.c (gfc_get_character_expr): Length parameter of type
829         gfc_charlen_t.
830         (gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
831         (gfc_extract_hwi): New function.
832         (simplify_const_ref): Make string_len of type gfc_charlen_t.
833         (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
834         * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind.
835         * gfortran.h (gfc_mpz_get_hwi): New prototype.
836         (gfc_mpz_set_hwi): Likewise.
837         (gfc_charlen_t): New typedef.
838         (gfc_expr): Use gfc_charlen_t for character lengths.
839         (gfc_size_kind): New extern variable.
840         (gfc_extract_hwi): New prototype.
841         (gfc_get_character_expr): Use gfc_charlen_t for character length.
842         (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
843         * gfortran.texi: Update description of hidden string length argument.
844         * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind.
845         (gfc_resolve_char_achar): Likewise.
846         (gfc_resolve_repeat): Pass string length directly without
847         temporary, use gfc_charlen_int_kind.
848         (gfc_resolve_transfer): Use gfc_charlen_int_kind.
849         * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
850         * misc.c (gfc_mpz_get_hwi): New function.
851         (gfc_mpz_set_hwi): New function.
852         * module.c (atom_int): Change type from int to HOST_WIDE_INT.
853         (parse_integer): Don't complain about large integers.
854         (write_atom): Use HOST_WIDE_INT for integers.
855         (mio_integer): Handle integer type mismatch.
856         (mio_hwi): New function.
857         (mio_intrinsic_op): Use HOST_WIDE_INT.
858         (mio_array_ref): Likewise.
859         (mio_expr): Likewise.
860         * primary.c (match_substring): Use gfc_charlen_int_kind.
861         * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind.
862         (resolve_character_operator): Likewise.
863         (resolve_assoc_var): Likewise.
864         (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf.
865         (resolve_charlen): Use mpz_sgn to determine sign.
866         * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
867         instead of long.
868         * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind.
869         * target-memory.c (size_character): Length argument of type
870         gfc_charlen_t.
871         (gfc_encode_character): Likewise.
872         (gfc_interpret_character): Use gfc_charlen_t.
873         * target-memory.h (gfc_encode_character): Modify prototype.
874         * trans-array.c (gfc_trans_array_ctor_element): Use existing type.
875         (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type.
876         (trans_array_constructor): Use existing type.
877         (get_array_charlen): Likewise.
878         * trans-const.c (gfc_conv_mpz_to_tree_type): New function.
879         * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
880         * trans-decl.c (gfc_trans_deferred_vars): Use existing type.
881         (add_argument_checking): Likewise.
882         * trans-expr.c (gfc_class_len_or_zero_get): Build const of type
883         gfc_charlen_type_node.
884         (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
885         4, fold_convert to correct type.
886         (gfc_conv_class_to_class): Build const of type size_type_node for
887         size.
888         (gfc_copy_class_to_class): Likewise.
889         (gfc_conv_string_length): Use same type in expression.
890         (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
891         (gfc_conv_string_tmp): Make sure len is of the right type.
892         (gfc_conv_concat_op): Use same type in expression.
893         (gfc_conv_procedure_call): Likewise.
894         (fill_with_spaces): Comment out memset() block due to spurious
895         -Wstringop-overflow warnings.
896         (gfc_trans_string_copy): Use gfc_charlen_type_node.
897         (alloc_scalar_allocatable_for_subcomponent_assignment):
898         fold_convert to right type.
899         (gfc_trans_subcomponent_assign): Likewise.
900         (trans_class_vptr_len_assignment): Build const of correct type.
901         (gfc_trans_pointer_assignment): Likewise.
902         (alloc_scalar_allocatable_for_assignment): fold_convert to right
903         type in expr.
904         (trans_class_assignment): Build const of correct type.
905         * trans-intrinsic.c (gfc_conv_associated): Likewise.
906         (gfc_conv_intrinsic_repeat): Do calculation in sizetype.
907         * trans-io.c (gfc_build_io_library_fndecls): Use
908         gfc_charlen_type_node for character lengths.
909         (set_string): Convert to right type in assignment.
910         * trans-stmt.c (gfc_trans_label_assign): Build const of
911         gfc_charlen_type_node.
912         (trans_associate_var): Likewise.
913         (gfc_trans_character_select): Likewise.
914         (gfc_trans_allocate): Likewise, don't typecast strlen result.
915         (gfc_trans_deallocate): Don't typecast strlen result.
916         * trans-types.c (gfc_size_kind): New variable.
917         (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
918         from size_type_node.
919         * trans-types.h: Fix comment.
921 2018-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
923         PR fortran/83683
924         PR fortran/45689
925         * check.c (gfc_check_eoshift): Check for string length and
926         for conformance of boundary.
927         * intrinsic.c (add_functions): Add gfc_simplify_eoshift.
928         * intrinsic.h: Add prototype for gfc_simplify_eoshift.
929         * simplify.c (gfc_simplify_eoshift): New function.
931 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
932             Alan Hayward  <alan.hayward@arm.com>
933             David Sherwood  <david.sherwood@arm.com>
935         * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
937 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
938             Alan Hayward  <alan.hayward@arm.com>
939             David Sherwood  <david.sherwood@arm.com>
941         * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
943 2018-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
945         PR fortran/83664
946         * check.c (gfc_check_eoshift): Error for missing boundary if array
947         is not one of the standard types.
949 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
951         Update copyright years.
953         * gfortranspec.c (lang_specific_driver): Update copyright notice
954         dates.
955         * gfc-internals.texi: Bump @copying's copyright year.
956         * gfortran.texi: Ditto.
957         * intrinsic.texi: Ditto.
958         * invoke.texi: Ditto.
960 2017-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
962         PR fortran/45689
963         * intrinsic.c (add_function): Add gfc_simplify_maxloc and
964         gfc_simplify_minloc to maxloc and minloc, respectively.
965         * intrinsic.h: Add prototypes for gfc_simplify_minloc
966         and gfc_simplify_maxloc.
967         * simplify.c (min_max_chose): Adjust prototype.  Modify function
968         to have a return value which indicates if the extremum was found.
969         (is_constant_array_expr): Fix typo in comment.
970         (simplify_minmaxloc_to_scalar): New function.
971         (simplify_minmaxloc_nodim): New function.
972         (new_array): New function.
973         (simplify_minmaxloc_to_array): New function.
974         (gfc_simplify_minmaxloc): New function.
975         (simplify_minloc): New function.
976         (simplify_maxloc): New function.
978 2018-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
980         PR fortran/45689
981         PR fortran/83650
982         * simplify.c (gfc_simplify_cshift): Re-implement to allow full
983         range of arguments.
985 2018-01-01  Paul Thomas  <pault@gcc.gnu.org>
987         PR fortran/83076
988         * resolve.c (resolve_fl_derived0): Add caf_token fields for
989         allocatable and pointer scalars, when -fcoarray selected.
990         * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token
991         field as well as the backend_decl.
992         (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module
993         derived types that are not vtypes. Components with caf_token
994         attribute are pvoid types. For a component requiring it, find
995         the caf_token field and have the component token field point to
996         its backend_decl.
998         PR fortran/83319
999         *trans-types.c (gfc_get_array_descriptor_base): Add the token
1000         field to the descriptor even when codimen not set.
1002 Copyright (C) 2018 Free Software Foundation, Inc.
1004 Copying and distribution of this file, with or without modification,
1005 are permitted in any medium without royalty provided the copyright
1006 notice and this notice are preserved.