2018-10-08 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blobc4c14f866a5037d92768d23651bc0f1cf345eb98
1 2018-10-08  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/86372
4         * trans-stmt.c (trans_associate_var): Character associate names
5         with variable string length do not have to be deferred length
6         for the string length to be set, if variable.
8 2018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
10         PR fortran/86111
11         * gfortran.h (enum arith): Add ARITH_WRONGCONCAT.
12         * arith.h (gfc_arith_error): Issue error for ARITH_WRONGCONCAT.
13         (gfc_arith_concat):  If the types of op1 and op2 are not
14         character of if their kinds do not match, issue ARITH_WRONGCONCAT.
16 2018-10-06  Paul Thomas  <pault@gcc.gnu.org>
18         PR fortran/83999
19         * resolve.c (resolve_fl_procedure): Include class functions in
20         the test that elemental function results be scalar.
22 2018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
24         PR fortran/84640
25         * simplify.c (gfc_simplify_cshift): Extend size of hs_ex and ss_ex
26         by one. Set extents one past the array boundaries to zero to avoid
27         warning with instrumented compiler.
28         (gfc_simplify_eoshift): Likewise, only for ss_ex.
30 2018-10-05  Paul Thomas  <pault@gcc.gnu.org>
32         PR fortran/87487
33         * trans-decl.c (gfc_get_symbol_decl): Make sure that deferred
34         character length pointer initializer has the right type to fix
35         problem with deferred_character_24.f90 on big endian.
37 2018-10-03  Jeff Law  <law@redhat.comg>
39         * trans-types.c (get_typenode_from_name): Moved into gcc/tree.c.
41 2018-10-01  Paul Thomas  <pault@gcc.gnu.org>
43         PR fortran/65677
44         * trans-expr.c (gfc_trans_assignment_1): Set the 'identical'
45         flag in the call to gfc_check_dependency.
47 2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
49         PR fortran/87359
50         * trans-array.c (gfc_is_reallocatable_lhs): Correct the problem
51         introduced by r264358, which prevented components of associate
52         names from being reallocated on assignment.
54 2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
56         PR fortran/70752
57         PR fortran/72709
58         * trans-array.c (gfc_conv_scalarized_array_ref): If this is a
59         deferred type and the info->descriptor is present, use the
60         info->descriptor
61         (gfc_conv_array_ref): Is the se expr is a descriptor type, pass
62         it as 'decl' rather than the symbol backend_decl.
63         (gfc_array_allocate): If the se string_length is a component
64         reference, fix it and use it for the expression string length
65         if the latter is not a variable type. If it is a variable do
66         an assignment. Make use of component ref string lengths to set
67         the descriptor 'span'.
68         (gfc_conv_expr_descriptor): For pointer assignment, do not set
69         the span field if gfc_get_array_span returns zero.
70         * trans.c (get_array_span): If the upper bound a character type
71         is zero, use the descriptor span if available.
73 2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
75         PR fortran/70149
76         * trans-decl.c (gfc_get_symbol_decl): A deferred character
77         length pointer that is initialized needs the string length to
78         be initialized as well.
80 2018-09-29  Paul Thomas  <pault@gcc.gnu.org>
82         PR fortran/65677
83         * trans-expr.c (gfc_trans_assignment_1): If there is dependency
84         fix the rse stringlength.
86 2018-09-25  Martin Liska  <mliska@suse.cz>
88         PR fortran/87394
89         * decl.c (add_hidden_procptr_result): Simplify condition
90         as we are in branch witch 'case1 || case2'.
92 2018-09-25  Martin Liska  <mliska@suse.cz>
94         * trans.c (remove_suffix): Remove
95         unused function.
97 2018-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
99         PR fortran/87397
100         * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT)
101         for variables in an associate statement.
103 2018-09-24  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
104             Cesar Philippidis  <cesar@codesourcery.com>
106         * openmp.c (resolve_oacc_loop_blocks):
108 2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
110         PR fortran/87397
111         * gfc_conv_procedure_call: Do not add clobber on INTENT(OUT)
112         for variables having the dimension attribute.
114 2018-09-23  Janne Blomqvist  <jb@gcc.gnu.org>
116         * trans-expr.c (gfc_caf_get_image_index): Do array index
117         calculations in gfc_array_index_type.
118         * trans-intrinsic.c (conv_intrinsic_event_query): Likewise.
119         * trans-stmt.c (gfc_trans_lock_unlock): Likewise.
120         (gfc_trans_event_post_wait): Likewise.
122 2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
124         PR fortran/87395
125         * gfc_conv_procedure_call: Reformat comments slightly. Do not add
126         clobber on INTENT(OUT) for saved variables.
128 2018-09-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
130         PR fortran/41453
131         * trans.h (gfc_conv_expr_reference): Add optional argument
132         add_clobber to prototype.
133         (gfc_conv_procedure_call):  Set add_clobber argument to
134         gfc_conv_procedure_reference to true for scalar, INTENT(OUT),
135         non-pointer, non-allocatable, non-dummy variables whose type
136         is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if
137         the procedure is not elemental.
138         * trans-expr.c (gfc_conv_procedure_reference): Add clobber
139         statement before call if add_clobber is set.
141 2018-09-22  Paul Thomas  <pault@gcc.gnu.org>
143         PR fortran/85603
144         * trans-array.c (gfc_alloc_allocatable_for_assignment): Test
145         the charlen backend_decl before using the VAR_P macro.
147 2018-09-21  Paul Thomas  <pault@gcc.gnu.org>
149         PR fortran/77325
150         * trans-array.c (gfc_alloc_allocatable_for_assignment): If the
151         rhs has a charlen expression, convert that and use it.
152         * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
153         assignment of deferred character array vars to a realocatable
154         lhs should not be added to the exterior block since vector
155         indices, for example, generate temporaries indexed within the
156         loop.
158 2018-09-21  Paul Thomas  <pault@gcc.gnu.org>
160         PR fortran/87359
161         * trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc
162         components if must_finalize is set for expr3.
164 2018-09-21  Andrew Stubbs  <ams@codesourcery.com>
165             Kwok Cheung Yeung  <kcy@codesourcery.com>
167         * trans-expr.c (gfc_trans_structure_assign): Ensure that the first
168         argument of a call to _gfortran_caf_register is of size_type_node.
169         * trans-intrinsic.c (conv_intrinsic_event_query): Convert computed
170         index to a size_type_node type.
171         * trans-stmt.c (gfc_trans_event_post_wait): Likewise.
173 2018-09-20  Allan Sandfeld Jensen  <allan.jensen@qt.io>
175         * gfortranspec.c (lang_specific_driver): Handle -r like -nostdlib.
177 2018-09-20  Janus Weil  <janus@gcc.gnu.org>
179         * gfortran.h (gfc_str_startswith): New macro.
180         * decl.c (variable_decl, gfc_match_end): Use it.
181         * iresolve.c (is_trig_resolved): Ditto.
182         * module.c (load_omp_udrs, read_module): Ditto.
183         * options.c (gfc_handle_runtime_check_option): Ditto.
184         * primary.c (match_arg_list_function): Ditto.
185         * trans-decl.c (gfc_get_symbol_decl): Ditto.
186         * trans-expr.c (gfc_conv_procedure_call): Ditto.
187         * interface.c (dtio_op): Replace strncmp by strcmp.
188         * resolve.c (resolve_actual_arglist, resolve_function): Ditto.
189         * trans-expr.c (conv_arglist_function): Ditto.
190         * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Replace macro
191         STARTS_WITH by gfc_str_startswith.
193 2018-09-20  Cesar Philippidis  <cesar@codesourcery.com>
195         * dump-parse-tree.c (show_omp_clauses): Add missing omp list_types
196         and reorder the switch cases to match the enum in gfortran.h.
198 2018-09-19  Paul Thomas  <pault@gcc.gnu.org>
200         PR fortran/84109
201         * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
202         assignment of deferred character intrinsic elemental function
203         results to a realocatable lhs must not be added to the exterior
204         block if they are array valued but must go to the loop body.
206 2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
208         PR fortran/29550
209         * gfortran.h (gfc_expr): Add external_blas flag.
210         * frontend-passes.c (matrix_case): Add case A2TB2T.
211         (optimize_namespace): Handle flag_external_blas by
212         calling call_external_blas.
213         (get_array_inq_function): Add argument okind. If
214         it is nonzero, use it as the kind of argument
215         to be used.
216         (inline_limit_check): Remove m_case argument, add
217         limit argument instead.  Remove assert about m_case.
218         Set the limit for inlining from the limit argument.
219         (matmul_lhs_realloc): Handle case A2TB2T.
220         (inline_matmul_assign): Handle inline limit for other cases with
221         two rank-two matrices.  Remove no-op calls to inline_limit_check.
222         (call_external_blas): New function.
223         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add
224         argument to external BLAS if external_blas is already set.
226 2018-09-18  Paul Thomas  <pault@gcc.gnu.org>
228         PR fortran/87239
229         * trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
230         assignment of deferred character elemental function results to
231         a realocatable lhs must not be added to the exterior block but
232         must go to the loop body.
234 2018-09-18  Paul Thomas  <pault@gcc.gnu.org>
236         PR fortran/87336
237         * trans-array.c (gfc_get_array_span): Try to get the element
238         length of incomplete types. Return NULL_TREE otherwise.
239         (gfc_conv_expr_descriptor): Only set the 'span' field if the
240         above does not return NULL_TREE. Set 'span' field if possible
241         for all new descriptors.
243 2018-09-17  Paul Thomas  <pault@gcc.gnu.org>
245         PR fortran/64120
246         * trans-decl.c (gfc_get_symbol_decl): Flag allocatable, scalar
247         characters with a variable length expression for deferred init.
248         (gfc_trans_deferred_vars): Perform the assignment for these
249         symbols by calling gfc_conv_string_length.
251 2018-09-17  Paul Thomas  <pault@gcc.gnu.org>
253         PR fortran/85954
254         * resolve.c (resolve_assoc_var): If the target expression is a
255         deferred charlen dummy and the associate name shares the
256         charlen, generate a new one. Make sure that new charlens are in
257         the namespace list so that they get cleaned up.
258         * trans-array.c (gfc_is_reallocatable_lhs): Associate names are
259         not reallocatable.
260         * trans-decl.c (gfc_get_symbol_decl): Put deferred character
261         length dummy and result arrays on the deferred initialization
262         list so that the variable length arrays can be correctly dealt
263         with.
264         * trans-expr.c (gfc_conv_string_length): Return if 'expr' is
265         NULL rather than ICEing..
267 2018-09-16  Janus Weil  <janus@gcc.gnu.org>
269         PR fortran/86484
270         PR fortran/84543
271         * match.c (gfc_match_assignment): For a polymorphic assignment,
272         make sure that the vtab for the rhs type is generated.
274 2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
276         PR fortran/37802
277         * frontend-passes.c (B_ERROR): New macro for matmul bounds
278         checking error messages.
279         (C_ERROR): Likewise.
280         (inline_matmul_assign): Reorganize bounds checking, use B_ERROR
281         and C_ERROR macros.
283 2018-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
285         * trans-array.c (gfc_conv_array_initializer): Remove excess precision
286         from overlength string initializers.
288 2018-09-12  Paul Thomas  <pault@gcc.gnu.org>
290         PR fortran/87284
291         * trans-expr.c (gfc_trans_class_init_assign): Access to
292         to array elements of the dynamic type requires that the array
293         reference be added to the class expression and not the _data
294         component, unlike scalar expressions.
296 2018-09-11  Janus Weil  <janus@gcc.gnu.org>
298         PR fortran/87172
299         * resolve.c (resolve_fl_derived): If a type has the 'use_assoc'
300         attribute, then it was declared in another module, so there should be
301         no error that it has not been declared.
303 2018-09-11  Paul Thomas  <pault@gcc.gnu.org>
305         PR fortran/87277
306         * expr.c (is_subref_array): Add the check of dimensionality for
307         class, dummy, pointer arrays.
309 2018-09-11  Janus Weil  <janus@gcc.gnu.org>
311         PR fortran/86830
312         * expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls
313         with non-polymorphic objects.
315 2018-09-10  Janus Weil  <janus@gcc.gnu.org>
317         PR fortran/85395
318         * decl.c (match_binding_attributes): Use correct default accessibility
319         for procedure pointer components.
321 2018-09-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
323         * simplify.c (gfc_simplify_modulo): Re-arrange code to test whether
324         'P' is zero and issue an error if it is.
326 2018-08-31  Paul Thomas  <pault@gcc.gnu.org>
328         PR fortran/86328
329         PR fortran/86760
330         * trans-array.c (gfc_conv_scalarized_array_ref): Do not fix
331         info->descriptor but pass it directly to gfc_build_array_ref.
332         (gfc_conv_array_ref): Likewise for se->expr.
333         * trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF
334         obtain the span field directly from it.
336 2017-08-28  Paul Thomas  <pault@gcc.gnu.org>
338         PR fortran/80477
339         * trans-expr.c (gfc_conv_procedure_call): Allocatable class
340         scalar results being passed to a derived type formal argument
341         are finalized if possible. Otherwise, rely on existing code for
342         deallocation. Make the deallocation of allocatable result
343         components conditional on finalization not taking place. Make
344         the freeing of data components after finalization conditional
345         on the data being NULL.
346         (gfc_trans_arrayfunc_assign): Change the gcc_assert to a
347         condition to return NULL_TREE.
348         (gfc_trans_assignment_1): If the assignment is class to class
349         and the rhs expression must be finalized but the assignment
350         is not marked as a polymorphic assignment, use the vptr copy
351         function instead of gfc_trans_scalar_assign.
353         PR fortran/86481
354         * trans-expr.c (gfc_conv_expr_reference): Do not add the post
355         block to the pre block if the expression is to be finalized.
356         * trans-stmt.c (gfc_trans_allocate): If the expr3 must be
357         finalized, load the post block into a finalization block and
358         add it right at the end of the allocation block.
360 2018-08-27  David Malcolm  <dmalcolm@redhat.com>
362         PR 87091
363         * error.c (gfc_format_decoder): Update for conversion of
364         show_caret_p to a tri-state.
366 2018-08-25  Janus Weil  <janus@gcc.gnu.org>
368         PR fortran/86545
369         * resolve.c (resolve_transfer): Correctly determine typespec for
370         generic function calls, in order to throw a proper error.
372 2018-08-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
374         PR fortran/86837
375         * frontend-passes.c (var_in_expr_callback): New function.
376         (var_in_expr): New function.
377         (traverse_io_block): Use var_in_expr instead of
378         gfc_check_dependency for checking if the variable depends on the
379         previous interators.
381 2018-08-23  Janne Blomqvist  <blomqvist.janne@gmail.com>
383         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Delete
384         HONOR_SIGNED_ZEROS checks.
386 2018-08-23  Paul Thomas  <pault@gcc.gnu.org>
388         PR fortran/86863
389         * resolve.c (resolve_typebound_call): If the TBP is not marked
390         as a subroutine, check the specific symbol.
392 2018-08-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
394         * gfortran.texi: Mention that asynchronous I/O does
395         not work on systems which lack condition variables, such
396         as AIX.
398 2018-08-22  Janus Weil  <janus@gcc.gnu.org>
400         PR fortran/86935
401         * match.c (gfc_match_associate): Improve diagnostics for the ASSOCIATE
402         statement.
404 2018-08-22  Andrew Benson  <abensonca@gmail.com>
406         * module.c (load_generic_interfaces): Move call to find_symbol()
407         so that only occurs if actually needed.
409 2018-08-22  Janus Weil  <janus@gcc.gnu.org>
411         PR fortran/86888
412         * decl.c (gfc_match_data_decl): Allow allocatable components of
413         indirectly recursive type.
414         * resolve.c (resolve_component): Remove two errors messages ...
415         (resolve_fl_derived): ... and replace them by a new one.
417 2018-08-21  Janne Blomqvist  <jb@gcc.gnu.org>
419         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use
420         MAX_EXPR/MIN_EXPR unconditionally for real arguments.
421         * gfortran.texi (Compiler Characteristics): Document MAX/MIN
422         behavior wrt NaN.
424 2018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
425         Thomas Koenig <tkoenig@gcc.gnu.org>
427         PR fortran/25829
428         * gfortran.texi: Add description of asynchronous I/O.
429         * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
430         as volatile.
431         * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
432         st_wait_async and change argument spec from ".X" to ".w".
433         (gfc_trans_wait): Pass ID argument via reference.
435 2018-08-16  Nathan Sidwell  <nathan@acm.org>
437         * cpp.c (dump_macro): Use cpp_user_macro_p.
439 2018-08-14  Janus Weil  <janus@gcc.gnu.org>
441         PR fortran/86116
442         * interface.c (compare_type): Remove a CLASS/TYPE check.
443         (compare_type_characteristics): New function that behaves like the old
444         'compare_type'.
445         (gfc_check_dummy_characteristics, gfc_check_result_characteristics):
446         Call 'compare_type_characteristics' instead of 'compare_type'.
448 2018-08-12  Paul Thomas  <pault@gcc.gnu.org>
450         PR fortran/66679
451         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Class array
452         elements are returned as references to the data element. Get
453         the class expression by stripping back the references. Use this
454         for the element size.
456 2018-08-12  Paul Thomas  <pault@gcc.gnu.org>
458         PR fortran/86906
459         * resolve.c (resolve_fl_variable_derived): Check if the derived
460         type is use associated before checking for the host association
461         error.
463 2018-08-10  Janus Weil  <janus@gcc.gnu.org>
465         PR fortran/57160
466         * invoke.texi (frontend-optimize): Mention short-circuiting.
467         * options.c (gfc_post_options): Disable -ffrontend-optimize with -Og.
468         * resolve.c (resolve_operator): Warn about short-circuiting only with
469         -ffrontend-optimize.
470         * trans-expr.c (gfc_conv_expr_op): Use short-circuiting operators only
471         with -ffrontend-optimize. Without that flag, make sure that both
472         operands are evaluated.
474 2018-08-08  Nathan Sidwell  <nathan@acm.org>
476         * cpp.c (cb_file_change): Use linemap_included_from.
478 2018-08-07  Cesar Philippidis  <cesar@codesourcery.com>
480         * trans-stmt.h: Remove stale reference to trans-openacc.c.
482 2018-08-04  Janus Weil  <janus@gcc.gnu.org>
484         PR fortran/45521
485         * interface.c (gfc_compare_interfaces): Apply additional
486         distinguishability criteria of F08 to operator interfaces.
488 2018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
490         Revert 'AsyncI/O patch committed'
491         2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
492                 Thomas Koenig <tkoenig@gcc.gnu.org>
494         PR fortran/25829
495         * gfortran.texi: Add description of asynchronous I/O.
496         * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
497         as volatile.
498         * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
499         st_wait_async and change argument spec from ".X" to ".w".
500         (gfc_trans_wait): Pass ID argument via reference.
502 2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
503         Thomas Koenig <tkoenig@gcc.gnu.org>
505         PR fortran/25829
506         * gfortran.texi: Add description of asynchronous I/O.
507         * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
508         as volatile.
509         * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
510         st_wait_async and change argument spec from ".X" to ".w".
511         (gfc_trans_wait): Pass ID argument via reference.
513 2018-07-20  Martin Sebor  <msebor@redhat.com>
515         PR middle-end/82063
516         * gfortran.h (gfc_handle_option): Change function argument
517         to HOST_WIDE_INT.
518         * options.c (gfc_handle_option): Same.
520 2018-07-20  Andrew Benson  <abenson@carnegiescience.edu>
522         * gfortran.h (gfc_symbol): Add pointer to next derived type.
523         (gfc_dt_list, gfc_get_dt_list): Remove.
524         (gfc_namespace): Replace gfc_dt_list with gfc_symbol.
525         * parse.c (resolve_all_program_units): Replace gfc_free_dt_list() with
526         simple nullification of gfc_derived_types.
527         * resolve.c (resolve_global_procedure): Replace gfc_dt_list with
528         gfc_symbol.
529         (add_dt_to_dt_list): Change derived type linked list insertion to
530         utilize dt_next pointers in gfc_symbol.
531         * symbol.c (gfc_new_symbol, gfc_free_dt_list, gfc_symbol_done2)
532         (get_iso_c_binding_dt, generate_isocbinding_symbol): Remove
533         gfc_free_dt_list as gfc_dt_list is obsoleted. Change derived type
534         linked list search/insertion to utilize dt_next pointers in gfc_symbol.
535         * trans-types.c (gfc_get_derived_type): Change derived type linked
536         list search to utilize dt_next pointers in gfc_symbol.
538 2018-07-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
540         * trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR
541         or IFN_FMIN/FMAX sequence to calculate the min/max when possible.
543 2018-07-18  Janus Weil  <janus@gcc.gnu.org>
544             Thomas Koenig  <tkoenig@gcc.gnu.org>
546         PR fortran/85599
547         * dump-parse-tree.c (show_attr): Add handling of implicit_pure.
548         * frontend-passes.c (do_warn_function_elimination): Do not warn for
549         pure functions.
550         * gfortran.h: Add prototypes for gfc_pure_function and
551         gfc_implicit_pure_function.
552         * gfortran.texi: Add chapter on evaluation of logical expressions.
553         * invoke.texi: Mention that -Wfunction-elimination is implied
554         by -Wextra.
555         * lang.opt: Make -Wextra imply -Wfunction-elimination.
556         * resolve.c (pure_function): Rename to gfc_pure_function.
557         (gfc_implicit_pure_function): New function.
558         (check_pure_function): Use it here.
559         (impure_function_callback): New function.
560         (resolve_operator): Call it via gfc_expr_walker.
562 2018-07-16  Fritz Reese  <fritzoreese@gmail.com>
564         PR fortran/83184
565         * decl.c (match_old_style_init): Initialize locus of variable expr when
566         creating a data variable.
567         (match_clist_expr): Verify array is explicit shape/size before
568         attempting to allocate constant array constructor.
570 2018-07-16  Fritz Reese  <fritzoreese@gmail.com>
572         PR fortran/86417
573         * module.c (mio_component): Set component->loc when loading from module.
575 2018-07-10  Jakub Jelinek  <jakub@redhat.com>
577         PR fortran/86421
578         * module.c (omp_declare_simd_clauses): Add LINEAR with _REF, _VAL and
579         _UVAL suffixes.
580         (mio_omp_declare_simd): Save and restore ref, val and uval modifiers
581         on linear clauses.  Initialize n->where to gfc_current_locus.
583 2018-07-05  Paul Thomas  <pault@gcc.gnu.org>
585         PR fortran/86408
586         * resolve.c.c (resolve_contained_fntype): Reference to C418 is
587         in F2008 and not F2003.
588         (resolve_function): Ditto in error message. Also, exclude
589         deferred character length results from the error.
591 2018-07-05  Fritz Reese  <fritzoreese@gmail.com>
593         PR fortran/83183
594         PR fortran/86325
595         * expr.c (class_allocatable, class_pointer, comp_allocatable,
596         comp_pointer): New helpers.
597         (component_initializer): Generate EXPR_NULL for allocatable or pointer
598         components. Do not generate initializers for components within BT_CLASS.
599         Do not assign to comp->initializer.
600         (gfc_generate_initializer): Use new helpers; move code to generate
601         EXPR_NULL for class allocatable components into component_initializer().
603 2018-07-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
605         PR fortran/82009
606         * trans-decl.c (gfc_process_block_locals): Delete assert and set
607         saved_local_decls = NULL_TREE.
609 2018-07-02  Richard Biener  <rguenther@suse.de>
611         PR lto/86321
612         * trans-types.c (gfc_get_array_type_bounds): Unshare TYPE_FIELDs
613         for the distinct type copy.
615 2018-07-02  Paul Thomas  <pault@gcc.gnu.org>
617         PR fortran/82969
618         PR fortran/86242
619         * trans-array.c (structure_alloc_comps): Do not explicitly copy
620         procedure pointer components.
622 2018-07-02  Paul Thomas  <pault@gcc.gnu.org>
624         PR fortran/45305
625         * expr.c : Add a prototype for scalarize_intrinsic_call.
626         (gfc_simplify_expr): Use scalarize_intrinsic_call for elemental
627         intrinsic function calls.
628         (scalarize_intrinsic_call): Add 'init_flag' argument. Check if
629         the expression or any of the actual argument expressions are
630         NULL. Before calling gfc_check_init_expr, check 'init_flag'.
631         Only simplify the scalarized expressions if there are no errors
632         on the stack.
633         (gfc_check_init_expr): Set 'init_flag' true in the call to
634         scalarize_intrinsic_call.
636 2018-06-28  Fritz Reese  <fritzoreese@gmail.com>
638         PR fortran/82865
639         * decl.c (gfc_match_type): Refactor and check for PDT declarations.
641 2018-06-28  Martin Liska  <mliska@suse.cz>
643         * gfortranspec.c: Include opt-suggestions.h.
645 2018-06-25  Fritz Reese  <fritzoreese@gmail.com>
647         PR fortran/82972
648         PR fortran/83088
649         PR fortran/85851
650         * expr.c (component_initializer): Assign init expr to c->initializer.
651         (generate_isocbinding_initializer): New.
652         (gfc_generate_initializer): Call generate_isocbinding_initializer to
653         generate initializers for c_ptr and c_funptr with -finit-derived.
655 2018-06-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
657         PR fortran/85983
658         * interface.c (check_dtio_interface1): Delete assert.
660 2018-06-22  Paul Thomas  <pault@gcc.gnu.org>
661             Rainer Orth  <ro@gcc.gnu.org>
663         PR fortran/86281
664         * resolve.c (resolve_contained_fntype): Check for the charlen
665         before testing the length.
667 2018-06-21  Paul Thomas  <pault@gcc.gnu.org>
669         PR fortran/49630
670         * resolve.c (resolve_contained_fntype): Change standard ref.
671         from F95 to F2003: C418. Correct a spelling error in a comment.
672         It is an error for an abstract interface to have an assumed
673         character length result.
674         * trans-expr.c (gfc_conv_procedure_call): Likewise change the
675         standard reference.
677 2018-06-21  Paul Thomas  <pault@gcc.gnu.org>
679         PR fortran/83118
680         * resolve.c (resolve_ordinary_assign): Force the creation of a
681         vtable for assignment of non-polymorphic expressions to an
682         unlimited polymorphic object.
683         * trans-array.c (gfc_alloc_allocatable_for_assignment): Use the
684         size of the rhs type for such assignments. Set the dtype, _len
685         and vptrs appropriately.
686         * trans-expr.c (gfc_trans_assignment): Force the use of the
687         _copy function for these assignments.
689 2018-06-20  Chung-Lin Tang <cltang@codesourcery.com>
690             Thomas Schwinge <thomas@codesourcery.com>
691             Cesar Philippidis  <cesar@codesourcery.com>
693         * gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize
694         bitfields.
695         * openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add
696         OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
697         (gfc_match_omp_clauses): Update handling of copy, copyin, copyout,
698         create, deviceptr, present_of_*. Add support for finalize and
699         if_present.
700         (OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses.
701         (OACC_KERNELS_CLAUSES): Likewise.
702         (OACC_DATA_CLAUSES): Likewise.
703         (OACC_DECLARE_CLAUSES): Likewise.
704         (OACC_UPDATE_CLAUSES): Add IF_PRESENT clause.
705         (OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses.
706         (OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause.
707         (gfc_match_oacc_declare): Update to OpenACC 2.5 semantics.
708         * trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT
709         and FINALIZE.
711 2018-06-18  Eric Botcazou  <ebotcazou@adacore.com>
713         * trans-decl.c (gfc_get_fake_result_decl): Revert latest change.
715 2018-06-17  Eric Botcazou  <ebotcazou@adacore.com>
717         * trans-decl.c (nonlocal_dummy_decl_pset): Delete.
718         (nonlocal_dummy_decls): Likewise.
719         (gfc_nonlocal_dummy_array_decl): Likewise.
720         (gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl.
721         (gfc_get_fake_result_decl): Do not generate a new DECL if simply
722         reusing the result of a recursive call.
723         (gfc_generate_function_code): Do not create, insert and destroy
724         nonlocal_dummy_decls.
726 2018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>
728         PR fortran/86110
729         * array.c (gfc_resolve_character_array_constructor): Avoid NULL
730         pointer dereference.
732 2018-06-13  Cesar Philippidis  <cesar@codesourcery.com>
734         PR fortran/85703
735         * parse.c (decode_oacc_directive): Set gfc_matching_function
736         to false.
737         (decode_omp_directive): Likewise.
739 2018-06-13  Cesar Philippidis  <cesar@codesourcery.com>
741         PR fortran/85702
742         * openmp.c (gfc_match_oacc_wait): Use %C to report error location.
744 2018-06-12  David Malcolm  <dmalcolm@redhat.com>
746         PR other/69968
747         * misc.c (gfc_closest_fuzzy_match): Update for renaming of
748         levenshtein_distance to get_edit_distance.
750 2018-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>
752         PR fortran/44491
753         * expr.c (gfc_check_assign): Select non-NULL locus.
755 2018-06-11  Janus Weil  <janus@gcc.gnu.org>
757         PR fortran/45521
758         * interface.c (compare_ptr_alloc): New function.
759         (generic_correspondence): Call it.
761 2018-06-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
763         * gfortran.h (gfc_expr): Add no_bounds_check field.
764         * frontend-passes.c (get_array_inq_function): Set no_bounds_check
765         on function and function argument.
766         (inline_matmul_assign): Set no_bounds_check on zero expression
767         and on lhs of zero expression.
768         Also handle A1B2 case if realloc on assigment is active.
769         * trans-array.c (gfc_conv_array_ref): Don't do range checking
770         if expr has no_bounds_check set.
771         (gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr
772         has it set.
773         * trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check
774         on lss and lss if the corresponding expressions have it set.
776 2018-06-10  Dominique d'Humieres  <dominiq@gcc.gnu.org>
778         PR fortran/79854
779         * trans-const.c: Remove include "diagnostic-core.h".
780         (gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable.
782 2018-06-10  Janus Weil  <janus@gcc.gnu.org>
784         PR fortran/85088
785         * decl.c (match_attr_spec): Synchronize the DECL_* enum values with the
786         INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec'
787         and remove a TODO note.
788         * gfortran.h: Add a comment to sym_intent.
790 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
792         PR fortran/38351
793         * resolve.c (resolve_operator): Provide better error message for
794         derived type entity used in an binary intrinsic numeric operator.
796 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
798         PR fortran/85138
799         PR fortran/85996
800         PR fortran/86051
801         * decl.c (gfc_match_char_spec): Use private namespace in attempt to
802         reduce a charlen to a constant.
804 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
806         PR fortran/78278
807         * data.c (gfc_assign_data_value): Re-arrange code to allow for
808         an error for double initialization of CHARACTER entities.
810 2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
812         PR fortran/63514
813         * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588.
815 2018-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
817         PR fortran/85631
818         * trans.h (gfc_ss): Add field no_bounds_check.
819         * trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and
820         ss->no_bounds_check is set, do not use runtime checks.
821         * trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check
822         for reallocatable lhs.
824 2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
826         PR fortran/86059
827         * array.c (match_array_cons_element): NULL() cannot be in an
828         array constructor.
830 2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
832         PR fortran/78571
833         * data.c (create_character_initializer): Return early if type is
834         incompatible with CHARACTER.
836 2018-06-07  Steven G. Kargl  <kargl@gcc.gnu.org>
838         PR fortran/86045
839         * simplify.c (gfc_simplify_mod): Re-arrange code to test whether
840         'P' is zero and issue an error if it is.
842 2018-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
844         PR fortran/85641
845         * frontend-passes.c (is_fe_temp): Add prototype.
846         (realloc_string_callback): Early return for frontend-generated
847         temporary.
849 2018-06-05  Cesar Philippidis  <cesar@codesourcery.com>
851         PR fortran/85701
853         * openmp.c (gfc_resolve_oacc_declare): Error on functions and
854         subroutine data clause arguments.
856 2018-06-04  Steven G. Kargl  <kargl@gcc.gnu.org>
858         PR fortran/85981
859         * resolve.c (resolve_allocate_deallocate): Check errmsg is default
860         character kind.
862 2018-06-03  Paul Thomas  <pault@gcc.gnu.org>
864         PR fortran/36497
865         * decl.c (variable_decl): Use gfc_add_type for cray pointees.
867 2018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>
869         PR fortran/63570
870         * check.c (gfc_check_random_init): New function. Check arguments of
871         RANDOM_INIT.
872         * gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token.
873         * intrinsic.c (add_subroutines): Add RANDOM_INIT to list of
874         subroutines.
875         (gfc_check_intrinsic_standard): Introduce Fortran 2018 check.
876         * intrinsic.h: Add prototypes for gfc_check_random_init and
877         gfc_resolve_random_init
878         * intrinsic.texi: Document new intrinsic subprogram.
879         * iresolve.c (gfc_resolve_random_init): Resolve routine name.
880         * trans-decl.c: Declare gfor_fndecl_random_init
881         * trans-intrinsic.c (conv_intrinsic_random_init): New function.
882         Translate call to RANDOM_INIT.
883         (gfc_conv_intrinsic_subroutine): Call it.
884         * trans.h: Declare gfor_fndecl_random_init
886 2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
888         * decl.c (match_data_constant):  Fortran 2018 allows pointer
889         initialization in a data statement.
891 2018-05-25  Janus Weil  <janus@gcc.gnu.org>
893         PR fortran/85839
894         * match.c (gfc_match_block_data): Call gfc_notify_std to warn about
895         an obsolescent feature in Fortran 2018.
896         (gfc_match_equivalence): Ditto.
897         * resolve.c (resolve_common_blocks): Ditto.
898         (gfc_resolve_forall): Ditto.
899         * symbol.c (gfc_define_st_label): Ditto.
901 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
903         PR fortran/85543
904         * resolve.c (update_current_proc_array_outer_dependency): Avoid NULL
905         pointer dereference.
907 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
909         PR fortran/85780
910         * resolve.c (resolve_fl_procedure): Avoid NULL dereference.
912 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
914         PR fortran/85779
915         * decl.c (gfc_match_derived_decl): Fix NULL point dereference.
917 2018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
919         PR fortran/85895
920         * resolve.c (resolve_sync): Resolve expression before checking for
921         an error.
923 2018-05-22  Janus Weil  <janus@gcc.gnu.org>
925         PR fortran/85841
926         * libgfortran.h: Remove the macros GFC_STD_F2008_TS and
927         GFC_STD_OPT_F08TS.
928         * error.c (notify_std_msg): Remove GFC_STD_F2008_TS.
929         * options.c (set_default_std_flags): Ditto.
930         (gfc_handle_option): Make -std=f2008ts an alias for -std=f2018.
931         * array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by
932         GFC_STD_F2018.
933         * check.c (gfc_check_atomic, gfc_check_event_query,
934         gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc,
935         gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto.
936         * decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto.
937         * intrinsic.c (add_functions, add_subroutines,
938         gfc_check_intrinsic_standard): Ditto.
939         * iso-c-binding.def: Ditto.
940         * iso-fortran-env.def: Ditto.
941         * match.c (gfc_match_event_post, gfc_match_event_wait,
942         gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team,
943         gfc_match_end_team, gfc_match_sync_team): Ditto.
944         * gfortran.texi: Remove mention of -std=f2008ts.
945         Move TSs into F2018 section.
946         * invoke.texi: Update documentation of -std=f2008ts.
948 2018-05-21  Janus Weil  <janus@gcc.gnu.org>
950         PR fortran/85841
951         * libgfortran.h: New macros GFC_STD_OPT_*.
952         * error.c (notify_std_msg): New function.
953         (gfc_notify_std): Adjust such that it can handle combinations of
954         GFC_STD_* flags in the 'std' argument, not just a single one.
955         * match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if
956         in Fortran 2018.
957         (gfc_match_stopcode): Use GFC_STD_OPT_* macros.
958         * options.c (set_default_std_flags): Warn for F2018 deleted features
959         by default.
960         (gfc_handle_option): F2018 deleted features are allowed in earlier
961         standards.
962         * symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject
963         nonblock do constructs in Fortran 2018.
965 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
967         PR fortran/80657
968         * resolve.c (flag_fn_result_spec): Use the 'sym' argument to
969         test for self refs to the function result in the character len
970         expression. If a self reference is found, emit an error and
971         return true.
972         (resolve_fntype): Use the function symbol in the calls to the
973         above.
975 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
977         PR fortran/49636
978         * trans-array.c (gfc_get_array_span): Renamed from
979         'get_array_span'.
980         (gfc_conv_expr_descriptor): Change references to above.
981         * trans-array.h : Add prototype for 'gfc_get_array_span'.
982         * trans-intrinsic.c (gfc_conv_associated): Add pre and post
983         blocks for 'arg1'.
984         * trans-stmt.c (trans_associate_var): If the associate name is
985         a subref array pointer, use gfc_get_array_span for the span.
987 2018-05-20  Paul Thomas  <pault@gcc.gnu.org>
989         PR fortran/82275
990         * match.c (gfc_match_type_spec): Go through the array ref and
991         decrement 'rank' for every dimension that is an element.
993 2018-05-19  Paul Thomas  <pault@gcc.gnu.org>
995         PR fortran/82923
996         PR fortran/66694
997         PR fortran/82617
998         * trans-array.c (gfc_alloc_allocatable_for_assignment): Set the
999         charlen backend_decl of the rhs expr to ss->info->string_length
1000         so that the value in the current scope is used.
1002 2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1004         PR fortran/63529
1005         * gfortran.texi: Clarify documentation for Cray pointer and
1006         assumed-sized array.
1008 2018-05-13  Paul Thomas  <pault@gcc.gnu.org>
1010         PR fortran/85742
1011         * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation
1012         of 'size'. If the element type is a pointer use the size of the
1013         TREE_TYPE of the type, unless it is VOID_TYPE. In this latter
1014         case, set the size to zero.
1016 2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1018         * gfortran.h: Remove prototype.
1019         * symbol.c (gfc_new_undo_checkpoint): Remove unused function.
1021 2018-05-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1023         PR fortran/85542
1024         * expr.c (check_inquiry): Avoid NULL pointer dereference.
1026 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1028         PR fortran/85687
1029         * check.c (gfc_check_rank): Check that the argument is a data object.
1031 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1033         PR fortran/85521
1034         * array.c (gfc_resolve_character_array_constructor): Substrings
1035         with upper bound smaller than lower bound are zero length strings.
1037 2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1039         PR fortran/70870
1040         * data.c (gfc_assign_data_value): Check that a data object does
1041         not also have default initialization.
1043 2018-05-10  Marek Polacek  <polacek@redhat.com>
1045         PR fortran/85735
1046         * options.c (gfc_post_options): Set main_input_filename.
1048 2018-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
1050         PR fortran/54613
1051         * intrinsic.texi: Document BACK for MINLOC and MAXLOC.
1053 2018-05-10  Paul Thomas  <pault@gcc.gnu.org>
1055         PR fortran/68846
1056         PR fortran/70864
1057         * resolve.c (get_temp_from_expr): The temporary must not have
1058         dummy or intent attributes.
1060 2018-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1062         PR fortran/54613
1063         * check.c (gfc_check_minmaxloc): Remove error for BACK not being
1064         implemented.  Use gfc_logical_4_kind for BACK.
1065         * simplify.c (min_max_choose): Add optional argument back_val.
1066         Handle it.
1067         (simplify_minmaxloc_to_scalar): Add argument back_val. Pass
1068         back_val to min_max_choose.
1069         (simplify_minmaxloc_to_nodim): Likewise.
1070         (simplify_minmaxloc_to_array): Likewise.
1071         (gfc_simplify_minmaxloc): Add argument back, handle it.
1072         Pass back_val to specific simplification functions.
1073         (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back,
1074         pass it on to gfc_simplify_minmaxloc.
1075         (gfc_simplify_maxloc): Likewise.
1076         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust
1077         comment. If BACK is true, use greater or equal (or lesser or
1078         equal) insteal of greater (or lesser). Mark the condition of
1079         having found a value which exceeds the limit as unlikely.
1081 2018-05-07  Jeff Law  <law@redhat.comg>
1083         * scanner.c (preprocessor_line): Call linemap_add after a line
1084         directive that changes the current filename.
1086 2018-05-06  Andre Vehreschild  <vehre@gcc.gnu.org>
1088         PR fortran/85507
1089         * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension
1090         introduced by r259385.
1091         * trans-intrinsic.c (conv_caf_send): Always report a dependency for
1092         same variables in coarray assignments.
1094 2018-05-02  Tom de Vries  <tom@codesourcery.com>
1096         PR libgomp/82428
1097         * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define.
1099 2018-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1101         PR fortran/85520
1102         * decl.c (gfc_match_char_spec): Check for negative length and set to 0.
1104 2018-04-14  Andre Vehreschild  <vehre@gcc.gnu.org>
1106         PR fortran/81773
1107         PR fortran/83606
1108         * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored
1109         during dependency computation.  They define no data dependency.
1110         * trans-array.c (conv_array_index_offset): The stride can not be set
1111         here, prevent fail.
1112         * trans-intrinsic.c (conv_caf_send): Add creation of temporary array
1113         for caf_get's result and copying to the array with vectorial
1114         indexing.
1116 2018-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1118         PR fortran/85387
1119         * frontend-passes.c (traverse_io_block): Check for start, end or
1120         stride being defined by an outer implied DO loop.
1122 2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1124         PR fortran/83064
1125         PR testsuite/85346
1126         * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind
1127         for annotation and remove dependence on -ftree-parallelize-loops.
1129 2018-04-10  Jakub Jelinek  <jakub@redhat.com>
1131         PR fortran/85313
1132         * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;.
1133         (resolve_oacc_nested_loops): Likewise.  Formatting fix.
1135 2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1137         PR fortran/83064
1138         * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for
1139         parallell processing of DO CONCURRENT -ftree-parallelize-loops
1140         is set.
1142 2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1144         PR fortran/51260
1145         * resolve.c (resolve_variable): Simplify cases where access to a
1146         parameter array results in a single constant.
1148 2018-04-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1150         PR fortran/85102
1151         * decl.c (variable_decl): If upper or lower bounds simplify
1152         to a constant, use that.
1154 2018-03-30  Paul Thomas  <pault@gcc.gnu.org>
1156         PR fortran/84931
1157         * simplify.c (gfc_convert_constant): Handle case of array
1158         constructors within an array that has no iterator and improve
1159         the conciseness of this section of code.
1161 2017-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1163         PR fortran/85111
1164         * array.c (gfc_resolve_character_array_constructor): Early
1165         exit for zero-size arrays.
1166         * simplify.c (simplify_transformation_to_array): Exit early
1167         if the result size is zero.
1168         (simplify_minmaxloc_to_array): Likewise.
1170 2018-03-28  Mikael Morin  <mikael@gcc.gnu.org>
1172         PR fortran/69497
1173         * symbol.c (gfc_symbol_done_2): Start freeing namespaces
1174         from the root.
1175         (gfc_free_namespace): Restore assert (revert r258839).
1177 2018-03-28  Jakub Jelinek  <jakub@redhat.com>
1179         * gfortran.h (gfc_dt): Rename default_exp field to dec_ext.
1180         * ioparm.def (IOPARM_dt_default_exp): Rename to ...
1181         (IOPARM_dt_dec_ext): ... this.
1182         * trans-io.c (build_dt): Adjust for default_exp renaming to
1183         dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext.
1184         * io.c (match_io): Likewise.
1186 2018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1188         PR fortran/85084
1189         * frontend-passes.c (gfc_run_passes): Do not run front-end
1190         optimizations if a previous error occurred.
1192 2018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1193         Harald Anlauf  <anlauf@gmx.de>
1195         PR fortran/85083
1196         * primary.c (gfc_convert_to_structure_constructor): Check
1197         conformance of argument types in structure constructor.
1199 2018-03-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1201         PR fortran/66709
1202         * io.c: Include constructor.h.
1203         (resolve_tag_format): For a constant character array, concatenate
1204         into a single character expression.
1206 2018-03-25  Seth Johnson <johnsonsr@ornl.gov>
1207         Dominique d'Humieres  <dominiq@gcc.gnu.org>
1209         PR fortran/84924
1210         * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable
1211         scalar derived type with -std=f2003 and -std=f2008.
1213 2018-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1214             Dominique d'Humieres  <dominiq@gcc.gnu.org>
1216         PR fortran/69497
1217         * symbol.c (gfc_free_namespace): Delete the assert and only if
1218         refs count is equals zero, free the namespace. Otherwise,
1219         something is halfway and other errors will resound.
1221 2018-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1223         PR fortran/70068
1224         * expr.c (find_substring_ref): Change types of start, end
1225         and length variables to gfc_charlen_t. Set length to zero
1226         for empty substring.
1228 2018-03-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1230         PR fortran/42651
1231         * decl.c (check_function_name): Improved error message
1232         (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name.
1234 2018-03-22  Steven G. Kargl  <kargl@gcc.gnu.org>
1236         PR fortran/84922
1237         * decl.c (get_proc_name): If the MODULE prefix appears in interface
1238         body, then it must appear on the contained subroutine or function.
1239         While here, fix nearby mis-indented code.
1241 2018-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1242         Harald Anlauf  <anlauf@gmx.de>
1244         PR fortran/84957
1245         * trans-types.c (gfc_sym_type): Do not dereference NULL pointer.
1247 2018-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
1249         PR fortran/84615
1250         * trans-expr.c (gfc_conv_procedure_call): Convert charlen to
1251         gfc_charlen_type_node when calling procedure.
1253 2018-03-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1255         PR fortran/85001
1256         * interface.c (symbol_rank): Remove bogus null pointer check that
1257         crept in when translating a ternary operator into an if-else
1258         constructor.
1260 2018-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1262         PR fortran/84931
1263         * simplify.c (gfc_convert_constant): Correctly handle iterators
1264         for type conversion.
1266 2018-03-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1268         PR fortran/77414
1269         * decl.c (get_proc_name):  Check for a subroutine re-defined in
1270         the contain portion of a subroutine.  Change language of existing
1271         error message to better describe the issue. While here fix whitespace
1272         issues.
1274 2018-03-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1276         PR fortran/65453
1277         * decl.c (get_proc_name): Catch clash between a procedure statement
1278         and a contained subprogram
1280 2018-03-16  Steven G. Kargl  <kargl@gcc.gnu.org>
1282         PR fortran/69395
1283         * decl.c (merge_array_spec): Correct the error condition.
1285 2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1287         PR fortran/78741
1288         * decl.c (get_proc_name):  Check for clash of entry name with
1289         subroutine name.
1291 2018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1293         PR fortran/69395
1294         * decl.c (merge_array_spec): Limit the merging to maximum allowed
1295         dimensions, and issue error message if limit is exceeded.
1297 2018-03-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1299         * check.c (gfc_check_kill_sub):  Remove check for INTEGER(4) or (8).
1300         * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill.
1301         (add_subroutines): Remove reference to gfc_resolve_kill_sub.
1302         * intrinsic.texi: Update documentation.
1303         * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove.
1304         * trans-decl.c (gfc_build_intrinsic_function_decls):  Add
1305         gfor_fndecl_kill and gfor_fndecl_kill_sub
1306         * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new
1307         functions.
1308         (gfc_conv_intrinsic_function): Use conv_intrinsic_kill.
1309         (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub.
1310         * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub.
1312 2018-03-11  Paul Thomas  <pault@gcc.gnu.org>
1314         PR fortran/84546
1315         * trans-array.c (structure_alloc_comps): Make sure that the
1316         vptr is copied and that the unlimited polymorphic _len is used
1317         to compute the size to be allocated.
1318         * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the
1319         unlimited polymorphic _len for the offset to the element.
1320         (gfc_copy_class_to_class): Set the new 'unlimited' argument.
1321         * trans.h : Add the boolean 'unlimited' to the prototype.
1323 2018-03-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1325         PR fortran/83939
1326         * resolve.c (resolve_fl_procedure): Enforce F2018:C15100.
1328 2018-03-11  Steven G. Kargl  <kargls@gcc.gnu.org>
1330         * check.c (gfc_check_kill):  Check pid and sig are scalar.
1331         (gfc_check_kill_sub): Restrict kind to 4 and 8.
1332         * intrinsic.c (add_function): Sort keyword list.  Add pid and sig
1333         keywords for KILL.  Remove redundant *back="back" in favor of the
1334         original *bck="back".
1335         (add_subroutines): Sort keyword list.  Add pid and sig keywords
1336         for KILL.
1337         * intrinsic.texi: Fix documentation to consistently use pid and sig.
1338         * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8.  Choose the
1339         correct function.
1340         (gfc_resolve_rename_sub): Add comment.
1342 2018-03-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1344         PR fortran/66128
1345         * simplify.c (simplify_transformation): Return default result for
1346         empty array argument.
1347         (gfc_simplify_all): Remove special-case handling for zerosize.
1348         (gfc_simplify_any): Likewise.
1349         (gfc_simplify_count): Likewise.
1350         (gfc_simplify_iall): Likewise.
1351         (gfc_simplify_iany): Likewise.
1352         (gfc_simplify_iparity): Likewise.
1353         (gfc_simplify_minval): Likewise.
1354         (gfc_simplify_maxval): Likewise.
1355         (gfc_simplify_norm2): Likewise.
1356         (gfc_simplify_product): Likewise.
1357         (gfc_simplify_sum): Likewise.
1359 2018-03-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1361         PR fortran/84734
1362         * arith.c (check_result, eval_intrinsic):  If result overflows, pass
1363         the expression up the chain instead of a NULL pointer.
1365 2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1367         PR fortran/64124
1368         PR fortran/70409
1369         * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
1371 2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1373         PR fortran/84697
1374         PR fortran/66128
1375         * expr.c (simplify_parameter_variable): If p is a size zero array
1376         and not an ARRAY_EXPR insert an empty array constructor and
1377         return.
1378         * gfortran.h: Add prototype for gfc_is_size_zero_array.
1379         * simplify.c (is_size_zero_array): Make non-static and rename into
1380         (gfc_is_size_zero_array):  Check for parameter arrays of zero
1381         size by comparing shape and absence of constructor.
1382         (gfc_simplify_all): Use gfc_is_size_zero_array instead of
1383         is_size_zero_array.
1384         (gfc_simplify_count): Likewise.
1385         (gfc_simplify_iall): Likewise.
1386         (gfc_simplify_iany): Likewise.
1387         (gfc_simplify_iparity): Likewise.
1388         (gfc_simplify_minval): Likewise.
1389         (gfc_simplify_maxval): Likewise.
1390         (gfc_simplify_product): Likewise.
1391         (gfc_simplify_sum): Likewise.
1393 2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1395         PR fortran/56667
1396         * primary.c (match_sym_complex_part): Give the matcher for an implied
1397         do-loop a chance to run.
1399 2018-03-03  Harald Anlauf  <anlauf@gmx.de>
1401         PR fortran/71085
1402         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
1403         dereference NULL pointer.
1405 2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
1407         PR fortran/66128
1408         * simplify.c (is_size_zero_array): New function to check for size
1409         zero array.
1410         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
1411          gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
1412          gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
1413          gfc_simplify_product, gfc_simplify_sum): Use it, and implement
1414         requirements from F2018.
1416 2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
1418         PR fortran/51434
1419         * simplify.c (gfc_simplify_transfer): Resolve mold.
1421 2018-03-03  Paul Thomas  <pault@gcc.gnu.org>
1423         PR fortran/80965
1424         * resolve.c (build_loc_call): Change symtree name from 'loc' to
1425         '_loc'.
1427 2018-03-01  Paul Thomas  <pault@gcc.gnu.org>
1429         PR fortran/84219
1430         * target-memory.c (gfc_interpret_derived): Assert that BT_VOID
1431         components are caf tokens.
1432         (gfc_target_interpret_expr): Treat BT_VOID expressions as
1433         integers.
1435 2018-03-01  Paul Thomas  <pault@gcc.gnu.org>
1437         PR fortran/84538
1438         * class.c (class_array_ref_detected): Remove the condition that
1439         there be no reference after the array reference.
1440         (find_intrinsic_vtab): Remove excess whitespace.
1441         * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
1442         as 'base and call build_class_array_ref earlier.
1444 2018-02-28  Paul Thomas  <pault@gcc.gnu.org>
1446         PR fortran/83901
1447         * trans-stmt.c (trans_associate_var): Make sure that the se
1448         expression is a pointer type before converting it to the symbol
1449         backend_decl type.
1451 2018-02-25  Steven G. Kargl  <kargl@gcc.gnu.org>
1453         PR fortran/83633
1454         * decl.c (variable_decl): Check that an explicit-shape-array with
1455         nonconstant bounds is allowed.
1457 2018-02-25  Paul Thomas  <pault@gcc.gnu.org>
1459         PR fortran/84523
1460         * trans-intrinsic.c (gfc_conv_allocated): If the argument se
1461         has a pre block, add it to the expression pre block.
1463 2018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1465         PR fortran/78238
1466         * gfortran.h (gfc_integer_4_kind): Define.
1467         * resolve.c (resolve_select_type): Make sure that the
1468         kind of c->high is gfc_integer_4_kind.
1470 2018-02-24  Steven G. Kargl <kargl@gcc.gnu.org>
1472         PR fortran/30792
1473         * decl.c (gfc_match_data): Check for invalid substring in
1474         data-implied-do
1476 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
1478         * intrinsic.texi: Arguments to MATMUL cannot both be rank one.
1480 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
1482         PR fortran/84511
1483         * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement.
1485 2018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
1487         PR fortran/84346
1488         * interface.c (compare_actual_formal): Issue error if keyword is
1489         used in a statement function.
1491 2018-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1493         PR fortran/84506
1494         * trans-io.c (set_parameter_value_inquire): Adjust range check of
1495         negative unit values for kind=8 units to the kind=4 negative limit.
1497 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
1499         PR fortran/83149
1500         * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before
1501         accessing its components.
1503 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
1505         PR fortran/83149
1506         * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name
1507         before accessing its components.
1509 2018-02-23  Paul Thomas  <pault@gcc.gnu.org>
1511         PR fortran/83148
1512         * trans-const.c : Clean up some whitespace issues.
1513         * trans-expr.c (gfc_conv_initializer): If an iso_c_binding
1514         derived type has a kind value of zero, set it to the default
1515         integer kind.
1517 2018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>
1519         PR fortran/84519
1520         * trans-decl.c (gfc_build_builtin_function_decls): Add bool
1521         argument to stop and error stop decls.
1522         * trans-stmt.c (gfc_trans_stop): Add false value to argument
1523         lists.
1525 2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
1527         PR 78534
1528         PR 84509
1529         * trans-decl.c (gfc_build_builtin_function_decls): Pass
1530         gfc_int8_type node to pause_numeric, size_type_node to
1531         pause_string.
1532         * trans-stmt.c (gfc_trans_pause): Likewise.
1534 2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
1536         * gfortran.texi: Update Coarray API description.
1537         * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
1538         character lengths, int for exit codes.
1539         (generate_coarray_sym_init): Use size_t for character length.
1540         * trans-intrinsic.c (conv_co_collective): Likewise.
1541         * trans-stmt.c (gfc_trans_lock_unlock): Likewise.
1542         (gfc_trans_event_post_wait): Likewise.
1543         (gfc_trans_sync): Likewise.
1544         (gfc_trans_stop): Use size_t for character lengths, int for exit
1545         codes.
1547 2018-02-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
1549         PR fortran/48890
1550         PR fortran/83823
1551         * primary.c (gfc_convert_to_structure_constructor):
1552         For a constant string constructor, make sure the length
1553         is correct.
1555 2018-02-19  Paul Thomas  <pault@gcc.gnu.org>
1557         PR fortran/83344
1558         PR fortran/83975
1559         * resolve.c (resolve_assoc_var): Rearrange the logic for the
1560         determination of the character length of associate names. If
1561         the associate name is missing a length expression or the length
1562         expression is not a constant and the target is not a variable,
1563         make the associate name allocatable and deferred length.
1564         * trans-decl.c (gfc_get_symbol_decl): Null the character length
1565         backend_decl for deferred length associate names that are not
1566         variables. Set 'length' to gfc_index_zero_node for character
1567         associate names, whose character length is a PARM_DECL.
1569 2018-02-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1571         PR fortran/35339
1572         * frontend-passes.c (traverse_io_block): Remove workaround for
1573         PR 80945.
1575 2018-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>
1577         * gfortran.texi: Document additional src/dst_type.  Fix some typos.
1578         * trans-decl.c (gfc_build_builtin_function_decls): Declare the new
1579         argument of _caf_*_by_ref () with * e { get, send, sendget }.
1580         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the
1581         data referenced when generating a call to caf_get_by_ref ().
1582         (conv_caf_send): Same but for caf_send_by_ref () and
1583         caf_sendget_by_ref ().
1585 2018-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1587         PR fortran/84389
1588         * io.c (check_format): Allow FMT_COLON.
1590 2018-02-18  Paul Thomas  <pault@gcc.gnu.org>
1592         PR fortran/80945
1593         * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from
1594         the typenode in the case of deferred length characters.
1596 2018-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
1598         PR fortran/84270
1599         * frontend-passes (scalarized_expr):  If the expression
1600         is an assumed size array, leave in the last reference
1601         and pass AR_SECTION instead of AR_FULL to gfc_resolve
1602         in order to avoid an error.
1604 2018-02-17  Paul Thomas  <pault@gcc.gnu.org>
1606         PR fortran/84115
1607         * resolve.c (resolve_assoc_var): If a non-constant target expr.
1608         has no string length expression, make the associate variable
1609         into a deferred length, allocatable symbol.
1610         * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to
1611         the symbol.
1612         * trans-stmt.c (trans_associate_var): Null and free scalar
1613         associate names that are allocatable. After assignment, remove
1614         the allocatable attribute to prevent reallocation.
1616 2018-02-16  Jakub Jelinek  <jakub@redhat.com>
1618         PR fortran/84418
1619         * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF
1620         kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step.
1622 2018-02-16  Dominique d'Humieres  <dominiq@gcc.gnu.org>
1624         PR fortran/84354
1625         * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs.
1627 2018-02-15  Janus Weil  <janus@gcc.gnu.org>
1629         PR fortran/84409
1630         * interface.c (check_dtio_arg_TKR_intent): Add a check for character
1631         length.
1633 2018-02-14  Janus Weil  <janus@gcc.gnu.org>
1635         PR fortran/84385
1636         * match.c (gfc_match_select_type): Fix check for selector in
1637         SELECT TYPE statement.
1639 2018-02-13  Janus Weil  <janus@gcc.gnu.org>
1641         PR fortran/84313
1642         * symbol.c (check_conflict): Reject procedure pointers in common blocks.
1644 2018-02-13  Alastair McKinstry  <alastair.mckinstry@sceal.ie>
1645             Janne Blomqvist  <jb@gcc.gnu.org>
1647         * module.c (dump_module): Use lbasename to ensure that module
1648         files are reproducible.
1650 2018-02-12  Janus Weil  <janus@gcc.gnu.org>
1652         PR fortran/84273
1653         * resolve.c (resolve_component): Fix checks of passed argument in
1654         procedure-pointer components.
1656 2018-02-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1658         PR fortran/35299
1659         * resolve.c (resolve_formal_arglist): Update error message.
1661 2018-02-11  Andre Vehreschild  <vehre@gcc.gnu.org>
1663         * gfortran.texi: Fix typos in documentation of caf_register ().
1664         * trans-array.c (structure_alloc_comps): Only register a component of
1665         a derived typed corray, not of an ultimate component coarray.
1667 2018-02-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1669         PR fortran/54223
1670         PR fortran/84276
1671         * interface.c (compare_actual_formal): Add in_statement_function
1672         bool parameter.  Skip check of INTENT attribute for statement
1673         functions.  Arguments to a statement function cannot be optional,
1674         issue error for missing argument.
1675         (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use
1676          in_statement_function.
1678 2018-02-11  Paul Thomas  <pault@gcc.gnu.org>
1680         PR fortran/84074
1681         * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset
1682         flag. If the is a vector subscript or the expression is not a
1683         variable, make the descriptor one-based.
1685 2018-02-10  Paul Thomas  <pault@gcc.gnu.org>
1687         PR fortran/84141
1688         PR fortran/84155
1689         * trans-array.c (gfc_array_init_size): Revert the change made
1690         in revision 257356 setting the dtype.
1691         * trans-types.c (gfc_get_dtype): Do not use the cached dtype.
1692         Call gfc_get_dtype_rank_type every time.
1694         PR fortran/56691
1695         * trans-array.c (gfc_conv_expr_descriptor): If the source array
1696         is a descriptor type, use its offset, removing the condition
1697         that is be a class expression.
1699 2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1701         PR fortran/82994
1702         * match.c (gfc_match_deallocate): Check for NULL pointer.
1704 2018-02-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1706         PR fortran/68560
1707         * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function.
1708         (gfc_conv_intrinsic_function): Call it.
1710 2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1712         PR fortran/82049
1713         * match.c (gfc_match_type_spec): If the charlen is non-NULL, then
1714         try to resolve it.  While here return early if possible.
1716 2018-02-04  Paul Thomas  <pault@gcc.gnu.org>
1718         PR fortran/84115
1719         * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of
1720         'length' if the symbol charlen backend_decl is an indirect ref.
1722 2018-02-03  Paul Thomas  <pault@gcc.gnu.org>
1724         PR fortran/84141
1725         PR fortran/84155
1726         * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype
1727         use gfc_get_dtype_rank_type.
1729 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
1731         PR 83975
1732         PR 83344
1733         * resolve.c (resolve_assoc_var): Generate an error if
1734         target length unknown.
1736 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
1738         PR fortran/83705
1739         * simplify.c (gfc_simplify_repeat): Increase limit for deferring
1740         to runtime, print a warning message.
1742 2018-01-31  Jakub Jelinek  <jakub@redhat.com>
1744         PR fortran/84116
1745         * openmp.c (gfc_match_omp_clauses): If all the linear
1746         gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist
1747         nor set *head = NULL.  Formatting fixes.
1749 2018-01-31  Paul Thomas  <pault@gcc.gnu.org>
1751         PR fortran/84088
1752         * trans-expr.c (gfc_conv_procedure_call): If the parm expr is
1753         an address expression passed to an assumed rank dummy, convert
1754         to an indirect reference.
1756 2018-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
1758         * dump-parse-tree.c (write_proc): Use sym_name (which may
1759         be sym->binding_label) instead of sym->name.
1761 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
1763         * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead
1764         of int for slen.
1766 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
1768         PR fortran/78534
1769         * trans-expr.c (fill_with_spaces): Use memset instead of
1770         generating loop.
1771         (gfc_trans_string_copy): Improve opportunity to use builtins with
1772         constant lengths.
1774 2018-01-30  Jakub Jelinek  <jakub@redhat.com>
1776         PR debug/84131
1777         * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off
1778         to DATA_FIELD's offset rather than OFFSET_FIELD's offset.
1780 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1782         PR fortran/84134
1783         * array.c (gfc_ref_dimen_size): Whitespace fixes.  If stride is
1784         zero, return false.
1786 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1788         PR fortran/84133
1789         * frontend-passes (matmul_to_var_expr): Return early if
1790         in association list.
1791         (inline_matmul_assign): Likewise.
1793 2017-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1795         PR fortran/84073
1796         * resolve.c (resolve_component): Ensure BIND(C) character
1797         components have length one.
1798         (resolve_symbol): Likewise for variables.
1800 2018-01-27  Jakub Jelinek  <jakub@redhat.com>
1802         PR fortran/84065
1803         * decl.c (add_init_expr_to_sym): Ignore initializers for too large
1804         lengths.
1806 2018-01-26  Damian Rouson  <damian@sourceryinstitute.org>
1807             Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1808             Soren Rasmussen  <s.c.rasmussen@gmail.com>
1810         Partial support for Fortran 2018 teams features.
1812         * array.c (gfc_match_array_ref): add team attribute in coarray
1813         transfers.
1814         * check.c (gfc_check_get_team, gfc_check_team_number): add new
1815         functions for get_team and team_number.
1816         * dump-parse-tree.c (show_code_node): add new statements: form team,
1817         change team, end team, and sync team.
1818         * expr.c (gfc_find_team_co): add new function.
1819         * gfortran.h: add new statements.
1820         * intrinsic.c (add_functions): add get_team and team_number functions.
1821         * intrinsic.h: add get_team and team_number prototypes for check,
1822         simplify, and resolve.
1823         * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new
1824         functions.
1825         * iso-fortran-env.def: add the team_type derived type.
1826         * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number)
1827         (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team):
1828         add change team, end team, form team, sync team match and functions.
1829         * match.h: add new prototypes for change team, end team, form team,
1830         and sync team.
1831         * parse.c (decode_statement): add cases for change team, end team,
1832         form team, and sync team.
1833         * resolve.c: add cases for exec form team, change team, end team, and
1834         sync team.
1835         * simplify.c (gfc_simplify_get_team): add new function for get team.
1836         * st.c (gfc_free_statement): add cases exec for change team, end team,
1837         form team, sync team.
1838         * trans-decl.c (gfor_fndecl_caf_form_team)
1839         (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team)
1840         (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team)
1841         (gfor_fndecl_caf_team_number): add functions and definitions.
1842         * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add
1843         new function and team_type argument support.
1844         * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team)
1845         (gfc_trans_end_team, gfc_trans_sync_team): add new functions.
1846         * trans-stmt.h: add new prototypes.
1847         * trans-types.c (gfc_get_derived_type): check condition for team_type.
1848         * trans.c (trans_code): new exec cases for form team, change team, end
1849         team, and sync team.
1850         * trans.h: add new prototypes.
1852 2018-01-26  Steven G. Kargl  <kargl@gcc.gnu.org>
1854         PR fortran/83998
1855         * simplify.c (compute_dot_product):  Initialize result to INTEGER(1) 0
1856         or .false.  The summation does the correct type conversion.
1857         (gfc_simplify_dot_product): Special case zero-sized arrays.
1859 2018-25-01  Paul Thomas  <pault@gcc.gnu.org>
1861         PR fortran/37577
1862         * array.c (gfc_match_array_ref): If standard earlier than F2008
1863         it is an error if the reference dimension is greater than 7.
1864         libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the
1865         dtype masks and shifts accordingly.
1866         * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype
1867         type node to check the field.
1868         (gfc_conv_descriptor_dtype): Access the rank field of dtype.
1869         (duplicate_allocatable_coarray): Access the rank field of the
1870         dtype descriptor rather than the dtype itself.
1871         * trans-expr.c (get_scalar_to_descriptor_type): Store the type
1872         of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE
1873         (ie. a character).
1874         (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to
1875         get_scalar_to_descriptor_type if the actual expression is a
1876         constant.
1877         (gfc_trans_structure_assign): Assign the rank directly to the
1878         dtype rank field.
1879         * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result
1880         to default integer kind.
1881         (gfc_conv_intrinsic_sizeof): Obtain the element size from the
1882         'elem_len' field of the dtype.
1883         * trans-io.c (gfc_build_io_library_fndecls): Replace
1884         gfc_int4_type_node with dtype_type_node where necessary.
1885         (transfer_namelist_element): Use gfc_get_dtype_rank_type for
1886         scalars.
1887         * trans-types.c : Provide 'get_dtype_type_node' to acces the
1888         dtype_type_node and, if necessary, build it.
1889         The maximum size of an array element is now determined by the
1890         maximum value of size_t.
1891         Update the description of the array descriptor, including the
1892         type def for the dtype_type.
1893         (gfc_get_dtype_rank_type): Build a constructor for the dtype.
1894         Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS.
1895         (gfc_get_array_descriptor_base): Change the type of the dtype
1896         field to dtype_type_node.
1897         (gfc_get_array_descr_info): Get the offset to the rank field of
1898         the dtype.
1899         * trans-types.h : Add a prototype for 'get_dtype_type_node ()'.
1900         * trans.h : Define the indices of the dtype fields.
1902 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
1904         PR fortran/83866
1905         * decl.c (gfc_match_derived_decl): If eos not matched, recover
1906         and emit error about garbage after declaration.
1908 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
1910         PR fortran/83898
1911         * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
1912         for characters.
1914 2018-01-22  Janne Blomqvist  <jb@gcc.gnu.org>
1916         PR 78534
1917         PR 83704
1918         * arith.c (gfc_arith_concat): Use size_t for string length.
1919         (gfc_compare_string): Likewise.
1920         (gfc_compare_with_Cstring): Likewise.
1921         * array.c (gfc_resolve_character_array_constructor): Use
1922         HOST_WIDE_INT, gfc_mpz_get_hwi.
1923         * check.c (gfc_check_fe_runtime_error): Use size_t.
1924         * data.c (create_character_initializer): Use HOST_WIDE_INT,
1925         gfc_extract_hwi.
1926         * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t.
1927         (add_init_expr_to_sym): Use HOST_WIDE_INT.
1928         * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT,
1929         gfc_extract_hwi.
1930         (gfc_apply_init): Likewise.
1931         * match.h (gfc_set_constant_character_len): Update prototype.
1932         * primary.c (match_string_constant): Use size_t.
1933         * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT,
1934         gfc_mpz_get_hwi.
1935         * simplify.c (init_result_expr): Likewise.
1936         (gfc_simplify_len_trim): Use size_t.
1937         * target-memory.c (gfc_encode_character): Use size_t.
1938         (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi.
1939         (interpret_array): Use size_t.
1940         (gfc_interpret_character): Likewise.
1941         * target-memory.h (gfc_encode_character): Update prototype.
1942         (gfc_interpret_character): Likewise.
1943         (gfc_target_interpret_expr): Likewise.
1944         * trans-const.c (gfc_build_string_const): Use size_t for length
1945         argument.
1946         (gfc_build_wide_string_const): Likewise.
1947         * trans-const.h (gfc_build_string_const): Likewise.
1948         (gfc_build_wide_string_const): Likewise.
1950 2018-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1952         PR fortran/83900
1953     * simplify.c (gfc_simplify_matmul): Set return type correctly.
1955 2018-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1957         PR fortran/83900
1958         * simplify.c (gfc_simplify_matmul): Delete bogus assertion.
1960 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
1962         PR fortran/83864
1963         * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
1965 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
1967         PR fortran/83874
1968         * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
1970 2018-01-15  Louis Krupp  <louis.krupp@zoho.com>
1972         PR fortran/82257
1973         * interface.c (compare_rank): Don't try to retrieve CLASS_DATA
1974         from symbol marked unlimited polymorphic.
1975         * resolve.c (resolve_structure_cons): Likewise.
1976         * misc.c (gfc_typename): Don't dereference derived->components
1977         if it's NULL.
1979 2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
1981         PR fortran/54613
1982         * gfortran.h (gfc_check_f): Rename f4ml to f5ml.
1983         (gfc_logical_4_kind): New macro
1984         * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
1985         (gfc_simplify_maxloc): Likewise.
1986         (gfc_resolve_maxloc): Likewise.
1987         (gfc_resolve_minloc): Likewise.
1988         * check.c (gfc_check_minloc_maxloc): Add checking for "back"
1989         argument; also raise error if it is used (for now). Add it
1990         if it isn't present.
1991         * intrinsic.c (add_sym_4ml): Rename to
1992         (add_sym_5ml), adjust for extra argument.
1993         (add_functions): Add "back" constant. Adjust maxloc and minloc
1994         for back argument.
1995         * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
1996         not of gfc_logical_4_kind, convert.
1997         (gfc_resolve_minloc): Likewise.
1998         * simplify.c (gfc_simplify_minloc): Add back argument.
1999         (gfc_simplify_maxloc): Likewise.
2000         * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
2001         argument to %VAL to ensure passing by value.
2002         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
2003         also for library calls.
2005 2018-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2007         PR fortran/82007
2008         * resolve.c (resolve_transfer): Delete code looking for 'DT'
2009         format specifiers in format strings. Set formatted to true if a
2010         format string or format label is present.
2011         * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix
2012         whitespace.
2014 2018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2016         PR fortran/83744
2017         * dump-parse-tree.c (get_c_type_name): Remove extra line.
2018         Change for loop to use declaration in for loop. Handle BT_LOGICAL
2019         and BT_CHARACTER.
2020         (write_decl): Add where argument. Fix indentation. Replace
2021         assert with error message. Add typename to warning
2022         in comment.
2023         (write_type): Adjust locus to call of write_decl.
2024         (write_variable): Likewise.
2025         (write_proc): Likewise. Replace assert with error message.
2027 2018-01-13  Paul Thomas  <pault@gcc.gnu.org>
2029         PR fortran/52162
2030         * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if
2031         the rhs expression is neither an elemental nor a conversion
2032         function.
2034         PR fortran/83622
2035         * trans-array.c (is_pointer_array): Remove unconditional return
2036         of false for -fopenmp.
2038 2018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2039         <emsr@gcc.gnu.org>
2041         PR fortran/83803
2042         * dump-parse-tree.c (write_proc): Always emit closing parenthesis
2043         for functions.
2045 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
2047         PR fortran/82367
2048         * resolve.c (resolve_allocate_expr): Check for NULL pointer.
2050 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
2052         PR fortran/83093
2053         * resolve.c (resolve_charlen): Check the type of cl->length
2054         after resolution.
2056 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
2058         PR fortran/83740
2059         * trans-array.c (gfc_trans_array_ctor_element): Fix formatting.
2061 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
2063         PR fortran/83740
2064         * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the
2065         LHS type when assigning.
2067 2018-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2069         PR fortran/83742
2070         * expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
2072 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2074         * match.c (gfc_match_allocate): Check for NULL pointer.
2076 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2078         * expr.c (gfc_check_pointer_assign): Fix typo in comment.
2080 2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
2082         PR fortran/83611
2083         * decl.c (gfc_get_pdt_instance): If parameterized arrays have
2084         an initializer, convert the kind parameters and add to the
2085         component if the instance.
2086         * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
2087         use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
2088         for parameterized arrays. Clean up typos in comments. Convert
2089         parameterized array initializers and copy into the array.
2090         * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
2091         parameterized types.
2092         *trans-stmt.c (trans_associate_var): Deallocate associate vars
2093         as necessary, when they are PDT function results for example.
2095         PR fortran/83731
2096         * trans-array.c (structure_alloc_comps): Only compare len parms
2097         when they are declared explicitly.
2099 2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
2101         PR fortran/50892
2102         * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
2103         lhs type.
2105 2018-01-05  Janne Blomqvist  <jb@gcc.gnu.org>
2107         PR fortran/78534
2108         PR fortran/66310
2109         * array.c (got_charlen): Use gfc_charlen_int_kind.
2110         * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
2111         hardcoded kind.
2112         (find_intrinsic_vtab): Likewise.
2113         * decl.c (match_char_length): Use gfc_charlen_int_kind.
2114         (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind.
2115         (gfc_match_implicit): Use gfc_charlen_int_kind.
2116         * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t.
2117         (show_expr): Use HOST_WIDE_INT_PRINT_DEC.
2118         * expr.c (gfc_get_character_expr): Length parameter of type
2119         gfc_charlen_t.
2120         (gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
2121         (gfc_extract_hwi): New function.
2122         (simplify_const_ref): Make string_len of type gfc_charlen_t.
2123         (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
2124         * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind.
2125         * gfortran.h (gfc_mpz_get_hwi): New prototype.
2126         (gfc_mpz_set_hwi): Likewise.
2127         (gfc_charlen_t): New typedef.
2128         (gfc_expr): Use gfc_charlen_t for character lengths.
2129         (gfc_size_kind): New extern variable.
2130         (gfc_extract_hwi): New prototype.
2131         (gfc_get_character_expr): Use gfc_charlen_t for character length.
2132         (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
2133         * gfortran.texi: Update description of hidden string length argument.
2134         * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind.
2135         (gfc_resolve_char_achar): Likewise.
2136         (gfc_resolve_repeat): Pass string length directly without
2137         temporary, use gfc_charlen_int_kind.
2138         (gfc_resolve_transfer): Use gfc_charlen_int_kind.
2139         * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
2140         * misc.c (gfc_mpz_get_hwi): New function.
2141         (gfc_mpz_set_hwi): New function.
2142         * module.c (atom_int): Change type from int to HOST_WIDE_INT.
2143         (parse_integer): Don't complain about large integers.
2144         (write_atom): Use HOST_WIDE_INT for integers.
2145         (mio_integer): Handle integer type mismatch.
2146         (mio_hwi): New function.
2147         (mio_intrinsic_op): Use HOST_WIDE_INT.
2148         (mio_array_ref): Likewise.
2149         (mio_expr): Likewise.
2150         * primary.c (match_substring): Use gfc_charlen_int_kind.
2151         * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind.
2152         (resolve_character_operator): Likewise.
2153         (resolve_assoc_var): Likewise.
2154         (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf.
2155         (resolve_charlen): Use mpz_sgn to determine sign.
2156         * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
2157         instead of long.
2158         * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind.
2159         * target-memory.c (size_character): Length argument of type
2160         gfc_charlen_t.
2161         (gfc_encode_character): Likewise.
2162         (gfc_interpret_character): Use gfc_charlen_t.
2163         * target-memory.h (gfc_encode_character): Modify prototype.
2164         * trans-array.c (gfc_trans_array_ctor_element): Use existing type.
2165         (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type.
2166         (trans_array_constructor): Use existing type.
2167         (get_array_charlen): Likewise.
2168         * trans-const.c (gfc_conv_mpz_to_tree_type): New function.
2169         * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
2170         * trans-decl.c (gfc_trans_deferred_vars): Use existing type.
2171         (add_argument_checking): Likewise.
2172         * trans-expr.c (gfc_class_len_or_zero_get): Build const of type
2173         gfc_charlen_type_node.
2174         (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
2175         4, fold_convert to correct type.
2176         (gfc_conv_class_to_class): Build const of type size_type_node for
2177         size.
2178         (gfc_copy_class_to_class): Likewise.
2179         (gfc_conv_string_length): Use same type in expression.
2180         (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
2181         (gfc_conv_string_tmp): Make sure len is of the right type.
2182         (gfc_conv_concat_op): Use same type in expression.
2183         (gfc_conv_procedure_call): Likewise.
2184         (fill_with_spaces): Comment out memset() block due to spurious
2185         -Wstringop-overflow warnings.
2186         (gfc_trans_string_copy): Use gfc_charlen_type_node.
2187         (alloc_scalar_allocatable_for_subcomponent_assignment):
2188         fold_convert to right type.
2189         (gfc_trans_subcomponent_assign): Likewise.
2190         (trans_class_vptr_len_assignment): Build const of correct type.
2191         (gfc_trans_pointer_assignment): Likewise.
2192         (alloc_scalar_allocatable_for_assignment): fold_convert to right
2193         type in expr.
2194         (trans_class_assignment): Build const of correct type.
2195         * trans-intrinsic.c (gfc_conv_associated): Likewise.
2196         (gfc_conv_intrinsic_repeat): Do calculation in sizetype.
2197         * trans-io.c (gfc_build_io_library_fndecls): Use
2198         gfc_charlen_type_node for character lengths.
2199         (set_string): Convert to right type in assignment.
2200         * trans-stmt.c (gfc_trans_label_assign): Build const of
2201         gfc_charlen_type_node.
2202         (trans_associate_var): Likewise.
2203         (gfc_trans_character_select): Likewise.
2204         (gfc_trans_allocate): Likewise, don't typecast strlen result.
2205         (gfc_trans_deallocate): Don't typecast strlen result.
2206         * trans-types.c (gfc_size_kind): New variable.
2207         (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
2208         from size_type_node.
2209         * trans-types.h: Fix comment.
2211 2018-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
2213         PR fortran/83683
2214         PR fortran/45689
2215         * check.c (gfc_check_eoshift): Check for string length and
2216         for conformance of boundary.
2217         * intrinsic.c (add_functions): Add gfc_simplify_eoshift.
2218         * intrinsic.h: Add prototype for gfc_simplify_eoshift.
2219         * simplify.c (gfc_simplify_eoshift): New function.
2221 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
2222             Alan Hayward  <alan.hayward@arm.com>
2223             David Sherwood  <david.sherwood@arm.com>
2225         * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
2227 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
2228             Alan Hayward  <alan.hayward@arm.com>
2229             David Sherwood  <david.sherwood@arm.com>
2231         * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
2233 2018-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2235         PR fortran/83664
2236         * check.c (gfc_check_eoshift): Error for missing boundary if array
2237         is not one of the standard types.
2239 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
2241         Update copyright years.
2243         * gfortranspec.c (lang_specific_driver): Update copyright notice
2244         dates.
2245         * gfc-internals.texi: Bump @copying's copyright year.
2246         * gfortran.texi: Ditto.
2247         * intrinsic.texi: Ditto.
2248         * invoke.texi: Ditto.
2250 2017-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2252         PR fortran/45689
2253         * intrinsic.c (add_function): Add gfc_simplify_maxloc and
2254         gfc_simplify_minloc to maxloc and minloc, respectively.
2255         * intrinsic.h: Add prototypes for gfc_simplify_minloc
2256         and gfc_simplify_maxloc.
2257         * simplify.c (min_max_chose): Adjust prototype.  Modify function
2258         to have a return value which indicates if the extremum was found.
2259         (is_constant_array_expr): Fix typo in comment.
2260         (simplify_minmaxloc_to_scalar): New function.
2261         (simplify_minmaxloc_nodim): New function.
2262         (new_array): New function.
2263         (simplify_minmaxloc_to_array): New function.
2264         (gfc_simplify_minmaxloc): New function.
2265         (simplify_minloc): New function.
2266         (simplify_maxloc): New function.
2268 2018-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2270         PR fortran/45689
2271         PR fortran/83650
2272         * simplify.c (gfc_simplify_cshift): Re-implement to allow full
2273         range of arguments.
2275 2018-01-01  Paul Thomas  <pault@gcc.gnu.org>
2277         PR fortran/83076
2278         * resolve.c (resolve_fl_derived0): Add caf_token fields for
2279         allocatable and pointer scalars, when -fcoarray selected.
2280         * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token
2281         field as well as the backend_decl.
2282         (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module
2283         derived types that are not vtypes. Components with caf_token
2284         attribute are pvoid types. For a component requiring it, find
2285         the caf_token field and have the component token field point to
2286         its backend_decl.
2288         PR fortran/83319
2289         *trans-types.c (gfc_get_array_descriptor_base): Add the token
2290         field to the descriptor even when codimen not set.
2292 Copyright (C) 2018 Free Software Foundation, Inc.
2294 Copying and distribution of this file, with or without modification,
2295 are permitted in any medium without royalty provided the copyright
2296 notice and this notice are preserved.