Don't warn when alignment of global common data exceeds maximum alignment.
[official-gcc.git] / gcc / fortran / ChangeLog-2020
blob66e39f553c61f4bf9bd2ced7afdc6b89466a683d
1 2020-12-29  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/97612
4         * primary.c (build_actual_constructor): Missing allocatable
5         components are set unallocated using EXPR_NULL. Then missing
6         components are tested for a default initializer.
8 2020-12-29  Paul Thomas  <pault@gcc.gnu.org>
10         PR fortran/93833
11         * trans-array.c (get_array_ctor_var_strlen): If the character
12         length backend_decl cannot be found, convert the expression and
13         use the string length. Clear up some minor white space issues
14         in the rest of the file.
16 2020-12-27  Paul Thomas  <pault@gcc.gnu.org>
18         PR fortran/97694
19         PR fortran/97723
20         * check.c (allocatable_check): Select rank temporaries are
21         permitted even though they are treated as associate variables.
22         * resolve.c (gfc_resolve_code): Break on select rank as well as
23         select type so that the block os resolved.
24         * trans-stmt.c (trans_associate_var): Class associate variables
25         that are optional dummies must use the backend_decl.
27 2020-12-26  Paul Thomas  <pault@gcc.gnu.org>
29         PR fortran/98022
30         * data.c (gfc_assign_data_value): Throw an error for inquiry
31         references. Follow with corrected code that would provide the
32         expected result and provides clean error recovery.
34 2020-12-26  Paul Thomas  <pault@gcc.gnu.org>
36         PR fortran/83118
37         * trans-array.c (gfc_alloc_allocatable_for_assignment): Make
38         sure that class expressions are captured for dummy arguments by
39         use of gfc_get_class_from_gfc_expr otherwise the wrong vptr is
40         used.
41         * trans-expr.c (gfc_get_class_from_gfc_expr): New function.
42         (gfc_get_class_from_expr): If a constant expression is
43         encountered, return NULL_TREE;
44         (gfc_trans_assignment_1): Deallocate rhs allocatable components
45         after passing derived type function results to class lhs.
46         * trans.h : Add prototype for gfc_get_class_from_gfc_expr.
48 2020-12-25  Harald Anlauf  <anlauf@gmx.de>
50         * data.c (gfc_assign_data_value): Restrict use of
51         create_character_initializer to constant initializers.
52         * trans-expr.c (gfc_conv_initializer): Ensure that character
53         initializer is constant, otherwise fall through to get the same
54         error handling as for non-character cases.
56 2020-12-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
58         * trans.c (create_var_debug_raw): Set DECL_ARTIFICIAL
59         on variables.
61 2020-12-18  Paul Thomas  <pault@gcc.gnu.org>
63         PR fortran/83118
64         PR fortran/96012
65         * resolve.c (resolve_ordinary_assign): Generate a vtable if
66         necessary for scalar non-polymorphic rhs's to unlimited lhs's.
67         * trans-array.c (get_class_info_from_ss): New function.
68         (gfc_trans_allocate_array_storage): Defer obtaining class
69         element type until all sources of class exprs are tried. Use
70         class API rather than TREE_OPERAND. Look for class expressions
71         in ss->info by calling get_class_info_from_ss. After, obtain
72         the element size for class descriptors. Where the element type
73         is unknown, cast the data as character(len=size) to overcome
74         unlimited polymorphic problems.
75         (gfc_conv_ss_descriptor): Do not fix class variable refs.
76         (build_class_array_ref, structure_alloc_comps): Replace code
77         replicating the new function gfc_resize_class_size_with_len.
78         (gfc_alloc_allocatable_for_assignment): Obtain element size
79         for lhs in cases of deferred characters and class enitities.
80         Move code for the element size of rhs to start of block. Clean
81         up extraction of class parameters throughout this function.
82         After the shape check test whether or not the lhs and rhs
83         element sizes are the same. Use earlier evaluation of
84         'cond_null'. Reallocation of lhs only to happen if size changes
85         or element size changes.
86         * trans-expr.c (gfc_resize_class_size_with_len): New function.
87         (gfc_get_class_from_expr): If a constant expression is
88         encountered, return NULL_TREE;
89         (trans_scalar_class_assign): New function.
90         (gfc_conv_procedure_call): Ensure the vtable is present for
91         passing a non-class actual to an unlimited formal.
92         (trans_class_vptr_len_assignment): For expressions of type
93         BT_CLASS, extract the class expression if necessary. Use a
94         statement block outside the loop body. Ensure that 'rhs' is
95         of the correct type. Obtain rhs vptr in all circumstances.
96         (gfc_trans_scalar_assign): Call trans_scalar_class_assign to
97         make maximum use of the vptr copy in place of assignment.
98         (trans_class_assignment): Actually do reallocation if needed.
99         (gfc_trans_assignment_1): Simplify some of the logic with
100         'realloc_flag'. Set 'vptr_copy' for all array assignments to
101         unlimited polymorphic lhs.
102         * trans.c (gfc_build_array_ref): Call gfc_resize_class_size_
103         with_len to correct span for unlimited polymorphic decls.
104         * trans.h : Add prototype for gfc_resize_class_size_with_len.
106 2020-12-17  Tobias Burnus  <tobias@codesourcery.com>
108         PR fortran/92587
109         * match.c (gfc_match_assignment): Move gfc_find_vtab call from here ...
110         * resolve.c (gfc_resolve_code): ... to here.
112 2020-12-17  Harald Anlauf  <anlauf@gmx.de>
114         PR fortran/98307
115         * trans-stmt.c (check_forall_dependencies): Extend dependency
116         check to allocatable components of derived types.
118 2020-12-16  Harald Anlauf  <anlauf@gmx.de>
120         PR fortran/98284
121         * resolve.c (check_data_variable): Reject DATA elements with the
122         ALLOCATABLE attribute.
124 2020-12-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
126         PR fortran/90207
127         * invoke.texi: Document -fdebug-aux-vars.
128         * lang.opt: Add -fdebug-aux-vars.
129         * trans.c (MAX_PREFIX_LEN): New macro.
130         (create_var_debug_raw): New function.
131         (gfc_create_var_np): Call create_var_debug_raw if
132         flag_debug_aux_vars is set.
134 2020-12-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
136         * dump-parse-tree.c (show_array_ref): Also show coarrays.
137         (debug): Implement for array reference.
139 2020-12-12  Paul Thomas  <pault@gcc.gnu.org>
141         PR fortran/98022
142         * data.c (gfc_assign_data_value): Handle inquiry references in
143         the data statement object list.
145 2020-12-08  Tobias Burnus  <tobias@codesourcery.com>
147         * dump-parse-tree.c (show_omp_clauses, show_omp_node,
148         show_code_node): Handle OMP SCAN.
149         * gfortran.h (enum gfc_statement): Add ST_OMP_SCAN.
150         (enum): Add OMP_LIST_SCAN_IN and OMP_LIST_SCAN_EX.
151         (enum gfc_exec_op): Add EXEC_OMP_SCAN.
152         * match.h (gfc_match_omp_scan): New prototype.
153         * openmp.c (gfc_match_omp_scan): New.
154         (gfc_match_omp_taskgroup): Cleanup.
155         (resolve_omp_clauses, gfc_resolve_omp_do_blocks,
156         omp_code_to_statement, gfc_resolve_omp_directive): Handle 'omp scan'.
157         * parse.c (decode_omp_directive, next_statement,
158         gfc_ascii_statement): Likewise.
159         * resolve.c (gfc_resolve_code): Handle EXEC_OMP_SCAN.
160         * st.c (gfc_free_statement): Likewise.
161         * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_do,
162         gfc_split_omp_clauses): Handle 'omp scan'.
164 2020-12-05  Paul Thomas  <pault@gcc.gnu.org>
166         PR fortran/98016
167         * resolve.c (resolve_symbol): Set formal_arg_flag before
168         resolving an array spec and restore value afterwards.
170 2020-12-03  Harald Anlauf  <anlauf@gmx.de>
172         PR fortran/95342
173         * decl.c (gfc_match_function_decl): Avoid NULL pointer dereference.
174         (gfc_match_subroutine): Likewise.
176 2020-11-30  Tobias Burnus  <tobias@codesourcery.com>
178         PR fortran/98011
179         * scanner.c (skip_free_comments, skip_fixed_comments): If only
180         -fopenacc but not -fopenmp is used, ignore OpenMP's conditional
181         compilation sentinels. Fix indentation, use 'else if' for readability.
183 2020-11-30  Tobias Burnus  <tobias@codesourcery.com>
185         PR fortran/98010
186         PR fortran/98013
187         * options.c (gfc_post_options): Also imply recursive with
188         -fopenacc.
189         * trans-decl.c (gfc_generate_function_code): Simplify condition.
191 2020-11-30  Tobias Burnus  <tobias@codesourcery.com>
193         * dump-parse-tree.c (show_expr): Use '==' not '=' for '.eq.'.
195 2020-11-29  Harald Anlauf  <anlauf@gmx.de>
197         * expr.c (simplify_parameter_variable): Fix up character length
198         after copying an array-valued expression.
200 2020-11-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
202         PR fortran/97454
203         * trans-decl.c (gfc_get_extern_function_decl): Add argument
204         fnspec.
205         * trans-intrinsic.c (MAX_SPEC_ARG): Define.
206         (intrinsic_fnspec): New function.
207         (ADD_CHAR): Define.
208         (specific_intrinsic_symbol): Adjust comment. Pass
209         fn spec to gfc_get_extern_function_decl.
210         (gfc_conv_intrinsic_funcall): Add ANY, ALL, NORM2, PRODUCT
211         and SUM intrnisic. Add FIXME for cshift et al.
212         * trans-types.c (gfc_get_function_type): Add fnspec argument,
213         handle it.
214         * trans-types.h (gfc_get_function_type): Add optinal fnspec
215         argument.
216         * trans.h (gfc_get_extern_function_decl): Likewise.
218 2020-11-25  Harald Anlauf  <anlauf@gmx.de>
220         PR fortran/85796
221         * resolve.c (traverse_data_list): Fix copy&paste errors; catch
222         step=0 in implied do loop.
224 2020-11-20  Jakub Jelinek  <jakub@redhat.com>
226         PR other/97911
227         * Make-lang.in (fortran.serial): Change from goal to a variable.
228         (.PHONY): Drop fortran.serial and fortran.prev.
229         (f951$(exeext)): Depend on $(fortran.serial) rather than
230         fortran.serial.
232 2020-11-18  Jakub Jelinek  <jakub@redhat.com>
234         * Make-lang.in (fortran.serial): New goal.
235         (.PHONY): Add fortran.serial fortran.prev.
236         (f951$(exeext)): Depend on fortran.prev.  Call LINK_PROGRESS.
238 2020-11-17  Harald Anlauf  <anlauf@gmx.de>
240         * gfortran.texi: Fix description of GFC_RTCHECK_* to match actual
241         code.
243 2020-11-16  Harald Anlauf  <anlauf@gmx.de>
245         * trans-intrinsic.c (gfc_conv_intrinsic_size): Generate runtime
246         checking code for status of argument.
248 2020-11-13  Gergö Barany  <gergo@codesourcery.com>
249             Thomas Schwinge  <thomas@codesourcery.com>
251         * lang.opt (fopenacc-kernels): Add.
253 2020-11-12  Jakub Jelinek  <jakub@redhat.com>
255         * f95-lang.c (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST):
256         Define.
257         (gfc_init_builtin_functions): Add alloc_size and warn_unused_result
258         attributes to __builtin_GOMP_alloc.
259         * types.def (BT_PTRMODE): New primitive type.
260         (BT_FN_VOID_PTR_PTRMODE, BT_FN_PTR_SIZE_SIZE_PTRMODE): New function
261         types.
263 2020-11-12  Tobias Burnus  <tobias@codesourcery.com>
265         PR fortran/97782
266         * trans-openmp.c (gfc_trans_oacc_construct, gfc_trans_omp_parallel_do,
267         gfc_trans_omp_parallel_do_simd, gfc_trans_omp_parallel_sections,
268         gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
269         gfc_trans_omp_single, gfc_trans_omp_task, gfc_trans_omp_teams
270         gfc_trans_omp_target, gfc_trans_omp_target_data,
271         gfc_trans_omp_workshare): Use code->loc instead of input_location
272         when building the OMP_/OACC_ construct.
274 2020-11-11  Jakub Jelinek  <jakub@redhat.com>
276         PR fortran/97768
277         * misc.c (gfc_typename): Use ex->value.character.length only if
278         ex->expr_type == EXPR_CONSTANT.  If ex->ts.deferred, print : instead
279         of length.  If ex->ts.u.cl && ex->ts.u.cl->length == NULL, print *
280         instead of length.  Otherwise if character length is non-constant,
281         print just CHARACTER or CHARACTER(KIND=N).
283 2020-11-10  Tobias Burnus  <tobias@codesourcery.com>
285         * dump-parse-tree.c (show_omp_clauses): Handle new reduction enums.
286         * gfortran.h (OMP_LIST_REDUCTION_INSCAN, OMP_LIST_REDUCTION_TASK,
287         OMP_LIST_IN_REDUCTION, OMP_LIST_TASK_REDUCTION): Add enums.
288         * openmp.c (enum omp_mask1): Add OMP_CLAUSE_IN_REDUCTION
289         and OMP_CLAUSE_TASK_REDUCTION.
290         (gfc_match_omp_clause_reduction): Extend reduction handling;
291         moved from ...
292         (gfc_match_omp_clauses): ... here. Add calls to it.
293         (OMP_TASK_CLAUSES, OMP_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES):
294         Add OMP_CLAUSE_IN_REDUCTION.
295         (gfc_match_omp_taskgroup): Add task_reduction matching.
296         (resolve_omp_clauses): Update for new reduction clause changes;
297         remove removed nonmonotonic-schedule restrictions.
298         (gfc_resolve_omp_parallel_blocks): Add new enums to switch.
299         * trans-openmp.c (gfc_omp_clause_default_ctor,
300         gfc_trans_omp_reduction_list, gfc_trans_omp_clauses,
301         gfc_split_omp_clauses): Handle updated reduction clause.
303 2020-11-10  Tobias Burnus  <tobias@codesourcery.com>
305         PR fortran/95847
306         * trans-decl.c (gfc_get_symbol_decl): Do not (re)set the location
307         of an external procedure.
308         (build_entry_thunks, generate_coarray_init, create_main_function,
309         gfc_generate_function_code): Use fndecl's location in BIND_EXPR.
311 2020-11-09  Tobias Burnus  <tobias@codesourcery.com>
313         PR fortran/90111
314         * parse.c (case_decl): Move ST_OACC_ROUTINE and ST_OACC_DECLARE to ...
315         (case_omp_decl): ... here.
316         (verify_st_order): Update comment.
318 2020-11-06  Thomas Schwinge  <thomas@codesourcery.com>
320         * openmp.c (oacc_is_parallel, resolve_oacc_params_in_parallel):
321         Remove.
322         (resolve_oacc_loop_blocks): Don't call the former.
324 2020-11-06  Tobias Burnus  <tobias@codesourcery.com>
326         * openmp.c (gfc_match_oacc_atomic): No longer accept 'update capture'.
328 2020-11-06  Tobias Burnus  <tobias@codesourcery.com>
330         PR fortran/97652
331         * module.c (mio_symbol): Fix symbol name for pdt_type.
333 2020-11-03  Nathan Sidwell  <nathan@acm.org>
335         * cpp.c (gfc_cpp_add_dep): Only add dependency if we're recording
336         them.
337         (gfc_cpp_init): Likewise for target.
339 2020-11-03  Tobias Burnus  <tobias@codesourcery.com>
341         * decl.c (ext_attr_list): Add EXT_ATTR_DEPRECATED.
342         * gfortran.h (ext_attr_id_t): Ditto.
343         * gfortran.texi (GCC$ ATTRIBUTES): Document it.
344         * resolve.c (resolve_variable, resolve_function,
345         resolve_call, resolve_values): Show -Wdeprecated-declarations warning.
346         * trans-decl.c (add_attributes_to_decl): Skip those
347         with no middle_end_name.
349 2020-11-03  Thomas Schwinge  <thomas@codesourcery.com>
351         PR fortran/92793
352         * trans-openmp.c (gfc_trans_omp_clauses): More precise location
353         information for OpenACC 'gang', 'worker', 'vector' clauses with
354         argument.
356 2020-11-02  Thomas Schwinge  <thomas@codesourcery.com>
358         PR fortran/92793
359         * trans.c (gfc_set_backend_locus): Use 'gfc_get_location'.
360         (gfc_restore_backend_locus): Adjust.
362 2020-11-02  Tobias Burnus  <tobias@codesourcery.com>
364         PR fortran/97655
365         * openmp.c (gfc_match_omp_atomic): Fix mem-order handling;
366         reject specifying update + capture together.
368 2020-10-30  Tobias Burnus  <tobias@codesourcery.com>
370         * dump-parse-tree.c (show_omp_clauses): Handle atomic clauses.
371         (show_omp_node): Call it for atomic.
372         * gfortran.h (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_UNSET,
373         remove GFC_OMP_ATOMIC_SEQ_CST and GFC_OMP_ATOMIC_ACQ_REL.
374         (enum gfc_omp_memorder): Replace OMP_MEMORDER_LAST by
375         OMP_MEMORDER_UNSET, add OMP_MEMORDER_SEQ_CST/OMP_MEMORDER_RELAXED.
376         (gfc_omp_clauses): Add capture and atomic_op.
377         (gfc_code): remove omp_atomic.
378         * openmp.c (enum omp_mask1): Add atomic, capture, memorder clauses.
379         (gfc_match_omp_clauses): Match them.
380         (OMP_ATOMIC_CLAUSES): Add.
381         (gfc_match_omp_flush): Update for 'last' to 'unset' change.
382         (gfc_match_omp_oacc_atomic): Removed and placed content ..
383         (gfc_match_omp_atomic): ... here. Update for OpenMP 5 clauses.
384         (gfc_match_oacc_atomic): Match directly here.
385         (resolve_omp_atomic, gfc_resolve_omp_directive): Update.
386         * parse.c (parse_omp_oacc_atomic): Update for struct gfc_code changes.
387         * resolve.c (gfc_resolve_blocks): Update assert.
388         * st.c (gfc_free_statement): Also call for EXEC_O{ACC,MP}_ATOMIC.
389         * trans-openmp.c (gfc_trans_omp_atomic): Update.
390         (gfc_trans_omp_flush): Update for 'last' to 'unset' change.
392 2020-10-30  Jan Hubicka  <jh@suse.cz>
394         * trans-types.c: Include alias.h
395         (gfc_get_array_type_bounds): Set typeless storage.
397 2020-10-27  Harald Anlauf  <anlauf@gmx.de>
399         * resolve.c (gfc_impure_variable): A dummy argument with the VALUE
400         attribute may be redefined without making a procedure impure.
402 2020-10-27  Richard Biener  <rguenther@suse.de>
404         * trans-array.c (gfc_get_descriptor_field): New helper.
405         (gfc_conv_descriptor_data_get): Use it - drop strange
406         REFERENCE_TYPE handling and make sure we don't trigger it.
407         (gfc_conv_descriptor_data_addr): Use gfc_get_descriptor_field.
408         (gfc_conv_descriptor_data_set): Likewise.
409         (gfc_conv_descriptor_offset): Likewise.
410         (gfc_conv_descriptor_dtype): Likewise.
411         (gfc_conv_descriptor_span): Likewise.
412         (gfc_get_descriptor_dimension): Likewise.
413         (gfc_conv_descriptor_token): Likewise.
414         (gfc_conv_descriptor_subfield): New helper.
415         (gfc_conv_descriptor_stride): Use it.
416         (gfc_conv_descriptor_lbound): Likewise.
417         (gfc_conv_descriptor_ubound): Likewise.
419 2020-10-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
421         PR fortran/97454
422         * gfortran.h (gfc_symbol): Add pass_as_value flag.
423         (gfc_copy_formal_args_intr): Add optional argument
424         copy_type.
425         (gfc_get_intrinsic_function_symbol): Add prototype.
426         (gfc_find_intrinsic_symbol): Add prototype.
427         * intrinsic.c (gfc_get_intrinsic_function_symbol): New function.
428         (gfc_find_intrinsic_symbol): New function.
429         * symbol.c (gfc_copy_formal_args_intr): Add argument. Handle case
430         where the type needs to be copied from the actual argument.
431         * trans-intrinsic.c (remove_empty_actual_arguments): New function.
432         (specific_intrinsic_symbol): New function.
433         (gfc_conv_intrinsic_funcall): Use it.
434         (strip_kind_from_actual): Adjust so that the expression pointer
435         is set to NULL.
436         (gfc_conv_intrinsic_minmaxloc): Likewise.
437         (gfc_conv_intrinsic_minmaxval): Adjust removal of dim.
438         * trans-types.c (gfc_sym_type): If sym->pass_as_value is set, do
439         not pass by reference.
441 2020-10-22  Tobias Burnus  <tobias@codesourcery.com>
443         * gfortran.h (enum gfc_omp_memorder): Add.
444         (gfc_omp_clauses): Use it.
445         * openmp.c (gfc_match_omp_flush): Match memorder clauses.
446         * trans-openmp.c (gfc_trans_omp_flush): Handle them.
447         (gfc_trans_omp_directive): Update call.
449 2020-10-21  Tobias Burnus  <tobias@codesourcery.com>
451         PR fortran/45516
452         * class.c: Add _deallocate to the vtable documentation
453         comment.
455 2020-10-16  Harald Anlauf  <anlauf@gmx.de>
457         PR fortran/95979
458         * expr.c (gfc_check_init_expr): Fix check of return code from
459         gfc_intrinsic_func_interface.
460         * intrinsic.c (gfc_intrinsic_func_interface): Add further attempt
461         of simplification of elemental intrinsics with array arguments.
462         * iresolve.c (gfc_resolve_index_func): Keep optional KIND argument
463         for simplification of elemental use of INDEX.
465 2020-10-15  Andre Vehreschild  <vehre@gcc.gnu.org>
467         * trans-decl.c (gfc_build_builtin_function_decls): Fix the coarray fndecls.
469 2020-10-14  Tobias Burnus  <tobias@codesourcery.com>
471         PR fortran/97390
472         * scanner.c (load_line): Fix line-truncation warning for !$acc
473         and !gcc$ in free-form source code.
475 2020-10-14  Steven G. Kargl  <kargl@gcc.gnu.org>
476             Mark Eggleston  <markeggleston@gcc.gnu.org>
478         PR fortran/95614
479         * decl.c (gfc_get_common): Use gfc_match_common_name instead
480         of match_common_name.
481         * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
482         of match_common_name.
483         * match.c : Rename match_common_name to gfc_match_common_name.
484         * match.c (gfc_match_common): Use gfc_match_common_name instead
485         of match_common_name.
486         * match.h : Rename match_common_name to gfc_match_common_name.
487         * resolve.c (resolve_common_vars): Check each symbol in a
488         common block has a global symbol.  If there is a global symbol
489         issue an error if the symbol type is a module or a program.
491 2020-10-12  Mark Eggleston  <markeggleston@gcc.gnu.org>
493         PR fortran/96099
494         * decl.c (gfc_match_implicit): Check for numeric and logical
495         types.
497 2020-10-07  Paul Thomas  <pault@gcc.gnu.org>
499         PR fortran/47469
500         * trans-expr.c (arrayfunc_assign_needs_temporary): Tidy detection
501         of pointer and allocatable functions.
503 2020-10-04  Harald Anlauf  <anlauf@gmx.de>
505         PR fortran/97272
506         * trans-intrinsic.c (strip_kind_from_actual): Helper function for
507         removal of KIND argument.
508         (gfc_conv_intrinsic_minmaxloc): Ignore KIND argument here, as it
509         is treated elsewhere.
511 2020-10-02  Jan Hubicka  <hubicka@ucw.cz>
513         * trans-decl.c (gfc_build_library_function_decl_with_spec): Verify
514         fnspec.
515         (gfc_build_intrinsic_function_decls): Update fnspecs.
516         (gfc_build_builtin_function_decls): Update fnspecs.
517         * trans-io.c (gfc_build_io_library_fndecls): Update fnspecs.
518         * trans-types.c (create_fn_spec): Update fnspecs.
520 2020-09-30  Jan Hubicka  <jh@suse.cz>
522         * trans-decl.c (gfc_build_intrinsic_function_decls): Add traling dots
523         to spec strings so they match the number of parameters; do not use
524         R and W for non-pointer parameters. Drop pointless specifier on
525         caf_stop_numeric and caf_get_team.
527 2020-09-30  Jan Hubicka  <hubicka@ucw.cz>
529         * trans-io.c (gfc_build_io_library_fndecls): Add trailing dots so
530         length of spec string matches number of arguments.
532 2020-09-30  Tobias Burnus  <tobias@codesourcery.com>
534         PR fortran/97242
535         * expr.c (gfc_is_not_contiguous): Fix check.
536         (gfc_check_pointer_assign): Use it.
538 2020-09-30  Paul Thomas  <pault@gcc.gnu.org>
540         PR fortran/97045
541         * trans-array.c (gfc_conv_array_ref): Make sure that the class
542         decl is passed to build_array_ref in the case of unlimited
543         polymorphic entities.
544         * trans-expr.c (gfc_conv_derived_to_class): Ensure that array
545         refs do not preceed the _len component. Free the _len expr.
546         * trans-stmt.c (trans_associate_var): Reset 'need_len_assign'
547         for polymorphic scalars.
548         * trans.c (gfc_build_array_ref): When the vptr size is used for
549         span, multiply by the _len field of unlimited polymorphic
550         entities, when non-zero.
552 2020-09-30  Tom de Vries  <tdevries@suse.de>
554         * f95-lang.c (gfc_init_builtin_functions):  Update
555         targetm.libc_has_function call.
557 2020-09-28  Mark Eggleston  <markeggleston@gcc.gnu.org>
559         Revert:
560         2020-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
561                     Mark Eggleston  <markeggleston@gcc.gnu.org>
563         PR fortran/95614
564         * decl.c (gfc_get_common): Use gfc_match_common_name instead
565         of match_common_name.
566         * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
567         of match_common_name.
568         * match.c : Rename match_common_name to gfc_match_common_name.
569         * match.c (gfc_match_common): Use gfc_match_common_name instead
570         of match_common_name.
571         * match.h : Rename match_common_name to gfc_match_common_name.
572         * resolve.c (resolve_common_vars): Check each symbol in a
573         common block has a global symbol.  If there is a global symbol
574         issue an error if the symbol type is known as is not a common
575         block name.
577 2020-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
578             Mark Eggleston  <markeggleston@gcc.gnu.org>
580         PR fortran/95614
581         * decl.c (gfc_get_common): Use gfc_match_common_name instead
582         of match_common_name.
583         * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
584         of match_common_name.
585         * match.c : Rename match_common_name to gfc_match_common_name.
586         * match.c (gfc_match_common): Use gfc_match_common_name instead
587         of match_common_name.
588         * match.h : Rename match_common_name to gfc_match_common_name.
589         * resolve.c (resolve_common_vars): Check each symbol in a
590         common block has a global symbol.  If there is a global symbol
591         issue an error if the symbol type is known as is not a common
592         block name.
594 2020-09-24  Paul Thomas  <pault@gcc.gnu.org>
596         PR fortran/96495
597         * trans-expr.c (gfc_conv_procedure_call): Take the deallocation
598         of allocatable result components of a scalar result outside the
599         scalarization loop. Find and use the stored result.
601 2020-09-21  Harald Anlauf  <anlauf@gmx.de>
602             Paul Thomas   <pault@gcc.gnu.org>
604         * iresolve.c (gfc_resolve_mvbits): Remove unneeded conversion of
605         FROMPOS, LEN and TOPOS arguments to fit a C int.
606         * trans-intrinsic.c (gfc_conv_intrinsic_mvbits): Add inline
607         expansion of MVBITS intrinsic elemental subroutine and add code
608         for runtime argument checking.
609         (gfc_conv_intrinsic_subroutine): Recognise MVBITS intrinsic, but
610         defer handling to gfc_trans_call.
611         * trans-stmt.c (replace_ss):
612         (gfc_trans_call): Adjust to handle inline expansion, scalarization
613         of intrinsic subroutine MVBITS in gfc_conv_intrinsic_mvbits.
614         * trans.h (gfc_conv_intrinsic_mvbits): Add prototype for
615         gfc_conv_intrinsic_mvbits.
617 2020-09-19  Sandra Loosemore  <sandra@codesourcery.com>
619         * interface.c (gfc_compare_actual_formal): Add assertion after
620         main processing loop to silence maybe-uninitialized error.
622 2020-09-19  Harald Anlauf  <anlauf@gmx.de>
624         * symbol.c (gfc_check_conflict): Allow ELEMENTAL RECURSIVE
625         procedure prefix for -std=f2018.
627 2020-09-17  Tobias Burnus  <tobias@codesourcery.com>
629         PR fortran/96041
630         PR fortran/93423
631         * decl.c (gfc_match_submod_proc): Avoid later double-free
632         in the error case.
634 2020-09-16  Tobias Burnus  <tobias@codesourcery.com>
636         PR fortran/97061
637         * trans-openmp.c (gfc_trans_omp_do): Handle simd with (last)private.
639 2020-09-15  Tobias Burnus  <tobias@codesourcery.com>
641         PR fortran/96668
642         * trans.h (gfc_omp_finish_clause): Add bool openacc arg.
643         * trans-openmp.c (gfc_omp_finish_clause): Ditto. Use
644         GOMP_MAP_ALWAYS_POINTER with PSET for pointers.
645         (gfc_trans_omp_clauses): Like the latter and also if the always
646         modifier is used.
648 2020-09-09  Tobias Burnus  <tobias@codesourcery.com>
650         PR fortran/95109
651         PR fortran/94690
652         * resolve.c (gfc_resolve_code): Also call
653         gfc_resolve_omp_parallel_blocks for 'distribute parallel do (simd)'.
654         * openmp.c (gfc_resolve_omp_parallel_blocks): Handle it.
655         (gfc_resolve_do_iterator): Remove special code for SIMD, which is
656         not needed.
657         * trans-openmp.c (gfc_trans_omp_target): For TARGET_PARALLEL_DO_SIMD,
658         call simd not do processing function.
660 2020-09-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
662         * intrinsic.texi: Fix description of FINDLOC result.
664 2020-09-07  Harald Anlauf  <anlauf@gmx.de>
666         * trans-intrinsic.c (build_round_expr): Use temporary with
667         appropriate kind for conversion before rounding to nearest
668         integer when the result precision is 128 bits.
670 2020-09-07  Tobias Burnus  <tobias@codesourcery.com>
672         PR fortran/96896
673         * resolve.c (get_temp_from_expr): Also reset proc_pointer +
674         use_assoc attribute.
675         (resolve_ptr_fcn_assign): Use information from the LHS.
677 2020-09-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
679         * trans-types.c (gfc_get_derived_type): Fix argument types.
681 2020-09-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
683         * resolve.c (resolve_select_type): Provide a formal arg list.
685 2020-09-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
687         * trans-types.c (gfc_get_ppc_type): Add comment.
689 2020-09-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
691         * trans-types.c (gfc_get_ppc_type): Fix function arg types.
693 2020-09-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
695         PR fortran/96947
696         * trans-stmt.c (gfc_trans_fail_image): caf_fail_image
697         expects no argument.
699 2020-09-02  Jakub Jelinek  <jakub@redhat.com>
701         PR fortran/96859
702         * check.c (gfc_boz2real, gfc_boz2int): When clearing first two bits,
703         change also '2' to '0' and '3' to '1' rather than just handling '4'
704         through '7'.
706 2020-09-01  Steven G. Kargl  <kargl@gcc.gnu.org>
707             Mark Eggleston  <markeggleston@gcc.gnu.org>
709         PR fortran/95398
710         * resolve.c (resolve_select_type): Add check for BT_CLASS
711         type before using the CLASS_DATA macro which will have a
712         NULL pointer to derive components if it isn't BT_CLASS.
714 2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
716         PR fortran/96728
717         * module.c (module_peek_char): Peek ahead function.
718         (parse_integer): Add code for parsing signed integers.
719         (parse_atom): Add code to handle signed integers.
720         (peek_atom): Add code to handle signed integers.
722 2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
724         PR fortran/96727
725         * expr.c (gfc_check_init_expr): Add default error message for the AS_ASSUMED_RANK case.
727 2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
729         PR fortran/96726
730         * expr.c (check_references): Change different relational operator
731         to less-than operator to avoid infinite loop.
733 2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
735         PR fortran/95352
736         * simplify.c (simplify_bound_dim): Add check for NULL pointer
737         before trying to access structure member.
739 2020-08-30  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
741         PR fortran/94110
742         * interface.c (gfc_compare_actual_formal): Add code to also raise
743         the actual argument cannot be an assumed-size array error when the
744         dummy arguments are deferred-shape or assumed-rank pointer.
746 2020-08-28  Tobias Burnus  <tobias@codesourcery.com>
748         PR fortran/94672
749         * trans-array.c (gfc_trans_g77_array): Check against the parm decl and
750         set the nonparm decl used for the is-present check to NULL if absent.
752 2020-08-28  Paul Thomas  <pault@gcc.gnu.org>
754         PR fortran/96624
755         * simplify.c (gfc_simplify_reshape): Detect zero shape and
756         clear index if found.
758 2020-08-27  Mark Eggleston  <markeggleston@gcc.gnu.org>
760         PR fortran/95882
761         * decl.c (char_len_param_value): Check gfc_seen_div0 and
762         if it is set return MATCH_ERROR.
764 2020-08-27  Martin Liska  <mliska@suse.cz>
766         * trans-openmp.c (gfc_trans_omp_do): Set exact argument of a vector
767         growth function to true.
769 2020-08-26  Tobias Burnus  <tobias@codesourcery.com>
771         * gfortran.h (enum gfc_omp_device_type): New.
772         (symbol_attribute, gfc_omp_clauses, gfc_common_head): Use it.
773         * module.c (enum ab_attribute): Add AB_OMP_DEVICE_TYPE_HOST,
774         AB_OMP_DEVICE_TYPE_NOHOST and AB_OMP_DEVICE_TYPE_ANY.
775         (attr_bits, mio_symbol_attribute): Handle it.
776         (load_commons, write_common_0): Handle omp_device_type flag.
777         * openmp.c (enum omp_mask1): Add OMP_CLAUSE_DEVICE_TYPE
778         (OMP_DECLARE_TARGET_CLAUSES): Likewise.
779         (gfc_match_omp_clauses): Match 'device_type'.
780         (gfc_match_omp_declare_target): Handle it.
781         * trans-common.c (build_common_decl): Write device-type clause.
782         * trans-decl.c (add_attributes_to_decl): Likewise.
784 2020-08-23  Paul Thomas  <pault@gcc.gnu.org>
786         PR fortran/96737
787         * trans-types.c (gfc_get_derived_type): Derived types that are
788         used in submodules are not compatible with TYPE_CANONICAL from
789         any of the global namespaces.
791 2020-08-20  Paul Thomas  <pault@gcc.gnu.org>
793         PR fortran/96100
794         PR fortran/96101
795         * trans-array.c (get_array_charlen): Tidy up the evaluation of
796         the string length for array constructors. Avoid trailing array
797         references. Ensure string lengths of deferred length components
798         are set. For parentheses operator apply string  length to both
799         the primary expression and the enclosed expression.
801 2020-08-20  Andre Vehreschild  <vehre@gcc.gnu.org>
803         PR fortran/94958
804         * trans-array.c (gfc_bcast_alloc_comp): Use the correct variable.
806 2020-08-20  Tobias Burnus  <tobias@codesourcery.com>
808         * openmp.c (gfc_match_omp_clauses): Re-order 'if' clause pasing
809         to avoid creating spurious symbols.
811 2020-08-18  Harald Anlauf  <anlauf@gmx.de>
813         * check.c (check_rest): Reject MIN/MAX character arguments of
814         different kind.
815         * simplify.c (min_max_choose): The simplification result shall
816         have the highest kind value of the arguments.
817         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Choose type and
818         kind of intermediate by looking at all arguments, not the result.
820 2020-08-17  Martin Liska  <mliska@suse.cz>
822         * openmp.c (resolve_omp_clauses): Add static assert
823         for OMP_LIST_NUM and size of clause_names array.
824         Remove check that is always true.
826 2020-08-17  Martin Liska  <mliska@suse.cz>
828         * openmp.c (resolve_omp_clauses): Add NONTEMPORAL to clause
829         names.
831 2020-08-13  Andre Vehreschild  <vehre@gcc.gnu.org>
833         PR fortran/93671
834         * trans-array.c (structure_alloc_comps): Keep caf-mode when applying to
835         components; get the caf_token correctly for allocated scalar components.
837 2020-08-13  Matthew Krupcale  <mkrupcale@matthewkrupcale.com>
839         PR fortran/96595
840         * invoke.texi: Fix typos.
842 2020-08-12  Tobias Burnus  <tobias@codesourcery.com>
844         * gfortran.h: Add OMP_LIST_NONTEMPORAL.
845         * dump-parse-tree.c (show_omp_clauses): Dump it
846         * openmp.c (enum omp_mask1): Add OMP_CLAUSE_NOTEMPORAL.
847         (OMP_SIMD_CLAUSES): Add it.
848         (gfc_match_omp_clauses): Match nontemporal clause.
849         * trans-openmp.c (gfc_trans_omp_clauses): Process
850         nontemporal clause.
852 2020-08-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
854         PR fortran/96556
855         * frontend-passes.c (doloop_contained_function_call):
856         Do not dereference a NULL pointer for value.function.esym.
858 2020-08-10  Paul Thomas  <pault@gcc.gnu.org>
860         PR fortran/96312
861         * trans-expr.c (fcncall_realloc_result): Only compare shapes if
862         lhs was allocated..
864 2020-08-10  Paul Thomas  <pault@gcc.gnu.org>
866         PR fortran/96102
867         * resolve.c (check_host_association): Replace the gcc_assert
868         with an error for internal procedures.
870 2020-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
872         PR fortran/96469
873         * frontend-passes.c (doloop_contained_function_call): New
874         function.
875         (doloop_contained_procedure_code): New function.
876         (CHECK_INQ): Macro for inquire checks.
877         (doloop_code): Invoke doloop_contained_procedure_code and
878         doloop_contained_function_call if appropriate.
879         (do_intent): Likewise.
881 2020-08-04  Tobias Burnus  <tobias@codesourcery.com>
883         * openmp.c (resolve_omp_do): Detect not perfectly
884         nested loop with innermost collapse.
886 2020-08-04  Tobias Burnus  <tobias@codesourcery.com>
888         * trans-openmp.c (gfc_trans_omp_do): Fix 'lastprivate(conditional:'.
890 2020-08-03  Julian Brown  <julian@codesourcery.com>
891             Thomas Schwinge  <thomas@codesourcery.com>
893         * trans-openmp.c (gfc_trans_omp_clauses): Don't create present/release
894         mappings for array descriptors.
896 2020-08-03  Martin Jambor  <mjambor@suse.cz>
898         * f95-lang.c (gfc_init_builtin_functions): Remove processing of
899         hsa-builtins.def.
901 2020-08-03  Tobias Burnus  <tobias@codesourcery.com>
903         * gfc-internals.texi: Fix typos.
904         * gfortran.texi: Likewise.
905         * intrinsic.texi: Likewise.
906         * invoke.texi: Likewise.
908 2020-08-02  Paul Thomas  <pault@gcc.gnu.org>
910         PR target/96320
911         * interface.c (gfc_check_dummy_characteristics): If a module
912         procedure arrives with assumed shape in the interface and
913         deferred shape in the procedure itself, update the latter and
914         copy the lower bounds.
916 2020-08-02  Paul Thomas  <pault@gcc.gnu.org>
918         PR fortran/96325
919         * primary.c (gfc_match_varspec): In the case that a component
920         reference is added to an intrinsic type component, emit the
921         error message in this function.
923 2020-07-29  Tobias Burnus  <tobias@codesourcery.com>
925         * dump-parse-tree.c (show_omp_clauses): Handle order(concurrent).
926         * gfortran.h (struct gfc_omp_clauses): Add order_concurrent.
927         * openmp.c (enum omp_mask1, OMP_DO_CLAUSES, OMP_SIMD_CLAUSES):
928         Add OMP_CLAUSE_ORDER.
929         * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
930         Handle order(concurrent) clause.
932 2020-07-29  Tobias Burnus  <tobias@codesourcery.com>
934         * openmp.c (resolve_omp_clauses): Permit 'omp target data' without
935         map if use_device_{addr,ptr} is present.
937 2020-07-29  Mark Eggleston  <markeggleston@gcc.gnu.org>
939         PR fortran/96319
940         * intrinsic.c (gfc_convert_type_warn):  Add check for
941         LOGICAL type so that warnings are not output.
943 2020-07-29  Tobias Burnus  <tobias@codesourcery.com>
945         * module.c (mio_symbol_attribute): Fix indent of previous
946         commit.
948 2020-07-29  Mark Eggleston  <markeggleston@gcc.gnu.org>
950         PR fortran/53298
951         * trans-array.c (gfc_walk_array_ref): If ref->ss.end is set
952         call gfc_get_scalar_ss.
954 2020-07-29  Tobias Burnus  <tobias@codesourcery.com>
956         * gfortran.h (enum gfc_statement): Add ST_OMP_REQUIRES.
957         (enum gfc_omp_requires_kind): New.
958         (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_ACQ_REL.
959         (struct gfc_namespace): Add omp_requires and omp_target_seen.
960         (gfc_omp_requires_add_clause,
961         (gfc_check_omp_requires): New.
962         * match.h (gfc_match_omp_requires): New.
963         * module.c (enum ab_attribute, attr_bits): Add omp requires clauses.
964         (mio_symbol_attribute): Read/write them.
965         * openmp.c (gfc_check_omp_requires, (gfc_omp_requires_add_clause,
966         gfc_match_omp_requires): New.
967         (gfc_match_omp_oacc_atomic): Use requires's default mem-order.
968         * parse.c (decode_omp_directive): Match requires, set omp_target_seen.
969         (gfc_ascii_statement): Handle ST_OMP_REQUIRES.
970         * trans-openmp.c (gfc_trans_omp_atomic): Handle GFC_OMP_ATOMIC_ACQ_REL.
972 2020-07-27  Tobias Burnus  <tobias@codesourcery.com>
974         * openmp.c (gfc_resolve_omp_directive): Remove NULL check
975         for clauses in EXEC_OMP_CRITICAL as it no longer can be NULL.
977 2020-07-23  Tobias Burnus  <tobias@codesourcery.com>
979         * gfortran.h (gfc_omp_namelist): Add lastprivate_conditional.
980         * openmp.c (gfc_match_omp_clauses): Handle 'conditional:'
981         modifier of 'lastprivate'.
982         * trans-openmp.c (gfc_omp_clause_default_ctor): Don't assert
983         on OMP_CLAUSE__CONDTEMP_ and other OMP_*TEMP_.
984         (gfc_trans_omp_variable_list): Handle lastprivate_conditional.
986 2020-07-23  Tobias Burnus  <tobias@codesourcery.com>
988         * intrinsic.texi (OMP_LIB_KINDS): Add omp_depend_kind.
990 2020-07-23  Tobias Burnus  <tobias@codesourcery.com>
992         * gfortran.texi (Standards): Update URL; state that OpenMP 4.5
993         is supported and 5.0 is partially.
994         * intrinsic.texi (OpenMP Modules): Refer also to OpenMP 5.0;
995         (OMP_LIB): Add missing derived type and new named constants.
997 2020-07-22  Tobias Burnus  <tobias@codesourcery.com>
999         * gfortran.h (enum gfc_omp_if_kind): Add OMP_IF_CANCEL and OMP_IF_SIMD.
1000         * openmp.c (OMP_SIMD_CLAUSES): Add OMP_CLAUSE_IF.
1001         (gfc_match_omp_clauses, resolve_omp_clauses): Handle 'if (simd/cancel:'.
1002         * dump-parse-tree.c (show_omp_clauses): Likewise.
1003         * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_cancel,
1004         (gfc_split_omp_clauses): Likewise.
1006 2020-07-22  Tobias Burnus  <tobias@codesourcery.com>
1008         * openmp.c (gfc_match_omp_critical): Fix handling hints; permit
1009         hint clause without named critical.
1010         (resolve_omp_clauses): Require nonnegative constant integer
1011         for the hint clause.
1012         (gfc_resolve_omp_directive): Check for no name but
1013         nonzero value for hint clause.
1014         * parse.c (parse_omp_structured_block): Fix same-name check
1015         for critical.
1016         * trans-openmp.c (gfc_trans_omp_critical): Handle hint clause properly.
1018 2020-07-21  Harald Anlauf  <anlauf@gmx.de>
1020         PR fortran/89574
1021         * trans-decl.c (gfc_get_extern_function_decl): Check whether a
1022         symbol belongs to a different module.
1024 2020-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1026         PR fortran/96220
1027         * dump-parse-tree.c (get_c_type_name): Always use the entries from
1028         c_interop_kinds_table to find the correct C type.
1030 2020-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1032         PR fortran/96018
1033         * frontend-passes.c (gfc_check_externals): Adjust formatting.
1034         (implicit_pure_call): New function.
1035         (implicit_pure_expr): New function.
1036         (gfc_fix_implicit_pure): New function.
1037         * gfortran.h (gfc_fix_implicit_pure): New prototype.
1038         * parse.c (translate_all_program_units): Call gfc_fix_implicit_pure.
1040 2020-07-18  David Edelsohn  <dje.gcc@gmail.com>
1042         * check.c (gfc_invalid_boz): Mark hint for translation using _().
1044 2020-07-16  Julian Brown  <julian@codesourcery.com>
1045             Thomas Schwinge  <thomas@codesourcery.com>
1047         * trans-openmp.c (gfc_trans_omp_clauses): Rework OpenACC
1048         attach/detach handling for arrays with descriptors.
1050 2020-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1051             Mark Eggleston  <markeggleston@gcc.gnu.org>
1053         PR fortran/95612
1054         * expr.c (gfc_check_pointer_assigb): Output an error if
1055         rvalue is a zero sized array or output an error if rvalue
1056         doesn't have a symbol tree.
1058 2020-07-14  Tobias Burnus  <tobias@codesourcery.com>
1060         * openmp.c (gfc_match_omp_clauses): Match also derived-type
1061         component refs in OMP_CLAUSE_MAP.
1062         (resolve_omp_clauses): Resolve those.
1063         * trans-openmp.c (gfc_trans_omp_array_section, gfc_trans_omp_clauses):
1064         Handle OpenMP structure-element mapping.
1065         (gfc_trans_oacc_construct, gfc_trans_oacc_executable_directive,
1066         (gfc_trans_oacc_combined_directive, gfc_trans_oacc_declare): Update
1067         add openacc=true in gfc_trans_omp_clauses call.
1069 2020-07-14  Tobias Burnus  <tobias@codesourcery.com>
1071         PR fortran/67311
1072         * trans-openmp.c (gfc_has_alloc_comps): Return false also for
1073         pointers to arrays.
1075 2020-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1076             Mark Eggleston  <markeggleston@gcc.gnu.org>
1078         PR fortran/96038
1079         * decl.c (add_init_expr_sym):  For a symbol that is a
1080         parameter accept an initialisation if it does not have a
1081         value otherwise output a error and reject.
1083 2020-07-13  Mark Eggleston  <markeggleston@gcc.gnu.org>
1085         PR fortran/45337
1086         * resolve.c (resolve_fl_variable): Remove type and intent
1087         checks from the check for dummy.
1089 2020-07-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1090             Mark Eggleston  <markeggleston@gcc.gnu.org>
1092         PR fortran/95981
1093         * check.c (dim_rank_check): Allow NULL references in call to
1094         gfc_find_array_ref and return false if no reference is found.
1096 2020-07-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1098         PR fortran/96073
1099         * frontend-passes.c (check_externals_procedure):  Add locus
1100         information for new_sym.
1101         * interface.c (gfc_check_dummy_characteristics): Do not warn
1102         about INTENT for artificially generated variables.
1104 2020-07-10  Harald Anlauf  <anlauf@gmx.de>
1106         PR fortran/95980
1107         * class.c (gfc_add_component_ref, gfc_build_class_symbol):
1108         Add checks for NULL pointer dereference.
1109         * primary.c (gfc_variable_attr): Likewise.
1110         * resolve.c (resolve_variable, resolve_assoc_var)
1111         (resolve_fl_var_and_proc, resolve_fl_variable_derived)
1112         (resolve_symbol): Likewise.
1114 2020-07-10  Harald Anlauf  <anlauf@gmx.de>
1116         PR fortran/96086
1117         * match.c (gfc_match_select_rank): Catch NULL pointer
1118         dereference.
1119         * resolve.c (resolve_assoc_var): Catch NULL pointer dereference
1120         that may occur after an illegal declaration.
1122 2020-07-09  Julian Brown  <julian@codesourcery.com>
1124         * trans-openmp.c (gfc_trans_omp_clauses): Use 'inner' not 'decl' for
1125         derived type members which themselves have derived types.
1127 2020-07-08  Harald Anlauf  <anlauf@gmx.de>
1129         PR fortran/96085
1130         * resolve.c (gfc_resolve_code): Check whether assign target is a
1131         parameter.
1133 2020-07-06  Harald Anlauf  <anlauf@gmx.de>
1135         PR fortran/95980
1136         * match.c (copy_ts_from_selector_to_associate, build_class_sym):
1137         Distinguish between unlimited polymorphic and ordinary variables
1138         to avoid NULL pointer dereference.
1139         * resolve.c (resolve_select_type):
1140         Distinguish between unlimited polymorphic and ordinary variables
1141         to avoid NULL pointer dereference.
1143 2020-07-06  Harald Anlauf  <anlauf@gmx.de>
1145         PR fortran/95709
1146         * resolve.c (gfc_resolve_code): Check for valid arguments to
1147         assigned GOTO.
1149 2020-07-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1151         PR fortran/27318
1152         * frontend-passes.c (check_against_globals): New function.
1153         (gfc_check_externals): Split; also invoke check_against_globals
1154         via gfc_traverse_ns.
1155         (gfc_check_externals0): Recursive part formerly in
1156         gfc_check_externals.
1157         * resolve.c (resolve_global_procedure): Set sym->error on
1158         interface mismatch.
1159         * symbol.c (ambiguous_symbol): Check for, and set sym->error.
1161 2020-07-02  Harald Anlauf  <anlauf@gmx.de>
1163         PR fortran/93423
1164         * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
1166 2020-07-02  Harald Anlauf  <anlauf@gmx.de>
1168         PR fortran/93337
1169         * class.c (gfc_find_derived_vtab): Punt if name is not set.
1171 2020-07-02  Mark Eggleston  <markeggleston@gcc.gnu.org>
1173         PR fortran/52279
1174         * check.c (gfc_invalid_boz):  Change array declaration for
1175         hint into a pointer.
1177 2020-07-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1178             Mark Eggleston  <markeggleston@gcc.gnu.org>
1180         PR fortran/95584
1181         * interface.c (generic_correspondence): Only use the pointer
1182         to a symbol if exists.
1184 2020-07-01  David Edelsohn  <dje.gcc@gmail.com>
1186         * check.c (gfc_invalid_boz): Fix bootstrap. Revert
1187         Mark hint for translation using _().
1189 2020-07-01  Mark Eggleston  <markeggleston@gcc.gnu.org>
1191         PR fortran/52279
1192         * arith.c (reduce_binary_aa): Mark for translation the string
1193         parameter to gfc_check_conformance with G_().
1194         * check.c (gfc_invalid_boz): Mark hint for translation using
1195         _().  (gfc_check_achar): Mark for translation the message
1196         parameter to gfc_invalid_boz using G_().  (gfc_check_char):
1197         Mark for translation the message parameter to gfc_invalid_boz
1198         using G_().  (gfc_check_complex): Mark for translation the
1199         message parameter to gfc_invalid_boz using G_().
1200         (gfc_check_float): Mark for translation the message
1201         parameter to gfc_invalid_boz using G_().  (check_rest): Mark
1202         for translation the string parameter to gfc_check_conformance
1203         with _().  (gfc_check_minloc_maxloc): Mark for translation
1204         the string parameter to gfc_check_conformance with _().
1205         (gfc_check_findloc): Mark for translation the string parameter
1206         to gfc_check_conformance with _().  (check_reduction): Mark
1207         for translation the string parameter to gfc_check_conformance
1208         with _().  (gfc_check_pack): Mark for translation the string
1209         parameter to gfc_check_conformance with _().
1210         * decl.c (match_old_style_init): Mark for translation the
1211         message parameter to gfc_invalid_boz using G_().
1212         * expr.c (gfc_check_assign): Mark for translation the string
1213         parameter to gfc_check_conformance with _().
1214         * intrinsic.c (check_specific): Mark for translation the string
1215         parameter to gfc_check_conformance with _().
1216         (gfc_check_intrinsic_standard): Mark symstd_msg strings for
1217         translation using G_(). No need to mark symstd_msg for
1218         translation in call to gfc_warning or when setting symstd.
1219         * io.c (check_open_constraints):  Mark strings for translation
1220         using G_() in all calls to warn_or_error.  (match_io_element):
1221         Mark for translation the message parameter to gfc_invalid_boz
1222         using G_().
1223         * primary.c (match_boz_constant): Mark for translation the
1224         message parameter to gfc_invalid_boz using G_().
1225         * resolve.c (resolve_elemental_actual):  Mark for translation
1226         the string parameter to gfc_check_conformance with _().
1227         (resolve_operator):  Mark for translation the string parameter
1228         to gfc_check_conformance with _().  Mark translation strings
1229         assigned to msg using G_() for use in a call to cfg_warning.
1231 2020-07-01  Steven G. Kargl  <kargl@gcc.gnu.org>
1232             Mark Eggleston  <markeggleston@gcc.gnu.org>
1234         PR fortran/95446
1235         * resolve.c (resolve_elemental_actual): Add code to check for
1236         non-optional argument of the same rank.  Revise warning message
1237         to refer to the Fortran 2018 standard.
1239 2020-07-01  Steven G. Kargl  <kargl@gcc.gnu.org>
1240             Mark Eggleston  <markeggleston@gcc.gnu.org>
1242         PR fortran/95829
1243         * decl.c (gfc_match_decl_type_spec): Compare with "* ) " instead
1244         of "*)".
1246 2020-06-30  Harald Anlauf  <anlauf@gmx.de>
1248         PR fortran/88379
1249         * resolve.c (resolve_assoc_var): Avoid NULL pointer dereference.
1251 2020-06-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1253         PR fortran/95355
1254         * gfortran.h (gfc_typename): Add optional argument for_hash.
1255         * misc.c (gfc_typename): When for_hash is true, just retur
1256           CHARACTER(kind).
1257         * class.c (gfc_intrinsic_hash_value): Call gfc_typename with
1258           for_hash = true.
1260 2020-06-29  Harald Anlauf  <anlauf@gmx.de>
1262         PR fortran/95978
1263         * decl.c (gfc_match_data): Avoid NULL pointer dereference.
1265 2020-06-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1267         PR fortran/95743
1268         * trans-decl.c (gfc_generate_function_code): Do not generate
1269         recursion check for compiler-generated procedures.
1271 2020-06-29  Harald Anlauf  <anlauf@gmx.de>
1273         PR fortran/71706
1274         * trans-stmt.c (gfc_trans_sync): Do proper kind conversion in
1275         bounds-checking code.
1277 2020-06-28  Harald Anlauf  <anlauf@gmx.de>
1279         PR fortran/95340
1280         * match.c (gfc_match_select_rank): Do not dereference NULL pointer.
1282 2020-06-28  Harald Anlauf  <anlauf@gmx.de>
1284         PR fortran/95880
1285         * symbol.c (gfc_add_type): If sym->ns->proc_name is set, use it,
1286         otherwise fall back to sym->name.
1288 2020-06-27  Harald Anlauf  <anlauf@gmx.de>
1290         PR fortran/95881
1291         * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
1293 2020-06-25  Harald Anlauf  <anlauf@gmx.de>
1295         PR fortran/95828
1296         * match.c (select_rank_set_tmp): Enlarge internal buffer used in
1297         generating a mangled name.
1298         * resolve.c (resolve_select_rank): Likewise.
1300 2020-06-25  Harald Anlauf  <anlauf@gmx.de>
1302         PR fortran/95826
1303         * decl.c (gfc_match_decl_type_spec): Replace a fixed size
1304         buffer by a pointer and reallocate if necessary.
1306 2020-06-25  Tobias Burnus  <tobias@codesourcery.com>
1308         PR fortran/95837
1309         * resolve.c (gfc_resolve_substring_charlen): Remove
1310         bogus ts.kind setting for the expression.
1312 2020-06-25  Tobias Burnus  <tobias@codesourcery.com>
1313             Kwok Cheung Yeung  <kcy@codesourery.com>
1315         PR fortran/95869
1316         * trans-openmp.c (gfc_trans_omp_target): Use correct scoping block.
1318 2020-06-25  Kwok Cheung Yeung  <kcy@codesourcery.com>
1320         * trans-openmp.c (gfc_split_omp_clauses): Add if clause
1321         to target and simd sub-constructs.
1323 2020-06-24  Harald Anlauf  <anlauf@gmx.de>
1325         PR fortran/95827
1326         * iresolve.c (gfc_get_string): Enlarge internal buffer used in
1327         generating the mangled name.
1329 2020-06-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
1331         PR fortran/95812
1332         * dependency.c (ref_same_as_full_array): Handle case of AR_FULL
1333         vs. AR_FULL.
1335 2020-06-23  Steven G. Kargl  <kargl@gcc.gnu.org>
1336             Mark Eggleston  <markeggleston@gcc.gnu.org>
1338         PR fortran/95586
1339         * decl.c (gfc_match_implicit): Only perform else branch if
1340         the type spect is not BT_DERIVED.
1342 2020-06-22  Steven G. Kargl  <kargl@gcc.gnu.org>
1343             Mark Eggleston  <markeggleston@gcc.gnu.org>
1345         PR fortran/95708
1346         * intrinsic.c (add_functions): Replace CLASS_INQUIRY with
1347         CLASS_TRANSFORMATIONAL for intrinsic num_images.
1348         (make_generic): Replace ACTUAL_NO with ACTUAL_YES for
1349         intrinsic team_number.
1350         * resolve.c (resolve_fl_procedure): Check pointer ts.u.derived
1351         exists before using it.
1353 2020-06-22  Steven G. Kargl  <kargl@gcc.gnu.org>
1354             Mark Eggleston  <markeggleston@gcc.gnu.org>
1356         PR fortran/95585
1357         * check.c (gfc_check_reshape): Add check for a value when
1358         the symbol has an attribute flavor FL_PARAMETER.
1360 2020-06-22  Mark Eggleston  <markeggleston@gcc.gnu.org>
1362         PR fortran/42693
1363         * arith.c (gfc_arith_error): Enclose strings in G_() instead
1364         of _().
1366 2020-06-20  Harald Anlauf  <anlauf@gmx.de>
1368         PR fortran/95707
1369         * gfortran.h (gfc_common_head): Enlarge buffer.
1370         * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporary
1371         buffers, and add check on length on mangled name to prevent
1372         overflow.
1374 2020-06-20  Harald Anlauf  <anlauf@gmx.de>
1376         PR fortran/95688
1377         * iresolve.c (gfc_get_string): Enlarge static buffer size.
1379 2020-06-20  Harald Anlauf  <anlauf@gmx.de>
1381         PR fortran/95687
1382         * class.c (get_unique_type_string): Return a string with dynamic
1383         length.
1384         (get_unique_hashed_string, gfc_hash_value): Use dynamic result
1385         from get_unique_type_string instead of static buffer.
1387 2020-06-20  Harald Anlauf  <anlauf@gmx.de>
1389         PR fortran/95689
1390         * interface.c (check_sym_interfaces): Enlarge temporary buffer,
1391         and add check on length on mangled name to prevent overflow.
1393 2020-06-20  Harald Anlauf  <anlauf@gmx.de>
1395         PR fortran/95587
1396         * match.c (gfc_match_equivalence): Check constraints on
1397         EQUIVALENCE objects also for CLASS variables.
1399 2020-06-18  Tobias Burnus  <tobias@codesourcery.com>
1401         * openmp.c (resolve_omp_clauses): Reject vars with
1402         allocatable components in OpenMP map clauses.
1404 2020-06-16  Tobias Burnus  <tobias@codesourcery.com>
1406         * parse.c (decode_oacc_directive): Permit 'acc routine' also
1407         inside pure procedures.
1408         * openmp.c (gfc_match_oacc_routine): Inside pure procedures
1409         do not permit gang, worker or vector clauses.
1411 2020-06-16  Tobias Burnus  <tobias@codesourcery.com>
1413         * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
1414         from "in PURE" error message also for -fopenmp-simd.
1416 2020-06-16  Tobias Burnus  <tobias@codesourcery.com>
1418         * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
1419         from "in PURE" error message.
1421 2020-06-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1423         PR fortran/42122
1424         * dump-parse-tree.c (gfc_dump_global_symbols):  If the symroot is
1425         empty, just output "empty".
1427 2020-06-14  Harald Anlauf  <anlauf@gmx.de>
1429         PR fortran/95088
1430         * class.c (get_unique_type_string): Replace use of fixed size
1431         buffer by internally passing a pointer to strings.
1433 2020-06-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1435         * check.c (gfc_check_random_seed): Always use locations
1436         from get and put arguments for error messages.
1438 2020-06-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1440         PR fortran/94109
1441         * class.c (finalize_component): Return early if finalization has
1442         already happened for expression and component within namespace.
1443         * gfortran.h (gfc_was_finalized): New type.
1444         (gfc_namespace): Add member was_finalzed.
1445         (gfc_expr): Remove finalized.
1446         * symbol.c (gfc_free_namespace): Free was_finalized.
1448 2020-06-11  Harald Anlauf  <anlauf@gmx.de>
1449             Steven G. Kargl   <kargl@gcc.gnu.org>
1451         PR fortran/95611
1452         * decl.c (access_attr_decl): Use correct symbol in error message.
1454 2020-06-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1455             Harald Anlauf  <anlauf@gmx.de>
1457         PR fortran/95544
1458         * check.c (invalid_null_arg): Rename to gfc_invalid_null_arg.
1459         (gfc_check_associated, gfc_check_kind, gfc_check_merge)
1460         (gfc_check_shape, gfc_check_size, gfc_check_spread)
1461         (gfc_check_transfer): Adjust.
1462         (gfc_check_len_lentrim, gfc_check_trim): Check for NULL() argument.
1463         * gfortran.h: Declare gfc_invalid_null_arg ().
1464         * intrinsic.c (check_arglist): Check for NULL() argument.
1466 2020-06-11  Harald Anlauf  <anlauf@gmx.de>
1468         PR fortran/95503
1469         * expr.c (gfc_check_pointer_assign): Skip contiguity check of rhs
1470         of pointer assignment if lhs cannot be simply contiguous.
1472 2020-06-11  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
1474         PR fortran/95331
1475         * trans-array.c (gfc_conv_array_ref): For class array dummy
1476         arguments use the transformed descriptor in sym->backend_decl
1477         instead of the original descriptor.
1479 2020-06-11  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
1481         PR fortran/52351
1482         PR fortran/85868
1483         * trans-array.c (gfc_conv_expr_descriptor): Enable the
1484         creation of a new descriptor with the correct one based
1485         indexing for array sections.  Rework array descriptor
1486         indexing offset calculation.
1488 2020-06-11  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
1490         PR fortran/94022
1491         * trans-expr.c (gfc_conv_procedure_call): In the case of
1492         assumed-size arrays ensure that the reference is to a full array.
1494 2020-06-07  Harald Anlauf  <anlauf@gmx.de>
1496         PR fortran/95091
1497         * class.c (gfc_hash_value): Add cast.
1499 2020-06-07  Harald Anlauf  <anlauf@gmx.de>
1501         PR fortran/95091
1502         * class.c (get_unique_type_string, gfc_hash_value): Enlarge
1503         buffers, and check whether the strings returned by
1504         get_unique_type_string() fit.
1506 2020-06-05  Harald Anlauf  <anlauf@gmx.de>
1508         PR fortran/95530
1509         PR fortran/95537
1510         * decl.c (gfc_match_decl_type_spec): Enlarge buffer, and enhance
1511         string copy to detect buffer overflow.
1512         * gfortran.h (gfc_common_head): Enlarge buffer.
1513         * trans-common.c (finish_equivalences): Enhance string copy to
1514         detect buffer overflow.
1516 2020-06-05  Tom Tromey  <tromey@adacore.com>
1518         PR fortran/95509
1519         * misc.c (gfc_closest_fuzzy_match): Update cutoff value
1520         computation.
1522 2020-06-04  Steven G. Kargl  <kargl@gcc.gnu.org>
1523             Harald Anlauf  <anlauf@gmx.de>
1525         PR fortran/95500
1526         * trans-expr.c (gfc_conv_expr_reference): Do not dereference NULL
1527         pointer.
1529 2020-06-03  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
1531         PR fortran/95214
1532         PR fortran/66833
1533         PR fortran/67938
1534         * trans-expr.c (gfc_maybe_dereference_var): Add assumed-rank to
1535         character dummy arguments list of possible attributes.
1537 2020-06-03  Tobias Burnus  <tobias@codesourcery.com>
1539         * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
1540         * trans-openmp.c (gfc_omp_predetermined_mapping): New.
1541         * trans.h (gfc_omp_predetermined_mapping): Declare.
1543 2020-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
1545         PR fortran/94361
1546         * class.c (finalize_component): Use expr->finalized instead of
1547         comp->finalized.
1548         * gfortran.h (gfc_component): Remove finalized member.
1549         (gfc_expr): Add it here instead.
1551 2020-05-30  Harald Anlauf  <anlauf@gmx.de>
1553         PR fortran/95373
1554         * primary.c (is_inquiry_ref): Move validity check of inquiry
1555         references against selected Fortran standard from here...
1556         (gfc_match_varspec) ...to here.
1558 2020-05-30  Harald Anlauf  <anlauf@gmx.de>
1560         PR fortran/95090
1561         * class.c (get_unique_type_string): Use buffer overrun check.
1563 2020-05-29  Harald Anlauf  <anlauf@gmx.de>
1565         PR fortran/95090
1566         * class.c (get_unique_type_string): Enlarge temporary for
1567         name-mangling.  Use strncpy to prevent buffer overrun.
1568         (get_unique_hashed_string): Enlarge temporary.
1569         (gfc_hash_value): Enlarge temporary for name-mangling.
1571 2020-05-28  Harald Anlauf  <anlauf@gmx.de>
1573         PR fortran/95373
1574         * primary.c (is_inquiry_ref): Check validity of inquiry
1575         references against selected Fortran standard.
1577 2020-05-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1578             Mark Eggleston  <markeggleston@gcc.gnu.org>
1579             Mark Eggleston  <markeggleston@gcc.gnu.org>
1581         PR fortran/94397
1582         * match.c (gfc_match_type_spec): New variable ok initialised
1583         to true. Set ok with the return value of gfc_reduce_init_expr
1584         called only if the expression is not EXPR_CONSTANT and is not
1585         EXPR_VARIABLE. Add !ok to the check for type not being integer
1586         or the rank being greater than zero.
1588 2020-05-27  Harald Anlauf  <anlauf@gmx.de>
1590         PR fortran/95090
1591         * iresolve.c (gfc_get_string): Enlarge temporary for
1592         name-mangling.
1594 2020-05-27  Tobias Burnus  <tobias@codesourcery.com>
1595             Mark Eggleston  <markeggleston@gnu.gcc.org>
1597         PR fortran/50392
1598         * trans-decl.c (gfc_get_symbol_decl): Remove unnecessary block
1599         delimiters.  Add auxiliary variables if a label is assigned to
1600         a return variable. (gfc_gat_fake_result): If the symbol has an
1601         assign attribute set declaration from the symbol's backend
1602         declaration.
1604 2020-05-26  Harald Anlauf  <anlauf@gmx.de>
1606         PR fortran/95089
1607         * trans-types.c (gfc_get_derived_type): Enlarge temporary to hold
1608         mangled name "_caf_symbol".
1610 2020-05-26  Alexandre Oliva  <oliva@adacore.com>
1612         * options.c (gfc_get_option_string): Drop auxbase, add
1613         dumpbase_ext.
1615 2020-05-24  Harald Anlauf  <anlauf@gmx.de>
1617         PR fortran/95106
1618         * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporaries
1619         for name-mangling.
1621 2020-05-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
1623         PR libfortran/95191
1624         * libgfortran.h (libgfortran_error_codes): Add
1625         LIBERROR_BAD_WAIT_ID.
1627 2020-05-20  Mark Eggleston  <markeggleston@gcc.gnu.org>
1629         PR fortran/39695
1630         * resolve.c (resolve_fl_procedure): Set name depending on
1631         whether the result attribute is set.  For PROCEDURE/RESULT
1632         conflict use the name in sym->ns->proc_name->name.
1633         * symbol.c (gfc_add_type): Add check for function and result
1634         attributes use sym->ns->proc_name->name if both are set.
1635         Where the symbol cannot have a type use the name in
1636         sym->ns->proc_name->name.
1638 2020-05-18  Harald Anlauf  <anlauf@gmx.de>
1640         PR fortran/95053
1641         * arith.c (gfc_divide): Revert hunk introduced by patch for
1642         PR93499.
1643         * decl.c (variable_decl): Generate error for array shape not being
1644         an INTEGER constant.
1645         (gfc_get_pdt_instance): Generate error if KIND or LEN expressions
1646         in declaration of a PDT instance do not simplify to INTEGER
1647         constants.
1649 2020-05-15  Tobias Burnus  <tobias@codesourcery.com>
1651         PR fortran/94690
1652         * openmp.c (resolve_omp_do): Permit more clauses for SIMD
1653         iteration variables.
1655 2020-05-14  Jakub Jelinek  <jakub@redhat.com>
1657         * trans-openmp.c: Include function.h.
1658         (gfc_trans_omp_target): Set cfun->has_omp_target.
1660 2020-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1662         PR fortran/93497
1663         * decl.c (char_len_param_value): Check whether character
1664         length expression is of type EXPR_OP and if so simplify it.
1665         * resolve.c (resolve_charlen): Reject length if it has a
1666         rank.
1668 2020-05-13  Tobias Burnus  <tobias@codesourcery.com>
1670         PR fortran/94690
1671         * openmp.c (OMP_DISTRIBUTE_CLAUSES): Add OMP_CLAUSE_LASTPRIVATE.
1672         (gfc_resolve_do_iterator): Skip the private handling for SIMD as
1673         that is handled by ME code.
1674         * trans-openmp.c (gfc_trans_omp_do): Don't add private/lastprivate
1675         for dovar_found == 0, unless !simple.
1677 2020-05-11  Harald Anlauf  <anlauf@gmx.de>
1679         PR fortran/95053
1680         * arith.c (gfc_divide): Do not error out if operand 2 is
1681         non-numeric.  Defer checks to later stage.
1683 2020-05-11  Tobias Burnus  <tobias@codesourcery.com>
1685         PR fortran/94672
1686         * trans.h (gfc_conv_expr_present): Add use_saved_decl=false argument.
1687         * trans-expr.c (gfc_conv_expr_present): Likewise; use DECL directly
1688         and only if use_saved_decl is true, use the actual PARAM_DECL arg (saved
1689         descriptor).
1690         * trans-array.c (gfc_trans_dummy_array_bias): Set local 'arg.0'
1691         variable to NULL if 'arg' is not present.
1692         * trans-openmp.c (gfc_omp_check_optional_argument): Simplify by checking
1693         'arg.0' instead of the true PARM_DECL.
1694         (gfc_omp_finish_clause): Remove setting 'arg.0' to NULL.
1696 2020-05-11  Janus Weil  <janus@gcc.gnu.org>
1697             Dominique d'Humieres  <dominiq@lps.ens.fr>
1699         PR fortran/59107
1700         * gfortran.h: Rename field resolved as resolve_symbol_called
1701         and assign two 2 bits instead of 1.
1702         * interface.c (check_dtio_interface1): Use new field name.
1703         (gfc_find_typebound_dtio_proc): Use new field name.
1704         * resolve.c (gfc_resolve_intrinsic): Replace check of the formal
1705         field with resolve_symbol_called is at least 2, if it is not
1706         set the field to 2.  (resolve_typebound_procedure): Use new field
1707         name.  (resolve_symbol): Use new field name and check whether it
1708         is at least 1, if it is not set the field to 1.
1710 2020-05-10  Harald Anlauf  <anlauf@gmx.de>
1712         PR fortran/93499
1713         * arith.c (gfc_divide): Catch division by zero.
1714         (eval_intrinsic_f3): Safeguard for NULL operands.
1716 2020-05-05  Steve Kargl  <kargl@gcc.gnu.org>
1717         Harald Anlauf  <anlauf@gmx.de>
1719         PR fortran/93366
1720         * check.c (gfc_check_associated, invalid_null_arg): Factorize
1721         check for presence of invalid NULL() argument.
1722         (gfc_check_kind, gfc_check_merge, gfc_check_shape)
1723         (gfc_check_sizeof, gfc_check_spread, gfc_check_transfer): Use this
1724         check for presence of invalid NULL() arguments.
1726 2020-04-29  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
1728         PR fortran/94769
1729         * io.c (check_io_constraints): Initialize local variable num to
1730         -1 and assert that it receives a meaningful value by function
1731         compare_to_allowed_values.
1733 2020-04-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1735         PR fortran/93956
1736         PR fortran/94788
1737         * expr.c (gfc_check_pointer_assign): Revert patch for PR 93956.
1738         * interface.c: Likewise.
1740 2020-04-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1742         PR fortran/94578
1743         * trans-expr.c (arrayfunc_assign_needs_temporary): If the
1744         LHS is a subref pointer, we also need a temporary.
1746 2020-04-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
1748         PR fortran/93956
1749         * expr.c (gfc_check_pointer_assign): Also set subref_array_pointer
1750         when a function returns a pointer.
1751         * interface.c (gfc_set_subref_array_pointer_arg): New function.
1752         (gfc_procedure_use): Call it.
1754 2020-04-22  Fritz Reese  <foreese@gcc.gnu.org>
1756         * trigd_fe.inc: Use mpfr to compute cosd(30) rather than a host-
1757         precision floating point literal based on an invalid macro.
1759 2020-04-22  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
1761         PR fortran/90350
1762         * simplify.c (simplify_bound): In the case of assumed-size arrays
1763         check if the reference is to a full array.
1765 2020-04-22  Tobias Burnus  <tobias@codesourcery.com>
1767         PR fortran/94709
1768         * scanner.c (load_line): In fixed form, also treat 'C' as comment and
1769         'D'/'d' only with -fd-lines-as-comments. Treat '!$' with -fopenmp,
1770         '!$acc' with -fopenacc and '!GCC$' as non-comment to permit <tab>
1771         and truncation warnings.
1773 2020-04-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
1775         * dump-parse-tree.c (show_attr): Add numerous flags, some cleanup.
1777 2020-04-20  Harald Anlauf  <anlauf@gmx.de>
1779         PR fortran/93364
1780         * array.c (gfc_set_array_spec): Check for sum of rank and corank
1781         not exceeding GFC_MAX_DIMENSIONS.
1783 2020-04-20  Steve Kargl  <kargl@gcc.gnu.org>
1784         Thomas Koenig  <tkoenig@gcc.gnu.org>
1786         PR fortran/91800
1787         * decl.c (variable_decl): Reject Hollerith constants as type
1788         initializer.
1790 2020-04-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1792         PR fortran/93500
1793         * resolve.c (resolve_operator): If both operands are
1794         NULL, return false.
1795         * simplify.c (simplify_bound): If a division by zero
1796         was seen during bound simplification, free the
1797         corresponcing expression and return &gfc_bad_expr.
1799 2020-04-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
1801         PR fortran/94090
1802         * gfortran.dg (gfc_compare_interfaces): Add
1803         optional argument bad_result_characteristics.
1804         * interface.c (gfc_check_result_characteristics): Fix
1805         whitespace.
1806         (gfc_compare_interfaces): Handle new argument; return
1807         true if function return values are wrong.
1808         * resolve.c (resolve_global_procedure): Hard error if
1809         the return value of a function is wrong.
1811 2020-04-15  Fritz Reese  <foreese@gcc.gnu.org>
1812         Linus Koenig <link@sig-st.de>
1814         PR fortran/94192
1815         * simplify.c (simplify_bound): Simplify condition for error check.
1817 2020-04-14  Tobias Burnus  <tobias@codesourcery.com>
1819         * module.c (gfc_match_use): Fix name-conflict check for use-associating
1820         the same symbol again in a submodule.
1822 2020-04-13  Linus Koenig <link@sig-st.de>
1824         PR fortran/94192
1825         * resolve.c (resolve_fl_var_and_proc): Set flag "error" to 1 if
1826         pointer is found to not have an assumed rank or a deferred shape.
1827         * simplify.c (simplify_bound): If an error has been issued for a
1828         given pointer, one should not attempt to find its bounds.
1830 2020-04-09  Fritz Reese  <foreese@gcc.gnu.org>
1832         PR fortran/87923
1833         * gfortran.h (gfc_resolve_open, gfc_resolve_close): Add
1834         locus parameter.
1835         (gfc_resolve_dt): Add code parameter.
1836         * io.c (async_io_dt, check_char_variable, is_char_type): Removed.
1837         (resolve_tag_format): Add locus to error message regarding
1838         zero-sized array in FORMAT tag.
1839         (check_open_constraints, check_close_constraints): New functions
1840         called at resolution time.
1841         (gfc_match_open, gfc_match_close, match_io): Move checks which don't
1842         affect the match result to new functions check_open_constraints,
1843         check_close_constraints, check_io_constraints.
1844         (gfc_resolve_open, gfc_resolve_close): Call new functions
1845         check_open_constraints, check_close_constraints after all tags have
1846         been independently resolved.  Remove duplicate constraints which are
1847         already verified by resolve_tag.  Explicitly pass locus to all error
1848         reports.
1849         (compare_to_allowed_values): Add locus parameter and provide
1850         explicit locus all error reports.
1851         (match_open_element, match_close_element, match_file_element,
1852         match_dt_element, match_inquire_element): Remove redundant special
1853         cases for ASYNCHRONOUS and IOMSG tags.
1854         (gfc_resolve_dt): Remove redundant special case for format
1855         expression.  Call check_io_constraints, forwarding an I/O list as
1856         the io_code parameter if present.
1857         (check_io_constraints): Change return type to bool.  Pass explicit
1858         locus to error reports.  Move generic checks after tag-specific
1859         checks, since errors are no longer buffered.  Move simplification of
1860         format string to match_io.  Remove redundant checks which are
1861         verified by resolve_tag.  Remove usage of async_io_dt flag and
1862         explicitly mark symbols used in asynchronous I/O with the
1863         asynchronous attribute.
1864         * resolve.c (resolve_transfer, resolve_fl_namelist): Remove checks
1865         for async_io_dt flag.  This is now done in io.c.
1866         (check_io_constraints).
1867         (gfc_resolve_code): Pass code locus to gfc_resolve_open,
1868         gfc_resolve_close, gfc_resolve_dt.
1870 2020-04-07  Fritz Reese  <foreese@gcc.gnu.org>
1871             Steven G. Kargl  <kargl@gcc.gnu.org>
1873         PR fortran/93871
1874         * gfortran.h (GFC_ISYM_ACOSD, GFC_ISYM_ASIND, GFC_ISYM_ATAN2D,
1875         GFC_ISYM_ATAND, GFC_ISYM_COSD, GFC_ISYM_COTAND, GFC_ISYM_SIND,
1876         GFC_ISYM_TAND): New.
1877         * intrinsic.c (add_functions): Remove check for flag_dec_math.
1878         Give degree trig functions simplification and name resolution
1879         functions (e.g, gfc_simplify_atrigd () and gfc_resolve_atrigd ()).
1880         (do_simplify): Remove special casing of degree trig functions.
1881         * intrinsic.h (gfc_simplify_acosd, gfc_simplify_asind,
1882         gfc_simplify_atand, gfc_simplify_cosd, gfc_simplify_cotand,
1883         gfc_simplify_sind, gfc_simplify_tand, gfc_resolve_trigd2): Add new
1884         prototypes.
1885         (gfc_simplify_atrigd, gfc_simplify_trigd, gfc_resolve_cotan,
1886         resolve_atrigd): Remove prototypes of deleted functions.
1887         * iresolve.c (is_trig_resolved, copy_replace_function_shallow,
1888         gfc_resolve_cotan, get_radians, get_degrees, resolve_trig_call,
1889         gfc_resolve_atrigd, gfc_resolve_atan2d): Delete functions.
1890         (gfc_resolve_trigd, gfc_resolve_trigd2): Resolve to library functions.
1891         * simplify.c (rad2deg, deg2rad, gfc_simplify_acosd, gfc_simplify_asind,
1892         gfc_simplify_atand, gfc_simplify_atan2d, gfc_simplify_cosd,
1893         gfc_simplify_sind, gfc_simplify_tand, gfc_simplify_cotand): New
1894         functions.
1895         (gfc_simplify_atan2): Fix error message.
1896         (simplify_trig_call, gfc_simplify_trigd, gfc_simplify_atrigd,
1897         radians_f): Delete functions.
1898         * trans-intrinsic.c: Add LIB_FUNCTION decls for sind, cosd, tand.
1899         (rad2deg, gfc_conv_intrinsic_atrigd, gfc_conv_intrinsic_cotan,
1900         gfc_conv_intrinsic_cotand, gfc_conv_intrinsic_atan2d): New functions.
1901         (gfc_conv_intrinsic_function): Handle ACOSD, ASIND, ATAND, COTAN,
1902         COTAND, ATAN2D.
1903         * trigd_fe.inc: New file. Included by simplify.c to implement
1904         simplify_sind, simplify_cosd, simplify_tand with code common to the
1905         libgfortran implementation.
1907 2020-04-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1909         PR fortran/93686
1910         * decl.c (gfc_match_data): Handle data matching for derived type
1911         pointers.
1913 2020-04-02  Tobias Burnus  <tobias@codesourcery.com>
1915         * gfortran.h (gfc_resolve_formal_arglist): Add prototype.
1916         * interface.c (check_dtio_interface1): Call it.
1917         * resolve.c (gfc_resolve_formal_arglist): Renamed from
1918         resolve_formal_arglist, removed static.
1919         (find_arglists, resolve_types): Update calls.
1921 2020-04-02  Tobias Burnus  <tobias@codesourcery.com>
1923         PR fortran/93522
1924         * match.c (gfc_match_select_rank): Fix error cleanup.
1926 2020-04-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1928         PR fortran/93498
1929         * check.c (gfc_check_findloc):  If the kinds of the arguments
1930         differ goto label "incompat".
1932 2020-04-02 Steven G. Kargl  <kargl@gcc.gnu.org>
1934         PR fortran/94030
1935         * resolve.c (resolve_equivalence): Correct formatting
1936         around the label "identical_types".  Instead of using
1937         gfc_resolve_array_spec use is_non_constants_shape_array
1938         to determine whether the array can be used in a in an
1939         equivalence statement.
1941 2020-04-01  Mark Eggleston  <mark.eggleston@codethink.com>
1943         PR fortran/94386
1944         expr.c (simplify_parameter_variable): Restore code deleted
1945         in PR94246.
1947 2020-03-28  Paul Thomas  <pault@gcc.gnu.org>
1949         PR fortran/94246
1950         * arith.c : Remove trailing white space.
1951         * expr.c (scalarize_intrinsic_call): Remove the error checking.
1952         Make a copy of the expression to be simplified and only replace
1953         the original if the simplification succeeds.
1955 2020-03-28  Tobias Burnus  <tobias@codesourcery.com>
1957         PR fortran/94348
1958         * decl.c (gfc_match_submod_proc): Add result var to the
1959         proc's namespace.
1961 2020-03-27  Tobias Burnus  <tobias@codesourcery.com>
1963         PR fortran/93957
1964         * trans-array.c (gfc_alloc_allocatable_for_assignment): Accept
1965         nonallocatable, nonpointer deferred-rank arrays.
1967 2020-03-27  Tobias Burnus  <tobias@codesourcery.com>
1969         PR fortran/93363
1970         * resolve.c (resolve_assoc_var): Reject association to DT and
1971         function name.
1973 2020-03-25  Steven G. Kargl  <kargl@gcc.gnu.org>
1975         PR fortran/93484
1976         * match.c (gfc_match_type_spec): Replace gfc_match_init_expr with
1977         gfc_match_expr. Return m if m is MATCH_NO or MATCH_ERROR.
1979 2020-03-23  Mark Eggleston  <mark.eggleston@codethink.com>
1980         Steven G. Kargl  <kargl@gcc.gnu.org>
1982         PR fortran/93600
1983         * expr.c (simplify_parameter_variable): Check whether the ref
1984         chain contains INQUIRY_LEN or INQUIRY_KIND and set inquiry
1985         boolean. When an empty array has been identified and a new
1986         new EXPR_ARRAY expression has been created only return that
1987         expression if inquiry is not set. This allows the new
1988         expression to drop through to be simplified into a
1989         EXPR_CONSTANT representing %kind or %len.
1990         * matc.c (gfc_match_assignment): If lvalue doesn't have a
1991         symtree free both lvalue and rvalue expressions and return
1992         an error.
1993         * resolv.c (gfc_resolve_ref): Ensure that code to handle
1994         INQUIRY_LEN is only performed for arrays with deferred types.
1996 2020-03-18  Jakub Jelinek  <jakub@redhat.com>
1998         * class.c (generate_finalization_wrapper): Fix up duplicated word
1999         issue in a comment.
2000         * trans-types.c (gfc_get_nodesc_array_type): Likewise.
2002 2020-03-17  Jakub Jelinek  <jakub@redhat.com>
2004         * array.c (gfc_check_iter_variable): Fix up duplicated word issue
2005         in a comment.
2006         * arith.c (gfc_arith_concat): Likewise.
2007         * resolve.c (gfc_resolve_ref): Likewise.
2008         * frontend-passes.c (matmul_lhs_realloc): Likewise.
2009         * module.c (gfc_match_submodule, load_needed): Likewise.
2010         * trans-expr.c (gfc_init_se): Likewise.
2012 2020-03-15  Lewis Hyatt  <lhyatt@gmail.com>
2014         * lang.opt: Avoid redundancy in the help text.
2016 2020-03-12  Tobias Burnus  <tobias@codesourcery.com>
2018         PR middle-end/94120
2019         * openmp.c (gfc_match_oacc_declare): Accept function-result
2020         variables; reject variables declared in a different scoping unit.
2022 2020-03-08  Paul Thomas  <pault@gcc.gnu.org>
2024         PR fortran/93581
2025         * resolve.c (gfc_resolve_ref): Modify array refs to be elements
2026         if the ref chain ends in INQUIRY_LEN.
2027         * trans-array.c (gfc_get_dataptr_offset): Provide the offsets
2028         for INQUIRY_RE and INQUIRY_IM.
2030 2020-03-05 Steven G. Kargl  <kargl@gcc.gnu.org>
2032         PR fortran/93792
2033         * decl.c (variable_decl): If param and initializer check
2034         for BOZ, if found,  output an error, set m to MATCH_ERROR
2035         and goto cleanup.
2037 2020-03-02  Andrew Benson  <abensonca@gmail.com>
2039         PR fortran/93486
2040         * module.c: Increase size of variables used to read module names
2041         when loading interfaces from module files to permit cases where
2042         the name is the concatenation of a module and submodule name.
2043         * gfortran.dg/pr93486.f90: New test.
2045 2020-03-01  Paul Thomas  <pault@gcc.gnu.org>
2047         PR fortran/92976
2048         * match.c (select_type_set_tmp): If the selector array spec has
2049         explicit bounds, make the temporary's bounds deferred.
2051 2020-03-01  Paul Thomas  <pault@gcc.gnu.org>
2053         PR fortran/92959
2054         * trans-intrinsic.c (gfc_conv_associated): Eliminate
2055         'nonzero_charlen' and move the chunk to evaluate zero character
2056         length until after the argument evaluation so that the string
2057         length can be used.
2059 2020-02-28  Paul Thomas  <pault@gcc.gnu.org>
2061         PR fortran/92785
2062         * trans-expr.c (gfc_conv_intrinsic_to_class): Renormalise non-
2063         variable expressions to be unity lbound based.
2065 2020-02-25  Steven G. Kargl  <kargl@gcc.gnu.org>
2067         * simplify.c (degrees_f): Remove unused code.
2069 2020-02-25  Jakub Jelinek  <jakub@redhat.com>
2071         PR translation/93864
2072         * intrinsic.texi (CO_BROADCAST): Fix typo, paramter -> parameter.
2073         * trans-array.c (gfc_allocate_pdt_comp, gfc_deallocate_pdt_comp,
2074         gfc_check_pdt_dummy): Fix comment typo paramter -> parameter.
2076 2020-02-24  Mark Eggleston  <mark.eggleston@codethink.com>
2077             Steven G. Kargl  <kargl@gcc.gnu.org>
2079         PR fortran/93835
2080         * decl.c (gfc_match_data) : Check whether the data expression
2081         is a derived type and is a constructor. If a BOZ constant
2082         is encountered in the constructor output an error and return
2083         MATCH_ERROR.
2085 2020-02-24  Steven G. Kargl  <kargl@gcc.gnu.org>
2087         PR fortran/93604
2088         * decl.c (gfc_match_data) : Check whether the data expression
2089         is a derived type and is a constructor. If a BOZ constant
2090         is encountered in the constructor output an error and return
2091         MATCH_ERROR.
2093 2020-02-24  Tobias Burnus  <tobias@codesourcery.com>
2095         PR fortran/93552
2096         * match.c (match_exit_cycle): With OpenACC, check the kernels loop
2097         directive and tile clause as well.
2099 2020-02-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
2101         PR fortran/93889
2102         * interface.c (compare_parameter): Fix error message.
2104 2020-02-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
2106         PR fortran/93890
2107         * interface.c: Replace "can not" by "cannot" and remove trailing
2108         space.
2110 2020-02-20  Tobias Burnus  <tobias@codesourcery.com>
2112         PR fortran/93825
2113         * openmp.c (resolve_oacc_loop_blocks): Move call to
2114         resolve_oacc_nested_loops from here ...
2115         (resolve_oacc_loop): ... to here.
2117 2020-02-18  Mark Eggleston  <markeggleston@gcc.gnu.org>
2119         PR fortran/93714
2120         * expr.c (gfc_check_pointer_assign): Move check for
2121         matching character length to after checking the lvalue
2122         attributes for target or pointer.
2124 2020-02-18  Steven G. Kargl  <kargl@gcc.gnu.org>
2126         PR fortran/93601
2127         * match.c (gfc_match_assignment) : Reject assignment if
2128         the lhs stype is BT_CLASS and the rhs type is BT_BOZ.
2130 2020-02-18  Steven G. Kargl  <kargl@gcc.gnu.org>
2132         PR fortran/93603
2133         * match.c (gfc_match_associate) : If target expression
2134         has the type BT_BOZ output an error and goto
2135         assocListError.
2137 2020-02-18  Steven G. Kargl  <kargl@gcc.gnu.org>
2138             Mark Eggleston  <markeggleston@gcc.gnu.org>
2140         PR fortran/93580
2141         * primary.c (gfc_match_varspec): If the symbol following %
2142         is re or im and the primary expression type is not BT_COMPLEX
2143         issue an error. If the symbol is len and the primary
2144         expression type is not BT_CHARACTER is an error.
2146 2020-02-10  Andrew Benson  <abensonca@gmail.com>
2148         PR fortran/83113
2149         * array.c: Do not attempt to set the array spec for a submodule
2150         function symbol (as it has already been set in the corresponding
2151         module procedure interface).
2152         * symbol.c: Do not reject duplicate POINTER, ALLOCATABLE, or
2153         DIMENSION attributes in declarations of a submodule function.
2154         * gfortran.h: Add a macro that tests for a module procedure in a
2155         submodule.
2156         * gfortran.dg/pr83113.f90: New test.
2158 2020-02-03  Julian Brown  <julian@codesourcery.com>
2159             Tobias Burnus  <tobias@codesourcery.com>
2161         * cpp.c (cpp_define_builtins): Update _OPENACC define to 201711.
2162         * intrinsic.texi: Update mentions of OpenACC version to 2.6.
2163         * gfortran.texi: Likewise. Remove experimental disclamer for OpenACC.
2164         * invoke.texi: Remove experimental disclamer for OpenACC.
2166 2020-02-03  Tobias Burnus  <tobias@codesourcery.com>
2168         PR fortran/93541
2169         * intrinisic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS):
2170         Add undocumented parameters from omp_lib.f90.in.
2172 2020-02-03  Tobias Burnus  <tobias@codesourcery.com>
2174         PR fortran/93427
2175         * resolve.c (resolve_assoc_var): Remove too strict check.
2176         * gfortran.dg/associate_51.f90: Update test case.
2178 2020-02-01  Jakub Jelinek  <jakub@redhat.com>
2180         PR fortran/92305
2181         * trans-types.c (gfc_get_function_type): Also push boolean_type_node
2182         types for non-character scalar VALUE optional dummy arguments.
2183         * trans-decl.c (create_function_arglist): Skip those in
2184         hidden_typelist.  Formatting fix.
2186 2020-01-31  Tobias Burnus  <tobias@codesourcery.com>
2188         PR fortran/93462
2189         * frontend-passes.c (gfc_code_walker): For EXEC_OACC_ATOMIC, set
2190         in_omp_atomic to true prevent front-end optimization.
2192 2020-01-30  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2194         PR fortran/87103
2195         * expr.c (gfc_check_conformance): Check vsnprintf for truncation.
2196         * iresolve.c (gfc_get_string): Likewise.
2197         * symbol.c (gfc_new_symbol): Remove check for maximum symbol
2198         name length.  Remove redundant 0 setting of new calloc()ed
2199         gfc_symbol.
2201 2020-01-30  Paul Thomas  <pault@gcc.gnu.org>
2202             Jakub Jelinek  <jakub@redhat.com>
2204         PR fortran/92123
2205         * trans-decl.c (gfc_get_symbol_decl): Call gfc_defer_symbol_init for
2206         CFI descs.
2207         (gfc_build_builtin_function_decls): Use ".w." instead of ".ww" or ".wR"
2208         for gfor_fndecl_{cfi_to_gfc,gfc_to_cfi}.
2209         (convert_CFI_desc): Handle references to CFI descriptors.
2211 2020-01-29  Jakub Jelinek  <jakub@redhat.com>
2213         PR fortran/93463
2214         * openmp.c (oacc_code_to_statement): Handle
2215         EXEC_OACC_{ROUTINE,UPDATE,WAIT,CACHE,{ENTER,EXIT}_DATA,DECLARE}.
2217 2020-01-28  Andrew Benson  <abensonca@gmail.com>
2219         PR fortran/93461
2220         * trans.h: Increase GFC_MAX_MANGLED_SYMBOL_LEN to
2221         GFC_MAX_SYMBOL_LEN*3+5 to allow for inclusion of submodule name,
2222         plus the "." between module and submodule names.
2223         * gfortran.dg/pr93461.f90: New test.
2225 2020-01-28  Andrew Benson  <abensonca@gmail.com>
2227         PR fortran/93473
2228         * parse.c: Increase length of char variables to allow them to hold
2229         a concatenated module + submodule name.
2230         * gfortran.dg/pr93473.f90: New test.
2232 2020-01-28  Julian Brown  <julian@codesourcery.com>
2234         PR fortran/93025
2235         * openmp.c (resolve_omp_clauses): Check array references for contiguity.
2237 2020-01-28  Julian Brown  <julian@codesourcery.com>
2239         * gfortran.h (gfc_symbol): Add comp_mark bitfield.
2240         * openmp.c (resolve_omp_clauses): Disallow mixed component and
2241         full-derived-type accesses to the same variable within a single
2242         directive.
2244 2020-01-28  Tobias Burnus  <tobias@codesourcery.com>
2246         PR fortran/93464
2247         * openmp.c (gfc_omp_check_optional_argument): Avoid ICE when
2248         DECL_LANG_SPECIFIC and GFC_DESCRIPTOR_TYPE_P but not
2249         GFC_DECL_SAVED_DESCRIPTOR as for local allocatable character vars.
2251 2020-01-28  Tobias Burnus  <tobias@codesourcery.com>
2253         * gfortran.texi (Runtime): Remove tailing '.' in @menu.
2255 2020-01-27  Tobias Burnus  <tobias@codesourcery.com>
2257         PR fortran/85781
2258         * trans-expr.c (gfc_conv_substring): Handle non-ARRAY_TYPE strings
2259         of Bind(C) procedures.
2261 2020-01-22  Jakub Jelinek  <jakub@redhat.com>
2263         * parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL.
2264         * trans-openmp.c (gfc_trans_omp_target)
2265         <case EXEC_OMP_TARGET_PARALLEL>: Call pushlevel first.
2267         PR fortran/93329
2268         * openmp.c (omp_code_to_statement): Handle remaining EXEC_OMP_*
2269         cases.
2271 2020-01-21  Tobias Burnus  <tobias@codesourcery.com>
2273         PR fortran/93309
2274         * interface.c (gfc_procedure_use): Also check parent namespace for
2275         'implict none (external)'.
2276         * symbol.c (gfc_get_namespace): Don't set has_implicit_none_export
2277         to parent namespace's setting.
2279 2020-01-19  Thomas König  <tkoenig@gcc.gnu.org>
2281         PR fortran/44960
2282         * primary.c (gfc_match_rvalue): Break after setting MATCH_ERROR.
2283         * resolve.c (resolve_function): Issue error when a
2284         function call contains a reference.
2286 2020-01-17  Mark Eggleston  <mark.eggleston@codethink.com>
2288         PR fortran/93236
2289         * resolve.c (resolve_types): Declare boolean recursive and set with the
2290         value of the recursive attribute of namespace proc_name symbol
2291         structure if it exists.  Call gfc_save_all if both flag_automatic and
2292         recursive are false or ns->save_all is true.
2294 2020-01-16  Tobias Burnus  <tobias@codesourcery.com>
2296         PR fortran/93253
2297         * check.c (gfc_invalid_boz): Mention -fallow-invalid-boz
2298         in the error message.
2299         * gfortran.texi (BOZ literal constants): List another missing
2300         extension and refer to -fallow-invalid-boz.
2301         * lang.opt (fallow-invalid-boz): Also mention 'X' in the help text
2302         as it is not covered by the previous wording.
2303         * primary.c (match_boz_constant): Tweak wording such that it is
2304         clear how to fix the nonstandard use.
2306 2020-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2308         PR fortran/65428
2309         * array.c (empty_constructor): New variable.
2310         (empty_ts): New variable.
2311         (expand_constructor): Save typespec in empty_ts.
2312         Unset empty_constructor if there is an element.
2313         (gfc_expand_constructor): Initialize empty_constructor
2314         and empty_ts.  If there was no explicit constructor
2315         type and the constructor is empty, take the type from
2316         empty_ts.
2318 2020-01-09  Tobias Burnus  <tobias@codesourcery.com>
2320         PR fortran/84135
2321         * array.c (gfc_set_array_spec): Fix shifting of codimensions
2322         when adding a dimension.
2323         * decl.c (merge_array_spec): Ditto. Fix using correct codimensions.
2325 2020-01-07  Jakub Jelinek  <jakub@redhat.com>
2327         PR fortran/93162
2328         * trans-openmp.c (gfc_trans_omp_clauses): Check for REF_ARRAY type
2329         before testing u.ar.type == AR_FULL.
2331 2020-01-04  Tobias Burnus  <tobias@codesourcery.com>
2333         PR fortran/91640
2334         * trans-expr.c (gfc_conv_procedure_call): Avoid copy-out for nonvariable
2335         arguments to contiguous dummy args.  Avoid re-checking whether fsym is
2336         NULL.
2338 2020-01-03  Tobias Burnus  <tobias@codesourcery.com>
2340         * trans-openmp.c (gfc_omp_check_optional_argument): Always return a
2341         Boolean expression; handle unallocated/disassociated actual arguments
2342         as absent if passed to nonallocatable/nonpointer dummy array arguments.
2343         (gfc_build_cond_assign): Change to assume a Boolean expr not a pointer.
2344         (gfc_omp_finish_clause, gfc_trans_omp_clauses): Assign NULL to generated
2345         array-data variable if the argument is absent. Simplify code as
2346         'present' is now a Boolean expression.
2348 2020-01-03  Tobias Burnus  <tobias@codesourcery.com>
2350         PR fortran/92994
2351         * primary.c (gfc_match_rvalue): Add some flavor checks
2352         gfc_matching_procptr_assignment.
2353         * resolve.c (resolve_assoc_var): Add more checks for invalid targets.
2355 2020-01-02  Tobias Burnus  <tobias@codesourcery.com>
2357         PR fortran/68020
2358         * array.c (gfc_match_array_spec): Fix implied-type matching
2359         for rank > 2.
2361 2020-01-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
2363         PR fortran/93113
2364         * dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch
2365         for ref types.
2367 2020-01-01  Jakub Jelinek  <jakub@redhat.com>
2369         Update copyright years.
2371         * gfortranspec.c (lang_specific_driver): Update copyright notice
2372         dates.
2373         * gfc-internals.texi: Bump @copying's copyright year.
2374         * gfortran.texi: Ditto.
2375         * intrinsic.texi: Ditto.
2376         * invoke.texi: Ditto.
2378 Copyright (C) 2020 Free Software Foundation, Inc.
2380 Copying and distribution of this file, with or without modification,
2381 are permitted in any medium without royalty provided the copyright
2382 notice and this notice are preserved.