1 2020-11-02 Thomas Schwinge <thomas@codesourcery.com>
4 * trans.c (gfc_set_backend_locus): Use 'gfc_get_location'.
5 (gfc_restore_backend_locus): Adjust.
7 2020-11-02 Tobias Burnus <tobias@codesourcery.com>
10 * openmp.c (gfc_match_omp_atomic): Fix mem-order handling;
11 reject specifying update + capture together.
13 2020-10-30 Tobias Burnus <tobias@codesourcery.com>
15 * dump-parse-tree.c (show_omp_clauses): Handle atomic clauses.
16 (show_omp_node): Call it for atomic.
17 * gfortran.h (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_UNSET,
18 remove GFC_OMP_ATOMIC_SEQ_CST and GFC_OMP_ATOMIC_ACQ_REL.
19 (enum gfc_omp_memorder): Replace OMP_MEMORDER_LAST by
20 OMP_MEMORDER_UNSET, add OMP_MEMORDER_SEQ_CST/OMP_MEMORDER_RELAXED.
21 (gfc_omp_clauses): Add capture and atomic_op.
22 (gfc_code): remove omp_atomic.
23 * openmp.c (enum omp_mask1): Add atomic, capture, memorder clauses.
24 (gfc_match_omp_clauses): Match them.
25 (OMP_ATOMIC_CLAUSES): Add.
26 (gfc_match_omp_flush): Update for 'last' to 'unset' change.
27 (gfc_match_omp_oacc_atomic): Removed and placed content ..
28 (gfc_match_omp_atomic): ... here. Update for OpenMP 5 clauses.
29 (gfc_match_oacc_atomic): Match directly here.
30 (resolve_omp_atomic, gfc_resolve_omp_directive): Update.
31 * parse.c (parse_omp_oacc_atomic): Update for struct gfc_code changes.
32 * resolve.c (gfc_resolve_blocks): Update assert.
33 * st.c (gfc_free_statement): Also call for EXEC_O{ACC,MP}_ATOMIC.
34 * trans-openmp.c (gfc_trans_omp_atomic): Update.
35 (gfc_trans_omp_flush): Update for 'last' to 'unset' change.
37 2020-10-30 Jan Hubicka <jh@suse.cz>
39 * trans-types.c: Include alias.h
40 (gfc_get_array_type_bounds): Set typeless storage.
42 2020-10-27 Harald Anlauf <anlauf@gmx.de>
44 * resolve.c (gfc_impure_variable): A dummy argument with the VALUE
45 attribute may be redefined without making a procedure impure.
47 2020-10-27 Richard Biener <rguenther@suse.de>
49 * trans-array.c (gfc_get_descriptor_field): New helper.
50 (gfc_conv_descriptor_data_get): Use it - drop strange
51 REFERENCE_TYPE handling and make sure we don't trigger it.
52 (gfc_conv_descriptor_data_addr): Use gfc_get_descriptor_field.
53 (gfc_conv_descriptor_data_set): Likewise.
54 (gfc_conv_descriptor_offset): Likewise.
55 (gfc_conv_descriptor_dtype): Likewise.
56 (gfc_conv_descriptor_span): Likewise.
57 (gfc_get_descriptor_dimension): Likewise.
58 (gfc_conv_descriptor_token): Likewise.
59 (gfc_conv_descriptor_subfield): New helper.
60 (gfc_conv_descriptor_stride): Use it.
61 (gfc_conv_descriptor_lbound): Likewise.
62 (gfc_conv_descriptor_ubound): Likewise.
64 2020-10-25 Thomas Koenig <tkoenig@gcc.gnu.org>
67 * gfortran.h (gfc_symbol): Add pass_as_value flag.
68 (gfc_copy_formal_args_intr): Add optional argument
70 (gfc_get_intrinsic_function_symbol): Add prototype.
71 (gfc_find_intrinsic_symbol): Add prototype.
72 * intrinsic.c (gfc_get_intrinsic_function_symbol): New function.
73 (gfc_find_intrinsic_symbol): New function.
74 * symbol.c (gfc_copy_formal_args_intr): Add argument. Handle case
75 where the type needs to be copied from the actual argument.
76 * trans-intrinsic.c (remove_empty_actual_arguments): New function.
77 (specific_intrinsic_symbol): New function.
78 (gfc_conv_intrinsic_funcall): Use it.
79 (strip_kind_from_actual): Adjust so that the expression pointer
81 (gfc_conv_intrinsic_minmaxloc): Likewise.
82 (gfc_conv_intrinsic_minmaxval): Adjust removal of dim.
83 * trans-types.c (gfc_sym_type): If sym->pass_as_value is set, do
84 not pass by reference.
86 2020-10-22 Tobias Burnus <tobias@codesourcery.com>
88 * gfortran.h (enum gfc_omp_memorder): Add.
89 (gfc_omp_clauses): Use it.
90 * openmp.c (gfc_match_omp_flush): Match memorder clauses.
91 * trans-openmp.c (gfc_trans_omp_flush): Handle them.
92 (gfc_trans_omp_directive): Update call.
94 2020-10-21 Tobias Burnus <tobias@codesourcery.com>
97 * class.c: Add _deallocate to the vtable documentation
100 2020-10-16 Harald Anlauf <anlauf@gmx.de>
103 * expr.c (gfc_check_init_expr): Fix check of return code from
104 gfc_intrinsic_func_interface.
105 * intrinsic.c (gfc_intrinsic_func_interface): Add further attempt
106 of simplification of elemental intrinsics with array arguments.
107 * iresolve.c (gfc_resolve_index_func): Keep optional KIND argument
108 for simplification of elemental use of INDEX.
110 2020-10-15 Andre Vehreschild <vehre@gcc.gnu.org>
112 * trans-decl.c (gfc_build_builtin_function_decls): Fix the coarray fndecls.
114 2020-10-14 Tobias Burnus <tobias@codesourcery.com>
117 * scanner.c (load_line): Fix line-truncation warning for !$acc
118 and !gcc$ in free-form source code.
120 2020-10-14 Steven G. Kargl <kargl@gcc.gnu.org>
121 Mark Eggleston <markeggleston@gcc.gnu.org>
124 * decl.c (gfc_get_common): Use gfc_match_common_name instead
125 of match_common_name.
126 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
127 of match_common_name.
128 * match.c : Rename match_common_name to gfc_match_common_name.
129 * match.c (gfc_match_common): Use gfc_match_common_name instead
130 of match_common_name.
131 * match.h : Rename match_common_name to gfc_match_common_name.
132 * resolve.c (resolve_common_vars): Check each symbol in a
133 common block has a global symbol. If there is a global symbol
134 issue an error if the symbol type is a module or a program.
136 2020-10-12 Mark Eggleston <markeggleston@gcc.gnu.org>
139 * decl.c (gfc_match_implicit): Check for numeric and logical
142 2020-10-07 Paul Thomas <pault@gcc.gnu.org>
145 * trans-expr.c (arrayfunc_assign_needs_temporary): Tidy detection
146 of pointer and allocatable functions.
148 2020-10-04 Harald Anlauf <anlauf@gmx.de>
151 * trans-intrinsic.c (strip_kind_from_actual): Helper function for
152 removal of KIND argument.
153 (gfc_conv_intrinsic_minmaxloc): Ignore KIND argument here, as it
154 is treated elsewhere.
156 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
158 * trans-decl.c (gfc_build_library_function_decl_with_spec): Verify
160 (gfc_build_intrinsic_function_decls): Update fnspecs.
161 (gfc_build_builtin_function_decls): Update fnspecs.
162 * trans-io.c (gfc_build_io_library_fndecls): Update fnspecs.
163 * trans-types.c (create_fn_spec): Update fnspecs.
165 2020-09-30 Jan Hubicka <jh@suse.cz>
167 * trans-decl.c (gfc_build_intrinsic_function_decls): Add traling dots
168 to spec strings so they match the number of parameters; do not use
169 R and W for non-pointer parameters. Drop pointless specifier on
170 caf_stop_numeric and caf_get_team.
172 2020-09-30 Jan Hubicka <hubicka@ucw.cz>
174 * trans-io.c (gfc_build_io_library_fndecls): Add trailing dots so
175 length of spec string matches number of arguments.
177 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
180 * expr.c (gfc_is_not_contiguous): Fix check.
181 (gfc_check_pointer_assign): Use it.
183 2020-09-30 Paul Thomas <pault@gcc.gnu.org>
186 * trans-array.c (gfc_conv_array_ref): Make sure that the class
187 decl is passed to build_array_ref in the case of unlimited
188 polymorphic entities.
189 * trans-expr.c (gfc_conv_derived_to_class): Ensure that array
190 refs do not preceed the _len component. Free the _len expr.
191 * trans-stmt.c (trans_associate_var): Reset 'need_len_assign'
192 for polymorphic scalars.
193 * trans.c (gfc_build_array_ref): When the vptr size is used for
194 span, multiply by the _len field of unlimited polymorphic
195 entities, when non-zero.
197 2020-09-30 Tom de Vries <tdevries@suse.de>
199 * f95-lang.c (gfc_init_builtin_functions): Update
200 targetm.libc_has_function call.
202 2020-09-28 Mark Eggleston <markeggleston@gcc.gnu.org>
205 2020-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
206 Mark Eggleston <markeggleston@gcc.gnu.org>
209 * decl.c (gfc_get_common): Use gfc_match_common_name instead
210 of match_common_name.
211 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
212 of match_common_name.
213 * match.c : Rename match_common_name to gfc_match_common_name.
214 * match.c (gfc_match_common): Use gfc_match_common_name instead
215 of match_common_name.
216 * match.h : Rename match_common_name to gfc_match_common_name.
217 * resolve.c (resolve_common_vars): Check each symbol in a
218 common block has a global symbol. If there is a global symbol
219 issue an error if the symbol type is known as is not a common
222 2020-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
223 Mark Eggleston <markeggleston@gcc.gnu.org>
226 * decl.c (gfc_get_common): Use gfc_match_common_name instead
227 of match_common_name.
228 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
229 of match_common_name.
230 * match.c : Rename match_common_name to gfc_match_common_name.
231 * match.c (gfc_match_common): Use gfc_match_common_name instead
232 of match_common_name.
233 * match.h : Rename match_common_name to gfc_match_common_name.
234 * resolve.c (resolve_common_vars): Check each symbol in a
235 common block has a global symbol. If there is a global symbol
236 issue an error if the symbol type is known as is not a common
239 2020-09-24 Paul Thomas <pault@gcc.gnu.org>
242 * trans-expr.c (gfc_conv_procedure_call): Take the deallocation
243 of allocatable result components of a scalar result outside the
244 scalarization loop. Find and use the stored result.
246 2020-09-21 Harald Anlauf <anlauf@gmx.de>
247 Paul Thomas <pault@gcc.gnu.org>
249 * iresolve.c (gfc_resolve_mvbits): Remove unneeded conversion of
250 FROMPOS, LEN and TOPOS arguments to fit a C int.
251 * trans-intrinsic.c (gfc_conv_intrinsic_mvbits): Add inline
252 expansion of MVBITS intrinsic elemental subroutine and add code
253 for runtime argument checking.
254 (gfc_conv_intrinsic_subroutine): Recognise MVBITS intrinsic, but
255 defer handling to gfc_trans_call.
256 * trans-stmt.c (replace_ss):
257 (gfc_trans_call): Adjust to handle inline expansion, scalarization
258 of intrinsic subroutine MVBITS in gfc_conv_intrinsic_mvbits.
259 * trans.h (gfc_conv_intrinsic_mvbits): Add prototype for
260 gfc_conv_intrinsic_mvbits.
262 2020-09-19 Sandra Loosemore <sandra@codesourcery.com>
264 * interface.c (gfc_compare_actual_formal): Add assertion after
265 main processing loop to silence maybe-uninitialized error.
267 2020-09-19 Harald Anlauf <anlauf@gmx.de>
269 * symbol.c (gfc_check_conflict): Allow ELEMENTAL RECURSIVE
270 procedure prefix for -std=f2018.
272 2020-09-17 Tobias Burnus <tobias@codesourcery.com>
276 * decl.c (gfc_match_submod_proc): Avoid later double-free
279 2020-09-16 Tobias Burnus <tobias@codesourcery.com>
282 * trans-openmp.c (gfc_trans_omp_do): Handle simd with (last)private.
284 2020-09-15 Tobias Burnus <tobias@codesourcery.com>
287 * trans.h (gfc_omp_finish_clause): Add bool openacc arg.
288 * trans-openmp.c (gfc_omp_finish_clause): Ditto. Use
289 GOMP_MAP_ALWAYS_POINTER with PSET for pointers.
290 (gfc_trans_omp_clauses): Like the latter and also if the always
293 2020-09-09 Tobias Burnus <tobias@codesourcery.com>
297 * resolve.c (gfc_resolve_code): Also call
298 gfc_resolve_omp_parallel_blocks for 'distribute parallel do (simd)'.
299 * openmp.c (gfc_resolve_omp_parallel_blocks): Handle it.
300 (gfc_resolve_do_iterator): Remove special code for SIMD, which is
302 * trans-openmp.c (gfc_trans_omp_target): For TARGET_PARALLEL_DO_SIMD,
303 call simd not do processing function.
305 2020-09-08 Thomas Koenig <tkoenig@gcc.gnu.org>
307 * intrinsic.texi: Fix description of FINDLOC result.
309 2020-09-07 Harald Anlauf <anlauf@gmx.de>
311 * trans-intrinsic.c (build_round_expr): Use temporary with
312 appropriate kind for conversion before rounding to nearest
313 integer when the result precision is 128 bits.
315 2020-09-07 Tobias Burnus <tobias@codesourcery.com>
318 * resolve.c (get_temp_from_expr): Also reset proc_pointer +
320 (resolve_ptr_fcn_assign): Use information from the LHS.
322 2020-09-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
324 * trans-types.c (gfc_get_derived_type): Fix argument types.
326 2020-09-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
328 * resolve.c (resolve_select_type): Provide a formal arg list.
330 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
332 * trans-types.c (gfc_get_ppc_type): Add comment.
334 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
336 * trans-types.c (gfc_get_ppc_type): Fix function arg types.
338 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
341 * trans-stmt.c (gfc_trans_fail_image): caf_fail_image
344 2020-09-02 Jakub Jelinek <jakub@redhat.com>
347 * check.c (gfc_boz2real, gfc_boz2int): When clearing first two bits,
348 change also '2' to '0' and '3' to '1' rather than just handling '4'
351 2020-09-01 Steven G. Kargl <kargl@gcc.gnu.org>
352 Mark Eggleston <markeggleston@gcc.gnu.org>
355 * resolve.c (resolve_select_type): Add check for BT_CLASS
356 type before using the CLASS_DATA macro which will have a
357 NULL pointer to derive components if it isn't BT_CLASS.
359 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
362 * module.c (module_peek_char): Peek ahead function.
363 (parse_integer): Add code for parsing signed integers.
364 (parse_atom): Add code to handle signed integers.
365 (peek_atom): Add code to handle signed integers.
367 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
370 * expr.c (gfc_check_init_expr): Add default error message for the AS_ASSUMED_RANK case.
372 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
375 * expr.c (check_references): Change different relational operator
376 to less-than operator to avoid infinite loop.
378 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
381 * simplify.c (simplify_bound_dim): Add check for NULL pointer
382 before trying to access structure member.
384 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
387 * interface.c (gfc_compare_actual_formal): Add code to also raise
388 the actual argument cannot be an assumed-size array error when the
389 dummy arguments are deferred-shape or assumed-rank pointer.
391 2020-08-28 Tobias Burnus <tobias@codesourcery.com>
394 * trans-array.c (gfc_trans_g77_array): Check against the parm decl and
395 set the nonparm decl used for the is-present check to NULL if absent.
397 2020-08-28 Paul Thomas <pault@gcc.gnu.org>
400 * simplify.c (gfc_simplify_reshape): Detect zero shape and
401 clear index if found.
403 2020-08-27 Mark Eggleston <markeggleston@gcc.gnu.org>
406 * decl.c (char_len_param_value): Check gfc_seen_div0 and
407 if it is set return MATCH_ERROR.
409 2020-08-27 Martin Liska <mliska@suse.cz>
411 * trans-openmp.c (gfc_trans_omp_do): Set exact argument of a vector
412 growth function to true.
414 2020-08-26 Tobias Burnus <tobias@codesourcery.com>
416 * gfortran.h (enum gfc_omp_device_type): New.
417 (symbol_attribute, gfc_omp_clauses, gfc_common_head): Use it.
418 * module.c (enum ab_attribute): Add AB_OMP_DEVICE_TYPE_HOST,
419 AB_OMP_DEVICE_TYPE_NOHOST and AB_OMP_DEVICE_TYPE_ANY.
420 (attr_bits, mio_symbol_attribute): Handle it.
421 (load_commons, write_common_0): Handle omp_device_type flag.
422 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_DEVICE_TYPE
423 (OMP_DECLARE_TARGET_CLAUSES): Likewise.
424 (gfc_match_omp_clauses): Match 'device_type'.
425 (gfc_match_omp_declare_target): Handle it.
426 * trans-common.c (build_common_decl): Write device-type clause.
427 * trans-decl.c (add_attributes_to_decl): Likewise.
429 2020-08-23 Paul Thomas <pault@gcc.gnu.org>
432 * trans-types.c (gfc_get_derived_type): Derived types that are
433 used in submodules are not compatible with TYPE_CANONICAL from
434 any of the global namespaces.
436 2020-08-20 Paul Thomas <pault@gcc.gnu.org>
440 * trans-array.c (get_array_charlen): Tidy up the evaluation of
441 the string length for array constructors. Avoid trailing array
442 references. Ensure string lengths of deferred length components
443 are set. For parentheses operator apply string length to both
444 the primary expression and the enclosed expression.
446 2020-08-20 Andre Vehreschild <vehre@gcc.gnu.org>
449 * trans-array.c (gfc_bcast_alloc_comp): Use the correct variable.
451 2020-08-20 Tobias Burnus <tobias@codesourcery.com>
453 * openmp.c (gfc_match_omp_clauses): Re-order 'if' clause pasing
454 to avoid creating spurious symbols.
456 2020-08-18 Harald Anlauf <anlauf@gmx.de>
458 * check.c (check_rest): Reject MIN/MAX character arguments of
460 * simplify.c (min_max_choose): The simplification result shall
461 have the highest kind value of the arguments.
462 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Choose type and
463 kind of intermediate by looking at all arguments, not the result.
465 2020-08-17 Martin Liska <mliska@suse.cz>
467 * openmp.c (resolve_omp_clauses): Add static assert
468 for OMP_LIST_NUM and size of clause_names array.
469 Remove check that is always true.
471 2020-08-17 Martin Liska <mliska@suse.cz>
473 * openmp.c (resolve_omp_clauses): Add NONTEMPORAL to clause
476 2020-08-13 Andre Vehreschild <vehre@gcc.gnu.org>
479 * trans-array.c (structure_alloc_comps): Keep caf-mode when applying to
480 components; get the caf_token correctly for allocated scalar components.
482 2020-08-13 Matthew Krupcale <mkrupcale@matthewkrupcale.com>
485 * invoke.texi: Fix typos.
487 2020-08-12 Tobias Burnus <tobias@codesourcery.com>
489 * gfortran.h: Add OMP_LIST_NONTEMPORAL.
490 * dump-parse-tree.c (show_omp_clauses): Dump it
491 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_NOTEMPORAL.
492 (OMP_SIMD_CLAUSES): Add it.
493 (gfc_match_omp_clauses): Match nontemporal clause.
494 * trans-openmp.c (gfc_trans_omp_clauses): Process
497 2020-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
500 * frontend-passes.c (doloop_contained_function_call):
501 Do not dereference a NULL pointer for value.function.esym.
503 2020-08-10 Paul Thomas <pault@gcc.gnu.org>
506 * trans-expr.c (fcncall_realloc_result): Only compare shapes if
509 2020-08-10 Paul Thomas <pault@gcc.gnu.org>
512 * resolve.c (check_host_association): Replace the gcc_assert
513 with an error for internal procedures.
515 2020-08-05 Thomas Koenig <tkoenig@gcc.gnu.org>
518 * frontend-passes.c (doloop_contained_function_call): New
520 (doloop_contained_procedure_code): New function.
521 (CHECK_INQ): Macro for inquire checks.
522 (doloop_code): Invoke doloop_contained_procedure_code and
523 doloop_contained_function_call if appropriate.
524 (do_intent): Likewise.
526 2020-08-04 Tobias Burnus <tobias@codesourcery.com>
528 * openmp.c (resolve_omp_do): Detect not perfectly
529 nested loop with innermost collapse.
531 2020-08-04 Tobias Burnus <tobias@codesourcery.com>
533 * trans-openmp.c (gfc_trans_omp_do): Fix 'lastprivate(conditional:'.
535 2020-08-03 Julian Brown <julian@codesourcery.com>
536 Thomas Schwinge <thomas@codesourcery.com>
538 * trans-openmp.c (gfc_trans_omp_clauses): Don't create present/release
539 mappings for array descriptors.
541 2020-08-03 Martin Jambor <mjambor@suse.cz>
543 * f95-lang.c (gfc_init_builtin_functions): Remove processing of
546 2020-08-03 Tobias Burnus <tobias@codesourcery.com>
548 * gfc-internals.texi: Fix typos.
549 * gfortran.texi: Likewise.
550 * intrinsic.texi: Likewise.
551 * invoke.texi: Likewise.
553 2020-08-02 Paul Thomas <pault@gcc.gnu.org>
556 * interface.c (gfc_check_dummy_characteristics): If a module
557 procedure arrives with assumed shape in the interface and
558 deferred shape in the procedure itself, update the latter and
559 copy the lower bounds.
561 2020-08-02 Paul Thomas <pault@gcc.gnu.org>
564 * primary.c (gfc_match_varspec): In the case that a component
565 reference is added to an intrinsic type component, emit the
566 error message in this function.
568 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
570 * dump-parse-tree.c (show_omp_clauses): Handle order(concurrent).
571 * gfortran.h (struct gfc_omp_clauses): Add order_concurrent.
572 * openmp.c (enum omp_mask1, OMP_DO_CLAUSES, OMP_SIMD_CLAUSES):
573 Add OMP_CLAUSE_ORDER.
574 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
575 Handle order(concurrent) clause.
577 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
579 * openmp.c (resolve_omp_clauses): Permit 'omp target data' without
580 map if use_device_{addr,ptr} is present.
582 2020-07-29 Mark Eggleston <markeggleston@gcc.gnu.org>
585 * intrinsic.c (gfc_convert_type_warn): Add check for
586 LOGICAL type so that warnings are not output.
588 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
590 * module.c (mio_symbol_attribute): Fix indent of previous
593 2020-07-29 Mark Eggleston <markeggleston@gcc.gnu.org>
596 * trans-array.c (gfc_walk_array_ref): If ref->ss.end is set
597 call gfc_get_scalar_ss.
599 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
601 * gfortran.h (enum gfc_statement): Add ST_OMP_REQUIRES.
602 (enum gfc_omp_requires_kind): New.
603 (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_ACQ_REL.
604 (struct gfc_namespace): Add omp_requires and omp_target_seen.
605 (gfc_omp_requires_add_clause,
606 (gfc_check_omp_requires): New.
607 * match.h (gfc_match_omp_requires): New.
608 * module.c (enum ab_attribute, attr_bits): Add omp requires clauses.
609 (mio_symbol_attribute): Read/write them.
610 * openmp.c (gfc_check_omp_requires, (gfc_omp_requires_add_clause,
611 gfc_match_omp_requires): New.
612 (gfc_match_omp_oacc_atomic): Use requires's default mem-order.
613 * parse.c (decode_omp_directive): Match requires, set omp_target_seen.
614 (gfc_ascii_statement): Handle ST_OMP_REQUIRES.
615 * trans-openmp.c (gfc_trans_omp_atomic): Handle GFC_OMP_ATOMIC_ACQ_REL.
617 2020-07-27 Tobias Burnus <tobias@codesourcery.com>
619 * openmp.c (gfc_resolve_omp_directive): Remove NULL check
620 for clauses in EXEC_OMP_CRITICAL as it no longer can be NULL.
622 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
624 * gfortran.h (gfc_omp_namelist): Add lastprivate_conditional.
625 * openmp.c (gfc_match_omp_clauses): Handle 'conditional:'
626 modifier of 'lastprivate'.
627 * trans-openmp.c (gfc_omp_clause_default_ctor): Don't assert
628 on OMP_CLAUSE__CONDTEMP_ and other OMP_*TEMP_.
629 (gfc_trans_omp_variable_list): Handle lastprivate_conditional.
631 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
633 * intrinsic.texi (OMP_LIB_KINDS): Add omp_depend_kind.
635 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
637 * gfortran.texi (Standards): Update URL; state that OpenMP 4.5
638 is supported and 5.0 is partially.
639 * intrinsic.texi (OpenMP Modules): Refer also to OpenMP 5.0;
640 (OMP_LIB): Add missing derived type and new named constants.
642 2020-07-22 Tobias Burnus <tobias@codesourcery.com>
644 * gfortran.h (enum gfc_omp_if_kind): Add OMP_IF_CANCEL and OMP_IF_SIMD.
645 * openmp.c (OMP_SIMD_CLAUSES): Add OMP_CLAUSE_IF.
646 (gfc_match_omp_clauses, resolve_omp_clauses): Handle 'if (simd/cancel:'.
647 * dump-parse-tree.c (show_omp_clauses): Likewise.
648 * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_cancel,
649 (gfc_split_omp_clauses): Likewise.
651 2020-07-22 Tobias Burnus <tobias@codesourcery.com>
653 * openmp.c (gfc_match_omp_critical): Fix handling hints; permit
654 hint clause without named critical.
655 (resolve_omp_clauses): Require nonnegative constant integer
657 (gfc_resolve_omp_directive): Check for no name but
658 nonzero value for hint clause.
659 * parse.c (parse_omp_structured_block): Fix same-name check
661 * trans-openmp.c (gfc_trans_omp_critical): Handle hint clause properly.
663 2020-07-21 Harald Anlauf <anlauf@gmx.de>
666 * trans-decl.c (gfc_get_extern_function_decl): Check whether a
667 symbol belongs to a different module.
669 2020-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
672 * dump-parse-tree.c (get_c_type_name): Always use the entries from
673 c_interop_kinds_table to find the correct C type.
675 2020-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
678 * frontend-passes.c (gfc_check_externals): Adjust formatting.
679 (implicit_pure_call): New function.
680 (implicit_pure_expr): New function.
681 (gfc_fix_implicit_pure): New function.
682 * gfortran.h (gfc_fix_implicit_pure): New prototype.
683 * parse.c (translate_all_program_units): Call gfc_fix_implicit_pure.
685 2020-07-18 David Edelsohn <dje.gcc@gmail.com>
687 * check.c (gfc_invalid_boz): Mark hint for translation using _().
689 2020-07-16 Julian Brown <julian@codesourcery.com>
690 Thomas Schwinge <thomas@codesourcery.com>
692 * trans-openmp.c (gfc_trans_omp_clauses): Rework OpenACC
693 attach/detach handling for arrays with descriptors.
695 2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
696 Mark Eggleston <markeggleston@gcc.gnu.org>
699 * expr.c (gfc_check_pointer_assigb): Output an error if
700 rvalue is a zero sized array or output an error if rvalue
701 doesn't have a symbol tree.
703 2020-07-14 Tobias Burnus <tobias@codesourcery.com>
705 * openmp.c (gfc_match_omp_clauses): Match also derived-type
706 component refs in OMP_CLAUSE_MAP.
707 (resolve_omp_clauses): Resolve those.
708 * trans-openmp.c (gfc_trans_omp_array_section, gfc_trans_omp_clauses):
709 Handle OpenMP structure-element mapping.
710 (gfc_trans_oacc_construct, gfc_trans_oacc_executable_directive,
711 (gfc_trans_oacc_combined_directive, gfc_trans_oacc_declare): Update
712 add openacc=true in gfc_trans_omp_clauses call.
714 2020-07-14 Tobias Burnus <tobias@codesourcery.com>
717 * trans-openmp.c (gfc_has_alloc_comps): Return false also for
720 2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
721 Mark Eggleston <markeggleston@gcc.gnu.org>
724 * decl.c (add_init_expr_sym): For a symbol that is a
725 parameter accept an initialisation if it does not have a
726 value otherwise output a error and reject.
728 2020-07-13 Mark Eggleston <markeggleston@gcc.gnu.org>
731 * resolve.c (resolve_fl_variable): Remove type and intent
732 checks from the check for dummy.
734 2020-07-13 Steven G. Kargl <kargl@gcc.gnu.org>
735 Mark Eggleston <markeggleston@gcc.gnu.org>
738 * check.c (dim_rank_check): Allow NULL references in call to
739 gfc_find_array_ref and return false if no reference is found.
741 2020-07-11 Thomas Koenig <tkoenig@gcc.gnu.org>
744 * frontend-passes.c (check_externals_procedure): Add locus
745 information for new_sym.
746 * interface.c (gfc_check_dummy_characteristics): Do not warn
747 about INTENT for artificially generated variables.
749 2020-07-10 Harald Anlauf <anlauf@gmx.de>
752 * class.c (gfc_add_component_ref, gfc_build_class_symbol):
753 Add checks for NULL pointer dereference.
754 * primary.c (gfc_variable_attr): Likewise.
755 * resolve.c (resolve_variable, resolve_assoc_var)
756 (resolve_fl_var_and_proc, resolve_fl_variable_derived)
757 (resolve_symbol): Likewise.
759 2020-07-10 Harald Anlauf <anlauf@gmx.de>
762 * match.c (gfc_match_select_rank): Catch NULL pointer
764 * resolve.c (resolve_assoc_var): Catch NULL pointer dereference
765 that may occur after an illegal declaration.
767 2020-07-09 Julian Brown <julian@codesourcery.com>
769 * trans-openmp.c (gfc_trans_omp_clauses): Use 'inner' not 'decl' for
770 derived type members which themselves have derived types.
772 2020-07-08 Harald Anlauf <anlauf@gmx.de>
775 * resolve.c (gfc_resolve_code): Check whether assign target is a
778 2020-07-06 Harald Anlauf <anlauf@gmx.de>
781 * match.c (copy_ts_from_selector_to_associate, build_class_sym):
782 Distinguish between unlimited polymorphic and ordinary variables
783 to avoid NULL pointer dereference.
784 * resolve.c (resolve_select_type):
785 Distinguish between unlimited polymorphic and ordinary variables
786 to avoid NULL pointer dereference.
788 2020-07-06 Harald Anlauf <anlauf@gmx.de>
791 * resolve.c (gfc_resolve_code): Check for valid arguments to
794 2020-07-05 Thomas Koenig <tkoenig@gcc.gnu.org>
797 * frontend-passes.c (check_against_globals): New function.
798 (gfc_check_externals): Split; also invoke check_against_globals
800 (gfc_check_externals0): Recursive part formerly in
802 * resolve.c (resolve_global_procedure): Set sym->error on
804 * symbol.c (ambiguous_symbol): Check for, and set sym->error.
806 2020-07-02 Harald Anlauf <anlauf@gmx.de>
809 * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
811 2020-07-02 Harald Anlauf <anlauf@gmx.de>
814 * class.c (gfc_find_derived_vtab): Punt if name is not set.
816 2020-07-02 Mark Eggleston <markeggleston@gcc.gnu.org>
819 * check.c (gfc_invalid_boz): Change array declaration for
822 2020-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
823 Mark Eggleston <markeggleston@gcc.gnu.org>
826 * interface.c (generic_correspondence): Only use the pointer
827 to a symbol if exists.
829 2020-07-01 David Edelsohn <dje.gcc@gmail.com>
831 * check.c (gfc_invalid_boz): Fix bootstrap. Revert
832 Mark hint for translation using _().
834 2020-07-01 Mark Eggleston <markeggleston@gcc.gnu.org>
837 * arith.c (reduce_binary_aa): Mark for translation the string
838 parameter to gfc_check_conformance with G_().
839 * check.c (gfc_invalid_boz): Mark hint for translation using
840 _(). (gfc_check_achar): Mark for translation the message
841 parameter to gfc_invalid_boz using G_(). (gfc_check_char):
842 Mark for translation the message parameter to gfc_invalid_boz
843 using G_(). (gfc_check_complex): Mark for translation the
844 message parameter to gfc_invalid_boz using G_().
845 (gfc_check_float): Mark for translation the message
846 parameter to gfc_invalid_boz using G_(). (check_rest): Mark
847 for translation the string parameter to gfc_check_conformance
848 with _(). (gfc_check_minloc_maxloc): Mark for translation
849 the string parameter to gfc_check_conformance with _().
850 (gfc_check_findloc): Mark for translation the string parameter
851 to gfc_check_conformance with _(). (check_reduction): Mark
852 for translation the string parameter to gfc_check_conformance
853 with _(). (gfc_check_pack): Mark for translation the string
854 parameter to gfc_check_conformance with _().
855 * decl.c (match_old_style_init): Mark for translation the
856 message parameter to gfc_invalid_boz using G_().
857 * expr.c (gfc_check_assign): Mark for translation the string
858 parameter to gfc_check_conformance with _().
859 * intrinsic.c (check_specific): Mark for translation the string
860 parameter to gfc_check_conformance with _().
861 (gfc_check_intrinsic_standard): Mark symstd_msg strings for
862 translation using G_(). No need to mark symstd_msg for
863 translation in call to gfc_warning or when setting symstd.
864 * io.c (check_open_constraints): Mark strings for translation
865 using G_() in all calls to warn_or_error. (match_io_element):
866 Mark for translation the message parameter to gfc_invalid_boz
868 * primary.c (match_boz_constant): Mark for translation the
869 message parameter to gfc_invalid_boz using G_().
870 * resolve.c (resolve_elemental_actual): Mark for translation
871 the string parameter to gfc_check_conformance with _().
872 (resolve_operator): Mark for translation the string parameter
873 to gfc_check_conformance with _(). Mark translation strings
874 assigned to msg using G_() for use in a call to cfg_warning.
876 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org>
877 Mark Eggleston <markeggleston@gcc.gnu.org>
880 * resolve.c (resolve_elemental_actual): Add code to check for
881 non-optional argument of the same rank. Revise warning message
882 to refer to the Fortran 2018 standard.
884 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org>
885 Mark Eggleston <markeggleston@gcc.gnu.org>
888 * decl.c (gfc_match_decl_type_spec): Compare with "* ) " instead
891 2020-06-30 Harald Anlauf <anlauf@gmx.de>
894 * resolve.c (resolve_assoc_var): Avoid NULL pointer dereference.
896 2020-06-30 Thomas Koenig <tkoenig@gcc.gnu.org>
899 * gfortran.h (gfc_typename): Add optional argument for_hash.
900 * misc.c (gfc_typename): When for_hash is true, just retur
902 * class.c (gfc_intrinsic_hash_value): Call gfc_typename with
905 2020-06-29 Harald Anlauf <anlauf@gmx.de>
908 * decl.c (gfc_match_data): Avoid NULL pointer dereference.
910 2020-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
913 * trans-decl.c (gfc_generate_function_code): Do not generate
914 recursion check for compiler-generated procedures.
916 2020-06-29 Harald Anlauf <anlauf@gmx.de>
919 * trans-stmt.c (gfc_trans_sync): Do proper kind conversion in
920 bounds-checking code.
922 2020-06-28 Harald Anlauf <anlauf@gmx.de>
925 * match.c (gfc_match_select_rank): Do not dereference NULL pointer.
927 2020-06-28 Harald Anlauf <anlauf@gmx.de>
930 * symbol.c (gfc_add_type): If sym->ns->proc_name is set, use it,
931 otherwise fall back to sym->name.
933 2020-06-27 Harald Anlauf <anlauf@gmx.de>
936 * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
938 2020-06-25 Harald Anlauf <anlauf@gmx.de>
941 * match.c (select_rank_set_tmp): Enlarge internal buffer used in
942 generating a mangled name.
943 * resolve.c (resolve_select_rank): Likewise.
945 2020-06-25 Harald Anlauf <anlauf@gmx.de>
948 * decl.c (gfc_match_decl_type_spec): Replace a fixed size
949 buffer by a pointer and reallocate if necessary.
951 2020-06-25 Tobias Burnus <tobias@codesourcery.com>
954 * resolve.c (gfc_resolve_substring_charlen): Remove
955 bogus ts.kind setting for the expression.
957 2020-06-25 Tobias Burnus <tobias@codesourcery.com>
958 Kwok Cheung Yeung <kcy@codesourery.com>
961 * trans-openmp.c (gfc_trans_omp_target): Use correct scoping block.
963 2020-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
965 * trans-openmp.c (gfc_split_omp_clauses): Add if clause
966 to target and simd sub-constructs.
968 2020-06-24 Harald Anlauf <anlauf@gmx.de>
971 * iresolve.c (gfc_get_string): Enlarge internal buffer used in
972 generating the mangled name.
974 2020-06-23 Thomas Koenig <tkoenig@gcc.gnu.org>
977 * dependency.c (ref_same_as_full_array): Handle case of AR_FULL
980 2020-06-23 Steven G. Kargl <kargl@gcc.gnu.org>
981 Mark Eggleston <markeggleston@gcc.gnu.org>
984 * decl.c (gfc_match_implicit): Only perform else branch if
985 the type spect is not BT_DERIVED.
987 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org>
988 Mark Eggleston <markeggleston@gcc.gnu.org>
991 * intrinsic.c (add_functions): Replace CLASS_INQUIRY with
992 CLASS_TRANSFORMATIONAL for intrinsic num_images.
993 (make_generic): Replace ACTUAL_NO with ACTUAL_YES for
994 intrinsic team_number.
995 * resolve.c (resolve_fl_procedure): Check pointer ts.u.derived
996 exists before using it.
998 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org>
999 Mark Eggleston <markeggleston@gcc.gnu.org>
1002 * check.c (gfc_check_reshape): Add check for a value when
1003 the symbol has an attribute flavor FL_PARAMETER.
1005 2020-06-22 Mark Eggleston <markeggleston@gcc.gnu.org>
1008 * arith.c (gfc_arith_error): Enclose strings in G_() instead
1011 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1014 * gfortran.h (gfc_common_head): Enlarge buffer.
1015 * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporary
1016 buffers, and add check on length on mangled name to prevent
1019 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1022 * iresolve.c (gfc_get_string): Enlarge static buffer size.
1024 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1027 * class.c (get_unique_type_string): Return a string with dynamic
1029 (get_unique_hashed_string, gfc_hash_value): Use dynamic result
1030 from get_unique_type_string instead of static buffer.
1032 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1035 * interface.c (check_sym_interfaces): Enlarge temporary buffer,
1036 and add check on length on mangled name to prevent overflow.
1038 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1041 * match.c (gfc_match_equivalence): Check constraints on
1042 EQUIVALENCE objects also for CLASS variables.
1044 2020-06-18 Tobias Burnus <tobias@codesourcery.com>
1046 * openmp.c (resolve_omp_clauses): Reject vars with
1047 allocatable components in OpenMP map clauses.
1049 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1051 * parse.c (decode_oacc_directive): Permit 'acc routine' also
1052 inside pure procedures.
1053 * openmp.c (gfc_match_oacc_routine): Inside pure procedures
1054 do not permit gang, worker or vector clauses.
1056 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1058 * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
1059 from "in PURE" error message also for -fopenmp-simd.
1061 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1063 * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
1064 from "in PURE" error message.
1066 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1069 * dump-parse-tree.c (gfc_dump_global_symbols): If the symroot is
1070 empty, just output "empty".
1072 2020-06-14 Harald Anlauf <anlauf@gmx.de>
1075 * class.c (get_unique_type_string): Replace use of fixed size
1076 buffer by internally passing a pointer to strings.
1078 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1080 * check.c (gfc_check_random_seed): Always use locations
1081 from get and put arguments for error messages.
1083 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1086 * class.c (finalize_component): Return early if finalization has
1087 already happened for expression and component within namespace.
1088 * gfortran.h (gfc_was_finalized): New type.
1089 (gfc_namespace): Add member was_finalzed.
1090 (gfc_expr): Remove finalized.
1091 * symbol.c (gfc_free_namespace): Free was_finalized.
1093 2020-06-11 Harald Anlauf <anlauf@gmx.de>
1094 Steven G. Kargl <kargl@gcc.gnu.org>
1097 * decl.c (access_attr_decl): Use correct symbol in error message.
1099 2020-06-11 Steven G. Kargl <kargl@gcc.gnu.org>
1100 Harald Anlauf <anlauf@gmx.de>
1103 * check.c (invalid_null_arg): Rename to gfc_invalid_null_arg.
1104 (gfc_check_associated, gfc_check_kind, gfc_check_merge)
1105 (gfc_check_shape, gfc_check_size, gfc_check_spread)
1106 (gfc_check_transfer): Adjust.
1107 (gfc_check_len_lentrim, gfc_check_trim): Check for NULL() argument.
1108 * gfortran.h: Declare gfc_invalid_null_arg ().
1109 * intrinsic.c (check_arglist): Check for NULL() argument.
1111 2020-06-11 Harald Anlauf <anlauf@gmx.de>
1114 * expr.c (gfc_check_pointer_assign): Skip contiguity check of rhs
1115 of pointer assignment if lhs cannot be simply contiguous.
1117 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1120 * trans-array.c (gfc_conv_array_ref): For class array dummy
1121 arguments use the transformed descriptor in sym->backend_decl
1122 instead of the original descriptor.
1124 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1128 * trans-array.c (gfc_conv_expr_descriptor): Enable the
1129 creation of a new descriptor with the correct one based
1130 indexing for array sections. Rework array descriptor
1131 indexing offset calculation.
1133 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1136 * trans-expr.c (gfc_conv_procedure_call): In the case of
1137 assumed-size arrays ensure that the reference is to a full array.
1139 2020-06-07 Harald Anlauf <anlauf@gmx.de>
1142 * class.c (gfc_hash_value): Add cast.
1144 2020-06-07 Harald Anlauf <anlauf@gmx.de>
1147 * class.c (get_unique_type_string, gfc_hash_value): Enlarge
1148 buffers, and check whether the strings returned by
1149 get_unique_type_string() fit.
1151 2020-06-05 Harald Anlauf <anlauf@gmx.de>
1155 * decl.c (gfc_match_decl_type_spec): Enlarge buffer, and enhance
1156 string copy to detect buffer overflow.
1157 * gfortran.h (gfc_common_head): Enlarge buffer.
1158 * trans-common.c (finish_equivalences): Enhance string copy to
1159 detect buffer overflow.
1161 2020-06-05 Tom Tromey <tromey@adacore.com>
1164 * misc.c (gfc_closest_fuzzy_match): Update cutoff value
1167 2020-06-04 Steven G. Kargl <kargl@gcc.gnu.org>
1168 Harald Anlauf <anlauf@gmx.de>
1171 * trans-expr.c (gfc_conv_expr_reference): Do not dereference NULL
1174 2020-06-03 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1179 * trans-expr.c (gfc_maybe_dereference_var): Add assumed-rank to
1180 character dummy arguments list of possible attributes.
1182 2020-06-03 Tobias Burnus <tobias@codesourcery.com>
1184 * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
1185 * trans-openmp.c (gfc_omp_predetermined_mapping): New.
1186 * trans.h (gfc_omp_predetermined_mapping): Declare.
1188 2020-05-31 Thomas Koenig <tkoenig@gcc.gnu.org>
1191 * class.c (finalize_component): Use expr->finalized instead of
1193 * gfortran.h (gfc_component): Remove finalized member.
1194 (gfc_expr): Add it here instead.
1196 2020-05-30 Harald Anlauf <anlauf@gmx.de>
1199 * primary.c (is_inquiry_ref): Move validity check of inquiry
1200 references against selected Fortran standard from here...
1201 (gfc_match_varspec) ...to here.
1203 2020-05-30 Harald Anlauf <anlauf@gmx.de>
1206 * class.c (get_unique_type_string): Use buffer overrun check.
1208 2020-05-29 Harald Anlauf <anlauf@gmx.de>
1211 * class.c (get_unique_type_string): Enlarge temporary for
1212 name-mangling. Use strncpy to prevent buffer overrun.
1213 (get_unique_hashed_string): Enlarge temporary.
1214 (gfc_hash_value): Enlarge temporary for name-mangling.
1216 2020-05-28 Harald Anlauf <anlauf@gmx.de>
1219 * primary.c (is_inquiry_ref): Check validity of inquiry
1220 references against selected Fortran standard.
1222 2020-05-28 Steven G. Kargl <kargl@gcc.gnu.org>
1223 Mark Eggleston <markeggleston@gcc.gnu.org>
1224 Mark Eggleston <markeggleston@gcc.gnu.org>
1227 * match.c (gfc_match_type_spec): New variable ok initialised
1228 to true. Set ok with the return value of gfc_reduce_init_expr
1229 called only if the expression is not EXPR_CONSTANT and is not
1230 EXPR_VARIABLE. Add !ok to the check for type not being integer
1231 or the rank being greater than zero.
1233 2020-05-27 Harald Anlauf <anlauf@gmx.de>
1236 * iresolve.c (gfc_get_string): Enlarge temporary for
1239 2020-05-27 Tobias Burnus <tobias@codesourcery.com>
1240 Mark Eggleston <markeggleston@gnu.gcc.org>
1243 * trans-decl.c (gfc_get_symbol_decl): Remove unnecessary block
1244 delimiters. Add auxiliary variables if a label is assigned to
1245 a return variable. (gfc_gat_fake_result): If the symbol has an
1246 assign attribute set declaration from the symbol's backend
1249 2020-05-26 Harald Anlauf <anlauf@gmx.de>
1252 * trans-types.c (gfc_get_derived_type): Enlarge temporary to hold
1253 mangled name "_caf_symbol".
1255 2020-05-26 Alexandre Oliva <oliva@adacore.com>
1257 * options.c (gfc_get_option_string): Drop auxbase, add
1260 2020-05-24 Harald Anlauf <anlauf@gmx.de>
1263 * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporaries
1266 2020-05-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1269 * libgfortran.h (libgfortran_error_codes): Add
1270 LIBERROR_BAD_WAIT_ID.
1272 2020-05-20 Mark Eggleston <markeggleston@gcc.gnu.org>
1275 * resolve.c (resolve_fl_procedure): Set name depending on
1276 whether the result attribute is set. For PROCEDURE/RESULT
1277 conflict use the name in sym->ns->proc_name->name.
1278 * symbol.c (gfc_add_type): Add check for function and result
1279 attributes use sym->ns->proc_name->name if both are set.
1280 Where the symbol cannot have a type use the name in
1281 sym->ns->proc_name->name.
1283 2020-05-18 Harald Anlauf <anlauf@gmx.de>
1286 * arith.c (gfc_divide): Revert hunk introduced by patch for
1288 * decl.c (variable_decl): Generate error for array shape not being
1289 an INTEGER constant.
1290 (gfc_get_pdt_instance): Generate error if KIND or LEN expressions
1291 in declaration of a PDT instance do not simplify to INTEGER
1294 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
1297 * openmp.c (resolve_omp_do): Permit more clauses for SIMD
1298 iteration variables.
1300 2020-05-14 Jakub Jelinek <jakub@redhat.com>
1302 * trans-openmp.c: Include function.h.
1303 (gfc_trans_omp_target): Set cfun->has_omp_target.
1305 2020-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
1308 * decl.c (char_len_param_value): Check whether character
1309 length expression is of type EXPR_OP and if so simplify it.
1310 * resolve.c (resolve_charlen): Reject length if it has a
1313 2020-05-13 Tobias Burnus <tobias@codesourcery.com>
1316 * openmp.c (OMP_DISTRIBUTE_CLAUSES): Add OMP_CLAUSE_LASTPRIVATE.
1317 (gfc_resolve_do_iterator): Skip the private handling for SIMD as
1318 that is handled by ME code.
1319 * trans-openmp.c (gfc_trans_omp_do): Don't add private/lastprivate
1320 for dovar_found == 0, unless !simple.
1322 2020-05-11 Harald Anlauf <anlauf@gmx.de>
1325 * arith.c (gfc_divide): Do not error out if operand 2 is
1326 non-numeric. Defer checks to later stage.
1328 2020-05-11 Tobias Burnus <tobias@codesourcery.com>
1331 * trans.h (gfc_conv_expr_present): Add use_saved_decl=false argument.
1332 * trans-expr.c (gfc_conv_expr_present): Likewise; use DECL directly
1333 and only if use_saved_decl is true, use the actual PARAM_DECL arg (saved
1335 * trans-array.c (gfc_trans_dummy_array_bias): Set local 'arg.0'
1336 variable to NULL if 'arg' is not present.
1337 * trans-openmp.c (gfc_omp_check_optional_argument): Simplify by checking
1338 'arg.0' instead of the true PARM_DECL.
1339 (gfc_omp_finish_clause): Remove setting 'arg.0' to NULL.
1341 2020-05-11 Janus Weil <janus@gcc.gnu.org>
1342 Dominique d'Humieres <dominiq@lps.ens.fr>
1345 * gfortran.h: Rename field resolved as resolve_symbol_called
1346 and assign two 2 bits instead of 1.
1347 * interface.c (check_dtio_interface1): Use new field name.
1348 (gfc_find_typebound_dtio_proc): Use new field name.
1349 * resolve.c (gfc_resolve_intrinsic): Replace check of the formal
1350 field with resolve_symbol_called is at least 2, if it is not
1351 set the field to 2. (resolve_typebound_procedure): Use new field
1352 name. (resolve_symbol): Use new field name and check whether it
1353 is at least 1, if it is not set the field to 1.
1355 2020-05-10 Harald Anlauf <anlauf@gmx.de>
1358 * arith.c (gfc_divide): Catch division by zero.
1359 (eval_intrinsic_f3): Safeguard for NULL operands.
1361 2020-05-05 Steve Kargl <kargl@gcc.gnu.org>
1362 Harald Anlauf <anlauf@gmx.de>
1365 * check.c (gfc_check_associated, invalid_null_arg): Factorize
1366 check for presence of invalid NULL() argument.
1367 (gfc_check_kind, gfc_check_merge, gfc_check_shape)
1368 (gfc_check_sizeof, gfc_check_spread, gfc_check_transfer): Use this
1369 check for presence of invalid NULL() arguments.
1371 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1374 * io.c (check_io_constraints): Initialize local variable num to
1375 -1 and assert that it receives a meaningful value by function
1376 compare_to_allowed_values.
1378 2020-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1382 * expr.c (gfc_check_pointer_assign): Revert patch for PR 93956.
1383 * interface.c: Likewise.
1385 2020-04-25 Thomas Koenig <tkoenig@gcc.gnu.org>
1388 * trans-expr.c (arrayfunc_assign_needs_temporary): If the
1389 LHS is a subref pointer, we also need a temporary.
1391 2020-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1394 * expr.c (gfc_check_pointer_assign): Also set subref_array_pointer
1395 when a function returns a pointer.
1396 * interface.c (gfc_set_subref_array_pointer_arg): New function.
1397 (gfc_procedure_use): Call it.
1399 2020-04-22 Fritz Reese <foreese@gcc.gnu.org>
1401 * trigd_fe.inc: Use mpfr to compute cosd(30) rather than a host-
1402 precision floating point literal based on an invalid macro.
1404 2020-04-22 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1407 * simplify.c (simplify_bound): In the case of assumed-size arrays
1408 check if the reference is to a full array.
1410 2020-04-22 Tobias Burnus <tobias@codesourcery.com>
1413 * scanner.c (load_line): In fixed form, also treat 'C' as comment and
1414 'D'/'d' only with -fd-lines-as-comments. Treat '!$' with -fopenmp,
1415 '!$acc' with -fopenacc and '!GCC$' as non-comment to permit <tab>
1416 and truncation warnings.
1418 2020-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
1420 * dump-parse-tree.c (show_attr): Add numerous flags, some cleanup.
1422 2020-04-20 Harald Anlauf <anlauf@gmx.de>
1425 * array.c (gfc_set_array_spec): Check for sum of rank and corank
1426 not exceeding GFC_MAX_DIMENSIONS.
1428 2020-04-20 Steve Kargl <kargl@gcc.gnu.org>
1429 Thomas Koenig <tkoenig@gcc.gnu.org>
1432 * decl.c (variable_decl): Reject Hollerith constants as type
1435 2020-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1438 * resolve.c (resolve_operator): If both operands are
1440 * simplify.c (simplify_bound): If a division by zero
1441 was seen during bound simplification, free the
1442 corresponcing expression and return &gfc_bad_expr.
1444 2020-04-17 Thomas Koenig <tkoenig@gcc.gnu.org>
1447 * gfortran.dg (gfc_compare_interfaces): Add
1448 optional argument bad_result_characteristics.
1449 * interface.c (gfc_check_result_characteristics): Fix
1451 (gfc_compare_interfaces): Handle new argument; return
1452 true if function return values are wrong.
1453 * resolve.c (resolve_global_procedure): Hard error if
1454 the return value of a function is wrong.
1456 2020-04-15 Fritz Reese <foreese@gcc.gnu.org>
1457 Linus Koenig <link@sig-st.de>
1460 * simplify.c (simplify_bound): Simplify condition for error check.
1462 2020-04-14 Tobias Burnus <tobias@codesourcery.com>
1464 * module.c (gfc_match_use): Fix name-conflict check for use-associating
1465 the same symbol again in a submodule.
1467 2020-04-13 Linus Koenig <link@sig-st.de>
1470 * resolve.c (resolve_fl_var_and_proc): Set flag "error" to 1 if
1471 pointer is found to not have an assumed rank or a deferred shape.
1472 * simplify.c (simplify_bound): If an error has been issued for a
1473 given pointer, one should not attempt to find its bounds.
1475 2020-04-09 Fritz Reese <foreese@gcc.gnu.org>
1478 * gfortran.h (gfc_resolve_open, gfc_resolve_close): Add
1480 (gfc_resolve_dt): Add code parameter.
1481 * io.c (async_io_dt, check_char_variable, is_char_type): Removed.
1482 (resolve_tag_format): Add locus to error message regarding
1483 zero-sized array in FORMAT tag.
1484 (check_open_constraints, check_close_constraints): New functions
1485 called at resolution time.
1486 (gfc_match_open, gfc_match_close, match_io): Move checks which don't
1487 affect the match result to new functions check_open_constraints,
1488 check_close_constraints, check_io_constraints.
1489 (gfc_resolve_open, gfc_resolve_close): Call new functions
1490 check_open_constraints, check_close_constraints after all tags have
1491 been independently resolved. Remove duplicate constraints which are
1492 already verified by resolve_tag. Explicitly pass locus to all error
1494 (compare_to_allowed_values): Add locus parameter and provide
1495 explicit locus all error reports.
1496 (match_open_element, match_close_element, match_file_element,
1497 match_dt_element, match_inquire_element): Remove redundant special
1498 cases for ASYNCHRONOUS and IOMSG tags.
1499 (gfc_resolve_dt): Remove redundant special case for format
1500 expression. Call check_io_constraints, forwarding an I/O list as
1501 the io_code parameter if present.
1502 (check_io_constraints): Change return type to bool. Pass explicit
1503 locus to error reports. Move generic checks after tag-specific
1504 checks, since errors are no longer buffered. Move simplification of
1505 format string to match_io. Remove redundant checks which are
1506 verified by resolve_tag. Remove usage of async_io_dt flag and
1507 explicitly mark symbols used in asynchronous I/O with the
1508 asynchronous attribute.
1509 * resolve.c (resolve_transfer, resolve_fl_namelist): Remove checks
1510 for async_io_dt flag. This is now done in io.c.
1511 (check_io_constraints).
1512 (gfc_resolve_code): Pass code locus to gfc_resolve_open,
1513 gfc_resolve_close, gfc_resolve_dt.
1515 2020-04-07 Fritz Reese <foreese@gcc.gnu.org>
1516 Steven G. Kargl <kargl@gcc.gnu.org>
1519 * gfortran.h (GFC_ISYM_ACOSD, GFC_ISYM_ASIND, GFC_ISYM_ATAN2D,
1520 GFC_ISYM_ATAND, GFC_ISYM_COSD, GFC_ISYM_COTAND, GFC_ISYM_SIND,
1521 GFC_ISYM_TAND): New.
1522 * intrinsic.c (add_functions): Remove check for flag_dec_math.
1523 Give degree trig functions simplification and name resolution
1524 functions (e.g, gfc_simplify_atrigd () and gfc_resolve_atrigd ()).
1525 (do_simplify): Remove special casing of degree trig functions.
1526 * intrinsic.h (gfc_simplify_acosd, gfc_simplify_asind,
1527 gfc_simplify_atand, gfc_simplify_cosd, gfc_simplify_cotand,
1528 gfc_simplify_sind, gfc_simplify_tand, gfc_resolve_trigd2): Add new
1530 (gfc_simplify_atrigd, gfc_simplify_trigd, gfc_resolve_cotan,
1531 resolve_atrigd): Remove prototypes of deleted functions.
1532 * iresolve.c (is_trig_resolved, copy_replace_function_shallow,
1533 gfc_resolve_cotan, get_radians, get_degrees, resolve_trig_call,
1534 gfc_resolve_atrigd, gfc_resolve_atan2d): Delete functions.
1535 (gfc_resolve_trigd, gfc_resolve_trigd2): Resolve to library functions.
1536 * simplify.c (rad2deg, deg2rad, gfc_simplify_acosd, gfc_simplify_asind,
1537 gfc_simplify_atand, gfc_simplify_atan2d, gfc_simplify_cosd,
1538 gfc_simplify_sind, gfc_simplify_tand, gfc_simplify_cotand): New
1540 (gfc_simplify_atan2): Fix error message.
1541 (simplify_trig_call, gfc_simplify_trigd, gfc_simplify_atrigd,
1542 radians_f): Delete functions.
1543 * trans-intrinsic.c: Add LIB_FUNCTION decls for sind, cosd, tand.
1544 (rad2deg, gfc_conv_intrinsic_atrigd, gfc_conv_intrinsic_cotan,
1545 gfc_conv_intrinsic_cotand, gfc_conv_intrinsic_atan2d): New functions.
1546 (gfc_conv_intrinsic_function): Handle ACOSD, ASIND, ATAND, COTAN,
1548 * trigd_fe.inc: New file. Included by simplify.c to implement
1549 simplify_sind, simplify_cosd, simplify_tand with code common to the
1550 libgfortran implementation.
1552 2020-04-06 Steven G. Kargl <kargl@gcc.gnu.org>
1555 * decl.c (gfc_match_data): Handle data matching for derived type
1558 2020-04-02 Tobias Burnus <tobias@codesourcery.com>
1560 * gfortran.h (gfc_resolve_formal_arglist): Add prototype.
1561 * interface.c (check_dtio_interface1): Call it.
1562 * resolve.c (gfc_resolve_formal_arglist): Renamed from
1563 resolve_formal_arglist, removed static.
1564 (find_arglists, resolve_types): Update calls.
1566 2020-04-02 Tobias Burnus <tobias@codesourcery.com>
1569 * match.c (gfc_match_select_rank): Fix error cleanup.
1571 2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
1574 * check.c (gfc_check_findloc): If the kinds of the arguments
1575 differ goto label "incompat".
1577 2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
1580 * resolve.c (resolve_equivalence): Correct formatting
1581 around the label "identical_types". Instead of using
1582 gfc_resolve_array_spec use is_non_constants_shape_array
1583 to determine whether the array can be used in a in an
1584 equivalence statement.
1586 2020-04-01 Mark Eggleston <mark.eggleston@codethink.com>
1589 expr.c (simplify_parameter_variable): Restore code deleted
1592 2020-03-28 Paul Thomas <pault@gcc.gnu.org>
1595 * arith.c : Remove trailing white space.
1596 * expr.c (scalarize_intrinsic_call): Remove the error checking.
1597 Make a copy of the expression to be simplified and only replace
1598 the original if the simplification succeeds.
1600 2020-03-28 Tobias Burnus <tobias@codesourcery.com>
1603 * decl.c (gfc_match_submod_proc): Add result var to the
1606 2020-03-27 Tobias Burnus <tobias@codesourcery.com>
1609 * trans-array.c (gfc_alloc_allocatable_for_assignment): Accept
1610 nonallocatable, nonpointer deferred-rank arrays.
1612 2020-03-27 Tobias Burnus <tobias@codesourcery.com>
1615 * resolve.c (resolve_assoc_var): Reject association to DT and
1618 2020-03-25 Steven G. Kargl <kargl@gcc.gnu.org>
1621 * match.c (gfc_match_type_spec): Replace gfc_match_init_expr with
1622 gfc_match_expr. Return m if m is MATCH_NO or MATCH_ERROR.
1624 2020-03-23 Mark Eggleston <mark.eggleston@codethink.com>
1625 Steven G. Kargl <kargl@gcc.gnu.org>
1628 * expr.c (simplify_parameter_variable): Check whether the ref
1629 chain contains INQUIRY_LEN or INQUIRY_KIND and set inquiry
1630 boolean. When an empty array has been identified and a new
1631 new EXPR_ARRAY expression has been created only return that
1632 expression if inquiry is not set. This allows the new
1633 expression to drop through to be simplified into a
1634 EXPR_CONSTANT representing %kind or %len.
1635 * matc.c (gfc_match_assignment): If lvalue doesn't have a
1636 symtree free both lvalue and rvalue expressions and return
1638 * resolv.c (gfc_resolve_ref): Ensure that code to handle
1639 INQUIRY_LEN is only performed for arrays with deferred types.
1641 2020-03-18 Jakub Jelinek <jakub@redhat.com>
1643 * class.c (generate_finalization_wrapper): Fix up duplicated word
1645 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1647 2020-03-17 Jakub Jelinek <jakub@redhat.com>
1649 * array.c (gfc_check_iter_variable): Fix up duplicated word issue
1651 * arith.c (gfc_arith_concat): Likewise.
1652 * resolve.c (gfc_resolve_ref): Likewise.
1653 * frontend-passes.c (matmul_lhs_realloc): Likewise.
1654 * module.c (gfc_match_submodule, load_needed): Likewise.
1655 * trans-expr.c (gfc_init_se): Likewise.
1657 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
1659 * lang.opt: Avoid redundancy in the help text.
1661 2020-03-12 Tobias Burnus <tobias@codesourcery.com>
1664 * openmp.c (gfc_match_oacc_declare): Accept function-result
1665 variables; reject variables declared in a different scoping unit.
1667 2020-03-08 Paul Thomas <pault@gcc.gnu.org>
1670 * resolve.c (gfc_resolve_ref): Modify array refs to be elements
1671 if the ref chain ends in INQUIRY_LEN.
1672 * trans-array.c (gfc_get_dataptr_offset): Provide the offsets
1673 for INQUIRY_RE and INQUIRY_IM.
1675 2020-03-05 Steven G. Kargl <kargl@gcc.gnu.org>
1678 * decl.c (variable_decl): If param and initializer check
1679 for BOZ, if found, output an error, set m to MATCH_ERROR
1682 2020-03-02 Andrew Benson <abensonca@gmail.com>
1685 * module.c: Increase size of variables used to read module names
1686 when loading interfaces from module files to permit cases where
1687 the name is the concatenation of a module and submodule name.
1688 * gfortran.dg/pr93486.f90: New test.
1690 2020-03-01 Paul Thomas <pault@gcc.gnu.org>
1693 * match.c (select_type_set_tmp): If the selector array spec has
1694 explicit bounds, make the temporary's bounds deferred.
1696 2020-03-01 Paul Thomas <pault@gcc.gnu.org>
1699 * trans-intrinsic.c (gfc_conv_associated): Eliminate
1700 'nonzero_charlen' and move the chunk to evaluate zero character
1701 length until after the argument evaluation so that the string
1704 2020-02-28 Paul Thomas <pault@gcc.gnu.org>
1707 * trans-expr.c (gfc_conv_intrinsic_to_class): Renormalise non-
1708 variable expressions to be unity lbound based.
1710 2020-02-25 Steven G. Kargl <kargl@gcc.gnu.org>
1712 * simplify.c (degrees_f): Remove unused code.
1714 2020-02-25 Jakub Jelinek <jakub@redhat.com>
1716 PR translation/93864
1717 * intrinsic.texi (CO_BROADCAST): Fix typo, paramter -> parameter.
1718 * trans-array.c (gfc_allocate_pdt_comp, gfc_deallocate_pdt_comp,
1719 gfc_check_pdt_dummy): Fix comment typo paramter -> parameter.
1721 2020-02-24 Mark Eggleston <mark.eggleston@codethink.com>
1722 Steven G. Kargl <kargl@gcc.gnu.org>
1725 * decl.c (gfc_match_data) : Check whether the data expression
1726 is a derived type and is a constructor. If a BOZ constant
1727 is encountered in the constructor output an error and return
1730 2020-02-24 Steven G. Kargl <kargl@gcc.gnu.org>
1733 * decl.c (gfc_match_data) : Check whether the data expression
1734 is a derived type and is a constructor. If a BOZ constant
1735 is encountered in the constructor output an error and return
1738 2020-02-24 Tobias Burnus <tobias@codesourcery.com>
1741 * match.c (match_exit_cycle): With OpenACC, check the kernels loop
1742 directive and tile clause as well.
1744 2020-02-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1747 * interface.c (compare_parameter): Fix error message.
1749 2020-02-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1752 * interface.c: Replace "can not" by "cannot" and remove trailing
1755 2020-02-20 Tobias Burnus <tobias@codesourcery.com>
1758 * openmp.c (resolve_oacc_loop_blocks): Move call to
1759 resolve_oacc_nested_loops from here ...
1760 (resolve_oacc_loop): ... to here.
1762 2020-02-18 Mark Eggleston <markeggleston@gcc.gnu.org>
1765 * expr.c (gfc_check_pointer_assign): Move check for
1766 matching character length to after checking the lvalue
1767 attributes for target or pointer.
1769 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1772 * match.c (gfc_match_assignment) : Reject assignment if
1773 the lhs stype is BT_CLASS and the rhs type is BT_BOZ.
1775 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1778 * match.c (gfc_match_associate) : If target expression
1779 has the type BT_BOZ output an error and goto
1782 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1783 Mark Eggleston <markeggleston@gcc.gnu.org>
1786 * primary.c (gfc_match_varspec): If the symbol following %
1787 is re or im and the primary expression type is not BT_COMPLEX
1788 issue an error. If the symbol is len and the primary
1789 expression type is not BT_CHARACTER is an error.
1791 2020-02-10 Andrew Benson <abensonca@gmail.com>
1794 * array.c: Do not attempt to set the array spec for a submodule
1795 function symbol (as it has already been set in the corresponding
1796 module procedure interface).
1797 * symbol.c: Do not reject duplicate POINTER, ALLOCATABLE, or
1798 DIMENSION attributes in declarations of a submodule function.
1799 * gfortran.h: Add a macro that tests for a module procedure in a
1801 * gfortran.dg/pr83113.f90: New test.
1803 2020-02-03 Julian Brown <julian@codesourcery.com>
1804 Tobias Burnus <tobias@codesourcery.com>
1806 * cpp.c (cpp_define_builtins): Update _OPENACC define to 201711.
1807 * intrinsic.texi: Update mentions of OpenACC version to 2.6.
1808 * gfortran.texi: Likewise. Remove experimental disclamer for OpenACC.
1809 * invoke.texi: Remove experimental disclamer for OpenACC.
1811 2020-02-03 Tobias Burnus <tobias@codesourcery.com>
1814 * intrinisic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS):
1815 Add undocumented parameters from omp_lib.f90.in.
1817 2020-02-03 Tobias Burnus <tobias@codesourcery.com>
1820 * resolve.c (resolve_assoc_var): Remove too strict check.
1821 * gfortran.dg/associate_51.f90: Update test case.
1823 2020-02-01 Jakub Jelinek <jakub@redhat.com>
1826 * trans-types.c (gfc_get_function_type): Also push boolean_type_node
1827 types for non-character scalar VALUE optional dummy arguments.
1828 * trans-decl.c (create_function_arglist): Skip those in
1829 hidden_typelist. Formatting fix.
1831 2020-01-31 Tobias Burnus <tobias@codesourcery.com>
1834 * frontend-passes.c (gfc_code_walker): For EXEC_OACC_ATOMIC, set
1835 in_omp_atomic to true prevent front-end optimization.
1837 2020-01-30 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1840 * expr.c (gfc_check_conformance): Check vsnprintf for truncation.
1841 * iresolve.c (gfc_get_string): Likewise.
1842 * symbol.c (gfc_new_symbol): Remove check for maximum symbol
1843 name length. Remove redundant 0 setting of new calloc()ed
1846 2020-01-30 Paul Thomas <pault@gcc.gnu.org>
1847 Jakub Jelinek <jakub@redhat.com>
1850 * trans-decl.c (gfc_get_symbol_decl): Call gfc_defer_symbol_init for
1852 (gfc_build_builtin_function_decls): Use ".w." instead of ".ww" or ".wR"
1853 for gfor_fndecl_{cfi_to_gfc,gfc_to_cfi}.
1854 (convert_CFI_desc): Handle references to CFI descriptors.
1856 2020-01-29 Jakub Jelinek <jakub@redhat.com>
1859 * openmp.c (oacc_code_to_statement): Handle
1860 EXEC_OACC_{ROUTINE,UPDATE,WAIT,CACHE,{ENTER,EXIT}_DATA,DECLARE}.
1862 2020-01-28 Andrew Benson <abensonca@gmail.com>
1865 * trans.h: Increase GFC_MAX_MANGLED_SYMBOL_LEN to
1866 GFC_MAX_SYMBOL_LEN*3+5 to allow for inclusion of submodule name,
1867 plus the "." between module and submodule names.
1868 * gfortran.dg/pr93461.f90: New test.
1870 2020-01-28 Andrew Benson <abensonca@gmail.com>
1873 * parse.c: Increase length of char variables to allow them to hold
1874 a concatenated module + submodule name.
1875 * gfortran.dg/pr93473.f90: New test.
1877 2020-01-28 Julian Brown <julian@codesourcery.com>
1880 * openmp.c (resolve_omp_clauses): Check array references for contiguity.
1882 2020-01-28 Julian Brown <julian@codesourcery.com>
1884 * gfortran.h (gfc_symbol): Add comp_mark bitfield.
1885 * openmp.c (resolve_omp_clauses): Disallow mixed component and
1886 full-derived-type accesses to the same variable within a single
1889 2020-01-28 Tobias Burnus <tobias@codesourcery.com>
1892 * openmp.c (gfc_omp_check_optional_argument): Avoid ICE when
1893 DECL_LANG_SPECIFIC and GFC_DESCRIPTOR_TYPE_P but not
1894 GFC_DECL_SAVED_DESCRIPTOR as for local allocatable character vars.
1896 2020-01-28 Tobias Burnus <tobias@codesourcery.com>
1898 * gfortran.texi (Runtime): Remove tailing '.' in @menu.
1900 2020-01-27 Tobias Burnus <tobias@codesourcery.com>
1903 * trans-expr.c (gfc_conv_substring): Handle non-ARRAY_TYPE strings
1904 of Bind(C) procedures.
1906 2020-01-22 Jakub Jelinek <jakub@redhat.com>
1908 * parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL.
1909 * trans-openmp.c (gfc_trans_omp_target)
1910 <case EXEC_OMP_TARGET_PARALLEL>: Call pushlevel first.
1913 * openmp.c (omp_code_to_statement): Handle remaining EXEC_OMP_*
1916 2020-01-21 Tobias Burnus <tobias@codesourcery.com>
1919 * interface.c (gfc_procedure_use): Also check parent namespace for
1920 'implict none (external)'.
1921 * symbol.c (gfc_get_namespace): Don't set has_implicit_none_export
1922 to parent namespace's setting.
1924 2020-01-19 Thomas König <tkoenig@gcc.gnu.org>
1927 * primary.c (gfc_match_rvalue): Break after setting MATCH_ERROR.
1928 * resolve.c (resolve_function): Issue error when a
1929 function call contains a reference.
1931 2020-01-17 Mark Eggleston <mark.eggleston@codethink.com>
1934 * resolve.c (resolve_types): Declare boolean recursive and set with the
1935 value of the recursive attribute of namespace proc_name symbol
1936 structure if it exists. Call gfc_save_all if both flag_automatic and
1937 recursive are false or ns->save_all is true.
1939 2020-01-16 Tobias Burnus <tobias@codesourcery.com>
1942 * check.c (gfc_invalid_boz): Mention -fallow-invalid-boz
1943 in the error message.
1944 * gfortran.texi (BOZ literal constants): List another missing
1945 extension and refer to -fallow-invalid-boz.
1946 * lang.opt (fallow-invalid-boz): Also mention 'X' in the help text
1947 as it is not covered by the previous wording.
1948 * primary.c (match_boz_constant): Tweak wording such that it is
1949 clear how to fix the nonstandard use.
1951 2020-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
1954 * array.c (empty_constructor): New variable.
1955 (empty_ts): New variable.
1956 (expand_constructor): Save typespec in empty_ts.
1957 Unset empty_constructor if there is an element.
1958 (gfc_expand_constructor): Initialize empty_constructor
1959 and empty_ts. If there was no explicit constructor
1960 type and the constructor is empty, take the type from
1963 2020-01-09 Tobias Burnus <tobias@codesourcery.com>
1966 * array.c (gfc_set_array_spec): Fix shifting of codimensions
1967 when adding a dimension.
1968 * decl.c (merge_array_spec): Ditto. Fix using correct codimensions.
1970 2020-01-07 Jakub Jelinek <jakub@redhat.com>
1973 * trans-openmp.c (gfc_trans_omp_clauses): Check for REF_ARRAY type
1974 before testing u.ar.type == AR_FULL.
1976 2020-01-04 Tobias Burnus <tobias@codesourcery.com>
1979 * trans-expr.c (gfc_conv_procedure_call): Avoid copy-out for nonvariable
1980 arguments to contiguous dummy args. Avoid re-checking whether fsym is
1983 2020-01-03 Tobias Burnus <tobias@codesourcery.com>
1985 * trans-openmp.c (gfc_omp_check_optional_argument): Always return a
1986 Boolean expression; handle unallocated/disassociated actual arguments
1987 as absent if passed to nonallocatable/nonpointer dummy array arguments.
1988 (gfc_build_cond_assign): Change to assume a Boolean expr not a pointer.
1989 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Assign NULL to generated
1990 array-data variable if the argument is absent. Simplify code as
1991 'present' is now a Boolean expression.
1993 2020-01-03 Tobias Burnus <tobias@codesourcery.com>
1996 * primary.c (gfc_match_rvalue): Add some flavor checks
1997 gfc_matching_procptr_assignment.
1998 * resolve.c (resolve_assoc_var): Add more checks for invalid targets.
2000 2020-01-02 Tobias Burnus <tobias@codesourcery.com>
2003 * array.c (gfc_match_array_spec): Fix implied-type matching
2006 2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org>
2009 * dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch
2012 2020-01-01 Jakub Jelinek <jakub@redhat.com>
2014 Update copyright years.
2016 * gfortranspec.c (lang_specific_driver): Update copyright notice
2018 * gfc-internals.texi: Bump @copying's copyright year.
2019 * gfortran.texi: Ditto.
2020 * intrinsic.texi: Ditto.
2021 * invoke.texi: Ditto.
2023 Copyright (C) 2020 Free Software Foundation, Inc.
2025 Copying and distribution of this file, with or without modification,
2026 are permitted in any medium without royalty provided the copyright
2027 notice and this notice are preserved.