1 2020-11-29 Harald Anlauf <anlauf@gmx.de>
3 * expr.c (simplify_parameter_variable): Fix up character length
4 after copying an array-valued expression.
6 2020-11-28 Thomas Koenig <tkoenig@gcc.gnu.org>
9 * trans-decl.c (gfc_get_extern_function_decl): Add argument
11 * trans-intrinsic.c (MAX_SPEC_ARG): Define.
12 (intrinsic_fnspec): New function.
14 (specific_intrinsic_symbol): Adjust comment. Pass
15 fn spec to gfc_get_extern_function_decl.
16 (gfc_conv_intrinsic_funcall): Add ANY, ALL, NORM2, PRODUCT
17 and SUM intrnisic. Add FIXME for cshift et al.
18 * trans-types.c (gfc_get_function_type): Add fnspec argument,
20 * trans-types.h (gfc_get_function_type): Add optinal fnspec
22 * trans.h (gfc_get_extern_function_decl): Likewise.
24 2020-11-25 Harald Anlauf <anlauf@gmx.de>
27 * resolve.c (traverse_data_list): Fix copy&paste errors; catch
28 step=0 in implied do loop.
30 2020-11-20 Jakub Jelinek <jakub@redhat.com>
33 * Make-lang.in (fortran.serial): Change from goal to a variable.
34 (.PHONY): Drop fortran.serial and fortran.prev.
35 (f951$(exeext)): Depend on $(fortran.serial) rather than
38 2020-11-18 Jakub Jelinek <jakub@redhat.com>
40 * Make-lang.in (fortran.serial): New goal.
41 (.PHONY): Add fortran.serial fortran.prev.
42 (f951$(exeext)): Depend on fortran.prev. Call LINK_PROGRESS.
44 2020-11-17 Harald Anlauf <anlauf@gmx.de>
46 * gfortran.texi: Fix description of GFC_RTCHECK_* to match actual
49 2020-11-16 Harald Anlauf <anlauf@gmx.de>
51 * trans-intrinsic.c (gfc_conv_intrinsic_size): Generate runtime
52 checking code for status of argument.
54 2020-11-13 Gergö Barany <gergo@codesourcery.com>
55 Thomas Schwinge <thomas@codesourcery.com>
57 * lang.opt (fopenacc-kernels): Add.
59 2020-11-12 Jakub Jelinek <jakub@redhat.com>
61 * f95-lang.c (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST):
63 (gfc_init_builtin_functions): Add alloc_size and warn_unused_result
64 attributes to __builtin_GOMP_alloc.
65 * types.def (BT_PTRMODE): New primitive type.
66 (BT_FN_VOID_PTR_PTRMODE, BT_FN_PTR_SIZE_SIZE_PTRMODE): New function
69 2020-11-12 Tobias Burnus <tobias@codesourcery.com>
72 * trans-openmp.c (gfc_trans_oacc_construct, gfc_trans_omp_parallel_do,
73 gfc_trans_omp_parallel_do_simd, gfc_trans_omp_parallel_sections,
74 gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
75 gfc_trans_omp_single, gfc_trans_omp_task, gfc_trans_omp_teams
76 gfc_trans_omp_target, gfc_trans_omp_target_data,
77 gfc_trans_omp_workshare): Use code->loc instead of input_location
78 when building the OMP_/OACC_ construct.
80 2020-11-11 Jakub Jelinek <jakub@redhat.com>
83 * misc.c (gfc_typename): Use ex->value.character.length only if
84 ex->expr_type == EXPR_CONSTANT. If ex->ts.deferred, print : instead
85 of length. If ex->ts.u.cl && ex->ts.u.cl->length == NULL, print *
86 instead of length. Otherwise if character length is non-constant,
87 print just CHARACTER or CHARACTER(KIND=N).
89 2020-11-10 Tobias Burnus <tobias@codesourcery.com>
91 * dump-parse-tree.c (show_omp_clauses): Handle new reduction enums.
92 * gfortran.h (OMP_LIST_REDUCTION_INSCAN, OMP_LIST_REDUCTION_TASK,
93 OMP_LIST_IN_REDUCTION, OMP_LIST_TASK_REDUCTION): Add enums.
94 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_IN_REDUCTION
95 and OMP_CLAUSE_TASK_REDUCTION.
96 (gfc_match_omp_clause_reduction): Extend reduction handling;
98 (gfc_match_omp_clauses): ... here. Add calls to it.
99 (OMP_TASK_CLAUSES, OMP_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES):
100 Add OMP_CLAUSE_IN_REDUCTION.
101 (gfc_match_omp_taskgroup): Add task_reduction matching.
102 (resolve_omp_clauses): Update for new reduction clause changes;
103 remove removed nonmonotonic-schedule restrictions.
104 (gfc_resolve_omp_parallel_blocks): Add new enums to switch.
105 * trans-openmp.c (gfc_omp_clause_default_ctor,
106 gfc_trans_omp_reduction_list, gfc_trans_omp_clauses,
107 gfc_split_omp_clauses): Handle updated reduction clause.
109 2020-11-10 Tobias Burnus <tobias@codesourcery.com>
112 * trans-decl.c (gfc_get_symbol_decl): Do not (re)set the location
113 of an external procedure.
114 (build_entry_thunks, generate_coarray_init, create_main_function,
115 gfc_generate_function_code): Use fndecl's location in BIND_EXPR.
117 2020-11-09 Tobias Burnus <tobias@codesourcery.com>
120 * parse.c (case_decl): Move ST_OACC_ROUTINE and ST_OACC_DECLARE to ...
121 (case_omp_decl): ... here.
122 (verify_st_order): Update comment.
124 2020-11-06 Thomas Schwinge <thomas@codesourcery.com>
126 * openmp.c (oacc_is_parallel, resolve_oacc_params_in_parallel):
128 (resolve_oacc_loop_blocks): Don't call the former.
130 2020-11-06 Tobias Burnus <tobias@codesourcery.com>
132 * openmp.c (gfc_match_oacc_atomic): No longer accept 'update capture'.
134 2020-11-06 Tobias Burnus <tobias@codesourcery.com>
137 * module.c (mio_symbol): Fix symbol name for pdt_type.
139 2020-11-03 Nathan Sidwell <nathan@acm.org>
141 * cpp.c (gfc_cpp_add_dep): Only add dependency if we're recording
143 (gfc_cpp_init): Likewise for target.
145 2020-11-03 Tobias Burnus <tobias@codesourcery.com>
147 * decl.c (ext_attr_list): Add EXT_ATTR_DEPRECATED.
148 * gfortran.h (ext_attr_id_t): Ditto.
149 * gfortran.texi (GCC$ ATTRIBUTES): Document it.
150 * resolve.c (resolve_variable, resolve_function,
151 resolve_call, resolve_values): Show -Wdeprecated-declarations warning.
152 * trans-decl.c (add_attributes_to_decl): Skip those
153 with no middle_end_name.
155 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
158 * trans-openmp.c (gfc_trans_omp_clauses): More precise location
159 information for OpenACC 'gang', 'worker', 'vector' clauses with
162 2020-11-02 Thomas Schwinge <thomas@codesourcery.com>
165 * trans.c (gfc_set_backend_locus): Use 'gfc_get_location'.
166 (gfc_restore_backend_locus): Adjust.
168 2020-11-02 Tobias Burnus <tobias@codesourcery.com>
171 * openmp.c (gfc_match_omp_atomic): Fix mem-order handling;
172 reject specifying update + capture together.
174 2020-10-30 Tobias Burnus <tobias@codesourcery.com>
176 * dump-parse-tree.c (show_omp_clauses): Handle atomic clauses.
177 (show_omp_node): Call it for atomic.
178 * gfortran.h (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_UNSET,
179 remove GFC_OMP_ATOMIC_SEQ_CST and GFC_OMP_ATOMIC_ACQ_REL.
180 (enum gfc_omp_memorder): Replace OMP_MEMORDER_LAST by
181 OMP_MEMORDER_UNSET, add OMP_MEMORDER_SEQ_CST/OMP_MEMORDER_RELAXED.
182 (gfc_omp_clauses): Add capture and atomic_op.
183 (gfc_code): remove omp_atomic.
184 * openmp.c (enum omp_mask1): Add atomic, capture, memorder clauses.
185 (gfc_match_omp_clauses): Match them.
186 (OMP_ATOMIC_CLAUSES): Add.
187 (gfc_match_omp_flush): Update for 'last' to 'unset' change.
188 (gfc_match_omp_oacc_atomic): Removed and placed content ..
189 (gfc_match_omp_atomic): ... here. Update for OpenMP 5 clauses.
190 (gfc_match_oacc_atomic): Match directly here.
191 (resolve_omp_atomic, gfc_resolve_omp_directive): Update.
192 * parse.c (parse_omp_oacc_atomic): Update for struct gfc_code changes.
193 * resolve.c (gfc_resolve_blocks): Update assert.
194 * st.c (gfc_free_statement): Also call for EXEC_O{ACC,MP}_ATOMIC.
195 * trans-openmp.c (gfc_trans_omp_atomic): Update.
196 (gfc_trans_omp_flush): Update for 'last' to 'unset' change.
198 2020-10-30 Jan Hubicka <jh@suse.cz>
200 * trans-types.c: Include alias.h
201 (gfc_get_array_type_bounds): Set typeless storage.
203 2020-10-27 Harald Anlauf <anlauf@gmx.de>
205 * resolve.c (gfc_impure_variable): A dummy argument with the VALUE
206 attribute may be redefined without making a procedure impure.
208 2020-10-27 Richard Biener <rguenther@suse.de>
210 * trans-array.c (gfc_get_descriptor_field): New helper.
211 (gfc_conv_descriptor_data_get): Use it - drop strange
212 REFERENCE_TYPE handling and make sure we don't trigger it.
213 (gfc_conv_descriptor_data_addr): Use gfc_get_descriptor_field.
214 (gfc_conv_descriptor_data_set): Likewise.
215 (gfc_conv_descriptor_offset): Likewise.
216 (gfc_conv_descriptor_dtype): Likewise.
217 (gfc_conv_descriptor_span): Likewise.
218 (gfc_get_descriptor_dimension): Likewise.
219 (gfc_conv_descriptor_token): Likewise.
220 (gfc_conv_descriptor_subfield): New helper.
221 (gfc_conv_descriptor_stride): Use it.
222 (gfc_conv_descriptor_lbound): Likewise.
223 (gfc_conv_descriptor_ubound): Likewise.
225 2020-10-25 Thomas Koenig <tkoenig@gcc.gnu.org>
228 * gfortran.h (gfc_symbol): Add pass_as_value flag.
229 (gfc_copy_formal_args_intr): Add optional argument
231 (gfc_get_intrinsic_function_symbol): Add prototype.
232 (gfc_find_intrinsic_symbol): Add prototype.
233 * intrinsic.c (gfc_get_intrinsic_function_symbol): New function.
234 (gfc_find_intrinsic_symbol): New function.
235 * symbol.c (gfc_copy_formal_args_intr): Add argument. Handle case
236 where the type needs to be copied from the actual argument.
237 * trans-intrinsic.c (remove_empty_actual_arguments): New function.
238 (specific_intrinsic_symbol): New function.
239 (gfc_conv_intrinsic_funcall): Use it.
240 (strip_kind_from_actual): Adjust so that the expression pointer
242 (gfc_conv_intrinsic_minmaxloc): Likewise.
243 (gfc_conv_intrinsic_minmaxval): Adjust removal of dim.
244 * trans-types.c (gfc_sym_type): If sym->pass_as_value is set, do
245 not pass by reference.
247 2020-10-22 Tobias Burnus <tobias@codesourcery.com>
249 * gfortran.h (enum gfc_omp_memorder): Add.
250 (gfc_omp_clauses): Use it.
251 * openmp.c (gfc_match_omp_flush): Match memorder clauses.
252 * trans-openmp.c (gfc_trans_omp_flush): Handle them.
253 (gfc_trans_omp_directive): Update call.
255 2020-10-21 Tobias Burnus <tobias@codesourcery.com>
258 * class.c: Add _deallocate to the vtable documentation
261 2020-10-16 Harald Anlauf <anlauf@gmx.de>
264 * expr.c (gfc_check_init_expr): Fix check of return code from
265 gfc_intrinsic_func_interface.
266 * intrinsic.c (gfc_intrinsic_func_interface): Add further attempt
267 of simplification of elemental intrinsics with array arguments.
268 * iresolve.c (gfc_resolve_index_func): Keep optional KIND argument
269 for simplification of elemental use of INDEX.
271 2020-10-15 Andre Vehreschild <vehre@gcc.gnu.org>
273 * trans-decl.c (gfc_build_builtin_function_decls): Fix the coarray fndecls.
275 2020-10-14 Tobias Burnus <tobias@codesourcery.com>
278 * scanner.c (load_line): Fix line-truncation warning for !$acc
279 and !gcc$ in free-form source code.
281 2020-10-14 Steven G. Kargl <kargl@gcc.gnu.org>
282 Mark Eggleston <markeggleston@gcc.gnu.org>
285 * decl.c (gfc_get_common): Use gfc_match_common_name instead
286 of match_common_name.
287 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
288 of match_common_name.
289 * match.c : Rename match_common_name to gfc_match_common_name.
290 * match.c (gfc_match_common): Use gfc_match_common_name instead
291 of match_common_name.
292 * match.h : Rename match_common_name to gfc_match_common_name.
293 * resolve.c (resolve_common_vars): Check each symbol in a
294 common block has a global symbol. If there is a global symbol
295 issue an error if the symbol type is a module or a program.
297 2020-10-12 Mark Eggleston <markeggleston@gcc.gnu.org>
300 * decl.c (gfc_match_implicit): Check for numeric and logical
303 2020-10-07 Paul Thomas <pault@gcc.gnu.org>
306 * trans-expr.c (arrayfunc_assign_needs_temporary): Tidy detection
307 of pointer and allocatable functions.
309 2020-10-04 Harald Anlauf <anlauf@gmx.de>
312 * trans-intrinsic.c (strip_kind_from_actual): Helper function for
313 removal of KIND argument.
314 (gfc_conv_intrinsic_minmaxloc): Ignore KIND argument here, as it
315 is treated elsewhere.
317 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
319 * trans-decl.c (gfc_build_library_function_decl_with_spec): Verify
321 (gfc_build_intrinsic_function_decls): Update fnspecs.
322 (gfc_build_builtin_function_decls): Update fnspecs.
323 * trans-io.c (gfc_build_io_library_fndecls): Update fnspecs.
324 * trans-types.c (create_fn_spec): Update fnspecs.
326 2020-09-30 Jan Hubicka <jh@suse.cz>
328 * trans-decl.c (gfc_build_intrinsic_function_decls): Add traling dots
329 to spec strings so they match the number of parameters; do not use
330 R and W for non-pointer parameters. Drop pointless specifier on
331 caf_stop_numeric and caf_get_team.
333 2020-09-30 Jan Hubicka <hubicka@ucw.cz>
335 * trans-io.c (gfc_build_io_library_fndecls): Add trailing dots so
336 length of spec string matches number of arguments.
338 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
341 * expr.c (gfc_is_not_contiguous): Fix check.
342 (gfc_check_pointer_assign): Use it.
344 2020-09-30 Paul Thomas <pault@gcc.gnu.org>
347 * trans-array.c (gfc_conv_array_ref): Make sure that the class
348 decl is passed to build_array_ref in the case of unlimited
349 polymorphic entities.
350 * trans-expr.c (gfc_conv_derived_to_class): Ensure that array
351 refs do not preceed the _len component. Free the _len expr.
352 * trans-stmt.c (trans_associate_var): Reset 'need_len_assign'
353 for polymorphic scalars.
354 * trans.c (gfc_build_array_ref): When the vptr size is used for
355 span, multiply by the _len field of unlimited polymorphic
356 entities, when non-zero.
358 2020-09-30 Tom de Vries <tdevries@suse.de>
360 * f95-lang.c (gfc_init_builtin_functions): Update
361 targetm.libc_has_function call.
363 2020-09-28 Mark Eggleston <markeggleston@gcc.gnu.org>
366 2020-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
367 Mark Eggleston <markeggleston@gcc.gnu.org>
370 * decl.c (gfc_get_common): Use gfc_match_common_name instead
371 of match_common_name.
372 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
373 of match_common_name.
374 * match.c : Rename match_common_name to gfc_match_common_name.
375 * match.c (gfc_match_common): Use gfc_match_common_name instead
376 of match_common_name.
377 * match.h : Rename match_common_name to gfc_match_common_name.
378 * resolve.c (resolve_common_vars): Check each symbol in a
379 common block has a global symbol. If there is a global symbol
380 issue an error if the symbol type is known as is not a common
383 2020-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
384 Mark Eggleston <markeggleston@gcc.gnu.org>
387 * decl.c (gfc_get_common): Use gfc_match_common_name instead
388 of match_common_name.
389 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
390 of match_common_name.
391 * match.c : Rename match_common_name to gfc_match_common_name.
392 * match.c (gfc_match_common): Use gfc_match_common_name instead
393 of match_common_name.
394 * match.h : Rename match_common_name to gfc_match_common_name.
395 * resolve.c (resolve_common_vars): Check each symbol in a
396 common block has a global symbol. If there is a global symbol
397 issue an error if the symbol type is known as is not a common
400 2020-09-24 Paul Thomas <pault@gcc.gnu.org>
403 * trans-expr.c (gfc_conv_procedure_call): Take the deallocation
404 of allocatable result components of a scalar result outside the
405 scalarization loop. Find and use the stored result.
407 2020-09-21 Harald Anlauf <anlauf@gmx.de>
408 Paul Thomas <pault@gcc.gnu.org>
410 * iresolve.c (gfc_resolve_mvbits): Remove unneeded conversion of
411 FROMPOS, LEN and TOPOS arguments to fit a C int.
412 * trans-intrinsic.c (gfc_conv_intrinsic_mvbits): Add inline
413 expansion of MVBITS intrinsic elemental subroutine and add code
414 for runtime argument checking.
415 (gfc_conv_intrinsic_subroutine): Recognise MVBITS intrinsic, but
416 defer handling to gfc_trans_call.
417 * trans-stmt.c (replace_ss):
418 (gfc_trans_call): Adjust to handle inline expansion, scalarization
419 of intrinsic subroutine MVBITS in gfc_conv_intrinsic_mvbits.
420 * trans.h (gfc_conv_intrinsic_mvbits): Add prototype for
421 gfc_conv_intrinsic_mvbits.
423 2020-09-19 Sandra Loosemore <sandra@codesourcery.com>
425 * interface.c (gfc_compare_actual_formal): Add assertion after
426 main processing loop to silence maybe-uninitialized error.
428 2020-09-19 Harald Anlauf <anlauf@gmx.de>
430 * symbol.c (gfc_check_conflict): Allow ELEMENTAL RECURSIVE
431 procedure prefix for -std=f2018.
433 2020-09-17 Tobias Burnus <tobias@codesourcery.com>
437 * decl.c (gfc_match_submod_proc): Avoid later double-free
440 2020-09-16 Tobias Burnus <tobias@codesourcery.com>
443 * trans-openmp.c (gfc_trans_omp_do): Handle simd with (last)private.
445 2020-09-15 Tobias Burnus <tobias@codesourcery.com>
448 * trans.h (gfc_omp_finish_clause): Add bool openacc arg.
449 * trans-openmp.c (gfc_omp_finish_clause): Ditto. Use
450 GOMP_MAP_ALWAYS_POINTER with PSET for pointers.
451 (gfc_trans_omp_clauses): Like the latter and also if the always
454 2020-09-09 Tobias Burnus <tobias@codesourcery.com>
458 * resolve.c (gfc_resolve_code): Also call
459 gfc_resolve_omp_parallel_blocks for 'distribute parallel do (simd)'.
460 * openmp.c (gfc_resolve_omp_parallel_blocks): Handle it.
461 (gfc_resolve_do_iterator): Remove special code for SIMD, which is
463 * trans-openmp.c (gfc_trans_omp_target): For TARGET_PARALLEL_DO_SIMD,
464 call simd not do processing function.
466 2020-09-08 Thomas Koenig <tkoenig@gcc.gnu.org>
468 * intrinsic.texi: Fix description of FINDLOC result.
470 2020-09-07 Harald Anlauf <anlauf@gmx.de>
472 * trans-intrinsic.c (build_round_expr): Use temporary with
473 appropriate kind for conversion before rounding to nearest
474 integer when the result precision is 128 bits.
476 2020-09-07 Tobias Burnus <tobias@codesourcery.com>
479 * resolve.c (get_temp_from_expr): Also reset proc_pointer +
481 (resolve_ptr_fcn_assign): Use information from the LHS.
483 2020-09-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
485 * trans-types.c (gfc_get_derived_type): Fix argument types.
487 2020-09-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
489 * resolve.c (resolve_select_type): Provide a formal arg list.
491 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
493 * trans-types.c (gfc_get_ppc_type): Add comment.
495 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
497 * trans-types.c (gfc_get_ppc_type): Fix function arg types.
499 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
502 * trans-stmt.c (gfc_trans_fail_image): caf_fail_image
505 2020-09-02 Jakub Jelinek <jakub@redhat.com>
508 * check.c (gfc_boz2real, gfc_boz2int): When clearing first two bits,
509 change also '2' to '0' and '3' to '1' rather than just handling '4'
512 2020-09-01 Steven G. Kargl <kargl@gcc.gnu.org>
513 Mark Eggleston <markeggleston@gcc.gnu.org>
516 * resolve.c (resolve_select_type): Add check for BT_CLASS
517 type before using the CLASS_DATA macro which will have a
518 NULL pointer to derive components if it isn't BT_CLASS.
520 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
523 * module.c (module_peek_char): Peek ahead function.
524 (parse_integer): Add code for parsing signed integers.
525 (parse_atom): Add code to handle signed integers.
526 (peek_atom): Add code to handle signed integers.
528 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
531 * expr.c (gfc_check_init_expr): Add default error message for the AS_ASSUMED_RANK case.
533 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
536 * expr.c (check_references): Change different relational operator
537 to less-than operator to avoid infinite loop.
539 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
542 * simplify.c (simplify_bound_dim): Add check for NULL pointer
543 before trying to access structure member.
545 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
548 * interface.c (gfc_compare_actual_formal): Add code to also raise
549 the actual argument cannot be an assumed-size array error when the
550 dummy arguments are deferred-shape or assumed-rank pointer.
552 2020-08-28 Tobias Burnus <tobias@codesourcery.com>
555 * trans-array.c (gfc_trans_g77_array): Check against the parm decl and
556 set the nonparm decl used for the is-present check to NULL if absent.
558 2020-08-28 Paul Thomas <pault@gcc.gnu.org>
561 * simplify.c (gfc_simplify_reshape): Detect zero shape and
562 clear index if found.
564 2020-08-27 Mark Eggleston <markeggleston@gcc.gnu.org>
567 * decl.c (char_len_param_value): Check gfc_seen_div0 and
568 if it is set return MATCH_ERROR.
570 2020-08-27 Martin Liska <mliska@suse.cz>
572 * trans-openmp.c (gfc_trans_omp_do): Set exact argument of a vector
573 growth function to true.
575 2020-08-26 Tobias Burnus <tobias@codesourcery.com>
577 * gfortran.h (enum gfc_omp_device_type): New.
578 (symbol_attribute, gfc_omp_clauses, gfc_common_head): Use it.
579 * module.c (enum ab_attribute): Add AB_OMP_DEVICE_TYPE_HOST,
580 AB_OMP_DEVICE_TYPE_NOHOST and AB_OMP_DEVICE_TYPE_ANY.
581 (attr_bits, mio_symbol_attribute): Handle it.
582 (load_commons, write_common_0): Handle omp_device_type flag.
583 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_DEVICE_TYPE
584 (OMP_DECLARE_TARGET_CLAUSES): Likewise.
585 (gfc_match_omp_clauses): Match 'device_type'.
586 (gfc_match_omp_declare_target): Handle it.
587 * trans-common.c (build_common_decl): Write device-type clause.
588 * trans-decl.c (add_attributes_to_decl): Likewise.
590 2020-08-23 Paul Thomas <pault@gcc.gnu.org>
593 * trans-types.c (gfc_get_derived_type): Derived types that are
594 used in submodules are not compatible with TYPE_CANONICAL from
595 any of the global namespaces.
597 2020-08-20 Paul Thomas <pault@gcc.gnu.org>
601 * trans-array.c (get_array_charlen): Tidy up the evaluation of
602 the string length for array constructors. Avoid trailing array
603 references. Ensure string lengths of deferred length components
604 are set. For parentheses operator apply string length to both
605 the primary expression and the enclosed expression.
607 2020-08-20 Andre Vehreschild <vehre@gcc.gnu.org>
610 * trans-array.c (gfc_bcast_alloc_comp): Use the correct variable.
612 2020-08-20 Tobias Burnus <tobias@codesourcery.com>
614 * openmp.c (gfc_match_omp_clauses): Re-order 'if' clause pasing
615 to avoid creating spurious symbols.
617 2020-08-18 Harald Anlauf <anlauf@gmx.de>
619 * check.c (check_rest): Reject MIN/MAX character arguments of
621 * simplify.c (min_max_choose): The simplification result shall
622 have the highest kind value of the arguments.
623 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Choose type and
624 kind of intermediate by looking at all arguments, not the result.
626 2020-08-17 Martin Liska <mliska@suse.cz>
628 * openmp.c (resolve_omp_clauses): Add static assert
629 for OMP_LIST_NUM and size of clause_names array.
630 Remove check that is always true.
632 2020-08-17 Martin Liska <mliska@suse.cz>
634 * openmp.c (resolve_omp_clauses): Add NONTEMPORAL to clause
637 2020-08-13 Andre Vehreschild <vehre@gcc.gnu.org>
640 * trans-array.c (structure_alloc_comps): Keep caf-mode when applying to
641 components; get the caf_token correctly for allocated scalar components.
643 2020-08-13 Matthew Krupcale <mkrupcale@matthewkrupcale.com>
646 * invoke.texi: Fix typos.
648 2020-08-12 Tobias Burnus <tobias@codesourcery.com>
650 * gfortran.h: Add OMP_LIST_NONTEMPORAL.
651 * dump-parse-tree.c (show_omp_clauses): Dump it
652 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_NOTEMPORAL.
653 (OMP_SIMD_CLAUSES): Add it.
654 (gfc_match_omp_clauses): Match nontemporal clause.
655 * trans-openmp.c (gfc_trans_omp_clauses): Process
658 2020-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
661 * frontend-passes.c (doloop_contained_function_call):
662 Do not dereference a NULL pointer for value.function.esym.
664 2020-08-10 Paul Thomas <pault@gcc.gnu.org>
667 * trans-expr.c (fcncall_realloc_result): Only compare shapes if
670 2020-08-10 Paul Thomas <pault@gcc.gnu.org>
673 * resolve.c (check_host_association): Replace the gcc_assert
674 with an error for internal procedures.
676 2020-08-05 Thomas Koenig <tkoenig@gcc.gnu.org>
679 * frontend-passes.c (doloop_contained_function_call): New
681 (doloop_contained_procedure_code): New function.
682 (CHECK_INQ): Macro for inquire checks.
683 (doloop_code): Invoke doloop_contained_procedure_code and
684 doloop_contained_function_call if appropriate.
685 (do_intent): Likewise.
687 2020-08-04 Tobias Burnus <tobias@codesourcery.com>
689 * openmp.c (resolve_omp_do): Detect not perfectly
690 nested loop with innermost collapse.
692 2020-08-04 Tobias Burnus <tobias@codesourcery.com>
694 * trans-openmp.c (gfc_trans_omp_do): Fix 'lastprivate(conditional:'.
696 2020-08-03 Julian Brown <julian@codesourcery.com>
697 Thomas Schwinge <thomas@codesourcery.com>
699 * trans-openmp.c (gfc_trans_omp_clauses): Don't create present/release
700 mappings for array descriptors.
702 2020-08-03 Martin Jambor <mjambor@suse.cz>
704 * f95-lang.c (gfc_init_builtin_functions): Remove processing of
707 2020-08-03 Tobias Burnus <tobias@codesourcery.com>
709 * gfc-internals.texi: Fix typos.
710 * gfortran.texi: Likewise.
711 * intrinsic.texi: Likewise.
712 * invoke.texi: Likewise.
714 2020-08-02 Paul Thomas <pault@gcc.gnu.org>
717 * interface.c (gfc_check_dummy_characteristics): If a module
718 procedure arrives with assumed shape in the interface and
719 deferred shape in the procedure itself, update the latter and
720 copy the lower bounds.
722 2020-08-02 Paul Thomas <pault@gcc.gnu.org>
725 * primary.c (gfc_match_varspec): In the case that a component
726 reference is added to an intrinsic type component, emit the
727 error message in this function.
729 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
731 * dump-parse-tree.c (show_omp_clauses): Handle order(concurrent).
732 * gfortran.h (struct gfc_omp_clauses): Add order_concurrent.
733 * openmp.c (enum omp_mask1, OMP_DO_CLAUSES, OMP_SIMD_CLAUSES):
734 Add OMP_CLAUSE_ORDER.
735 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
736 Handle order(concurrent) clause.
738 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
740 * openmp.c (resolve_omp_clauses): Permit 'omp target data' without
741 map if use_device_{addr,ptr} is present.
743 2020-07-29 Mark Eggleston <markeggleston@gcc.gnu.org>
746 * intrinsic.c (gfc_convert_type_warn): Add check for
747 LOGICAL type so that warnings are not output.
749 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
751 * module.c (mio_symbol_attribute): Fix indent of previous
754 2020-07-29 Mark Eggleston <markeggleston@gcc.gnu.org>
757 * trans-array.c (gfc_walk_array_ref): If ref->ss.end is set
758 call gfc_get_scalar_ss.
760 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
762 * gfortran.h (enum gfc_statement): Add ST_OMP_REQUIRES.
763 (enum gfc_omp_requires_kind): New.
764 (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_ACQ_REL.
765 (struct gfc_namespace): Add omp_requires and omp_target_seen.
766 (gfc_omp_requires_add_clause,
767 (gfc_check_omp_requires): New.
768 * match.h (gfc_match_omp_requires): New.
769 * module.c (enum ab_attribute, attr_bits): Add omp requires clauses.
770 (mio_symbol_attribute): Read/write them.
771 * openmp.c (gfc_check_omp_requires, (gfc_omp_requires_add_clause,
772 gfc_match_omp_requires): New.
773 (gfc_match_omp_oacc_atomic): Use requires's default mem-order.
774 * parse.c (decode_omp_directive): Match requires, set omp_target_seen.
775 (gfc_ascii_statement): Handle ST_OMP_REQUIRES.
776 * trans-openmp.c (gfc_trans_omp_atomic): Handle GFC_OMP_ATOMIC_ACQ_REL.
778 2020-07-27 Tobias Burnus <tobias@codesourcery.com>
780 * openmp.c (gfc_resolve_omp_directive): Remove NULL check
781 for clauses in EXEC_OMP_CRITICAL as it no longer can be NULL.
783 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
785 * gfortran.h (gfc_omp_namelist): Add lastprivate_conditional.
786 * openmp.c (gfc_match_omp_clauses): Handle 'conditional:'
787 modifier of 'lastprivate'.
788 * trans-openmp.c (gfc_omp_clause_default_ctor): Don't assert
789 on OMP_CLAUSE__CONDTEMP_ and other OMP_*TEMP_.
790 (gfc_trans_omp_variable_list): Handle lastprivate_conditional.
792 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
794 * intrinsic.texi (OMP_LIB_KINDS): Add omp_depend_kind.
796 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
798 * gfortran.texi (Standards): Update URL; state that OpenMP 4.5
799 is supported and 5.0 is partially.
800 * intrinsic.texi (OpenMP Modules): Refer also to OpenMP 5.0;
801 (OMP_LIB): Add missing derived type and new named constants.
803 2020-07-22 Tobias Burnus <tobias@codesourcery.com>
805 * gfortran.h (enum gfc_omp_if_kind): Add OMP_IF_CANCEL and OMP_IF_SIMD.
806 * openmp.c (OMP_SIMD_CLAUSES): Add OMP_CLAUSE_IF.
807 (gfc_match_omp_clauses, resolve_omp_clauses): Handle 'if (simd/cancel:'.
808 * dump-parse-tree.c (show_omp_clauses): Likewise.
809 * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_cancel,
810 (gfc_split_omp_clauses): Likewise.
812 2020-07-22 Tobias Burnus <tobias@codesourcery.com>
814 * openmp.c (gfc_match_omp_critical): Fix handling hints; permit
815 hint clause without named critical.
816 (resolve_omp_clauses): Require nonnegative constant integer
818 (gfc_resolve_omp_directive): Check for no name but
819 nonzero value for hint clause.
820 * parse.c (parse_omp_structured_block): Fix same-name check
822 * trans-openmp.c (gfc_trans_omp_critical): Handle hint clause properly.
824 2020-07-21 Harald Anlauf <anlauf@gmx.de>
827 * trans-decl.c (gfc_get_extern_function_decl): Check whether a
828 symbol belongs to a different module.
830 2020-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
833 * dump-parse-tree.c (get_c_type_name): Always use the entries from
834 c_interop_kinds_table to find the correct C type.
836 2020-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
839 * frontend-passes.c (gfc_check_externals): Adjust formatting.
840 (implicit_pure_call): New function.
841 (implicit_pure_expr): New function.
842 (gfc_fix_implicit_pure): New function.
843 * gfortran.h (gfc_fix_implicit_pure): New prototype.
844 * parse.c (translate_all_program_units): Call gfc_fix_implicit_pure.
846 2020-07-18 David Edelsohn <dje.gcc@gmail.com>
848 * check.c (gfc_invalid_boz): Mark hint for translation using _().
850 2020-07-16 Julian Brown <julian@codesourcery.com>
851 Thomas Schwinge <thomas@codesourcery.com>
853 * trans-openmp.c (gfc_trans_omp_clauses): Rework OpenACC
854 attach/detach handling for arrays with descriptors.
856 2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
857 Mark Eggleston <markeggleston@gcc.gnu.org>
860 * expr.c (gfc_check_pointer_assigb): Output an error if
861 rvalue is a zero sized array or output an error if rvalue
862 doesn't have a symbol tree.
864 2020-07-14 Tobias Burnus <tobias@codesourcery.com>
866 * openmp.c (gfc_match_omp_clauses): Match also derived-type
867 component refs in OMP_CLAUSE_MAP.
868 (resolve_omp_clauses): Resolve those.
869 * trans-openmp.c (gfc_trans_omp_array_section, gfc_trans_omp_clauses):
870 Handle OpenMP structure-element mapping.
871 (gfc_trans_oacc_construct, gfc_trans_oacc_executable_directive,
872 (gfc_trans_oacc_combined_directive, gfc_trans_oacc_declare): Update
873 add openacc=true in gfc_trans_omp_clauses call.
875 2020-07-14 Tobias Burnus <tobias@codesourcery.com>
878 * trans-openmp.c (gfc_has_alloc_comps): Return false also for
881 2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
882 Mark Eggleston <markeggleston@gcc.gnu.org>
885 * decl.c (add_init_expr_sym): For a symbol that is a
886 parameter accept an initialisation if it does not have a
887 value otherwise output a error and reject.
889 2020-07-13 Mark Eggleston <markeggleston@gcc.gnu.org>
892 * resolve.c (resolve_fl_variable): Remove type and intent
893 checks from the check for dummy.
895 2020-07-13 Steven G. Kargl <kargl@gcc.gnu.org>
896 Mark Eggleston <markeggleston@gcc.gnu.org>
899 * check.c (dim_rank_check): Allow NULL references in call to
900 gfc_find_array_ref and return false if no reference is found.
902 2020-07-11 Thomas Koenig <tkoenig@gcc.gnu.org>
905 * frontend-passes.c (check_externals_procedure): Add locus
906 information for new_sym.
907 * interface.c (gfc_check_dummy_characteristics): Do not warn
908 about INTENT for artificially generated variables.
910 2020-07-10 Harald Anlauf <anlauf@gmx.de>
913 * class.c (gfc_add_component_ref, gfc_build_class_symbol):
914 Add checks for NULL pointer dereference.
915 * primary.c (gfc_variable_attr): Likewise.
916 * resolve.c (resolve_variable, resolve_assoc_var)
917 (resolve_fl_var_and_proc, resolve_fl_variable_derived)
918 (resolve_symbol): Likewise.
920 2020-07-10 Harald Anlauf <anlauf@gmx.de>
923 * match.c (gfc_match_select_rank): Catch NULL pointer
925 * resolve.c (resolve_assoc_var): Catch NULL pointer dereference
926 that may occur after an illegal declaration.
928 2020-07-09 Julian Brown <julian@codesourcery.com>
930 * trans-openmp.c (gfc_trans_omp_clauses): Use 'inner' not 'decl' for
931 derived type members which themselves have derived types.
933 2020-07-08 Harald Anlauf <anlauf@gmx.de>
936 * resolve.c (gfc_resolve_code): Check whether assign target is a
939 2020-07-06 Harald Anlauf <anlauf@gmx.de>
942 * match.c (copy_ts_from_selector_to_associate, build_class_sym):
943 Distinguish between unlimited polymorphic and ordinary variables
944 to avoid NULL pointer dereference.
945 * resolve.c (resolve_select_type):
946 Distinguish between unlimited polymorphic and ordinary variables
947 to avoid NULL pointer dereference.
949 2020-07-06 Harald Anlauf <anlauf@gmx.de>
952 * resolve.c (gfc_resolve_code): Check for valid arguments to
955 2020-07-05 Thomas Koenig <tkoenig@gcc.gnu.org>
958 * frontend-passes.c (check_against_globals): New function.
959 (gfc_check_externals): Split; also invoke check_against_globals
961 (gfc_check_externals0): Recursive part formerly in
963 * resolve.c (resolve_global_procedure): Set sym->error on
965 * symbol.c (ambiguous_symbol): Check for, and set sym->error.
967 2020-07-02 Harald Anlauf <anlauf@gmx.de>
970 * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
972 2020-07-02 Harald Anlauf <anlauf@gmx.de>
975 * class.c (gfc_find_derived_vtab): Punt if name is not set.
977 2020-07-02 Mark Eggleston <markeggleston@gcc.gnu.org>
980 * check.c (gfc_invalid_boz): Change array declaration for
983 2020-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
984 Mark Eggleston <markeggleston@gcc.gnu.org>
987 * interface.c (generic_correspondence): Only use the pointer
988 to a symbol if exists.
990 2020-07-01 David Edelsohn <dje.gcc@gmail.com>
992 * check.c (gfc_invalid_boz): Fix bootstrap. Revert
993 Mark hint for translation using _().
995 2020-07-01 Mark Eggleston <markeggleston@gcc.gnu.org>
998 * arith.c (reduce_binary_aa): Mark for translation the string
999 parameter to gfc_check_conformance with G_().
1000 * check.c (gfc_invalid_boz): Mark hint for translation using
1001 _(). (gfc_check_achar): Mark for translation the message
1002 parameter to gfc_invalid_boz using G_(). (gfc_check_char):
1003 Mark for translation the message parameter to gfc_invalid_boz
1004 using G_(). (gfc_check_complex): Mark for translation the
1005 message parameter to gfc_invalid_boz using G_().
1006 (gfc_check_float): Mark for translation the message
1007 parameter to gfc_invalid_boz using G_(). (check_rest): Mark
1008 for translation the string parameter to gfc_check_conformance
1009 with _(). (gfc_check_minloc_maxloc): Mark for translation
1010 the string parameter to gfc_check_conformance with _().
1011 (gfc_check_findloc): Mark for translation the string parameter
1012 to gfc_check_conformance with _(). (check_reduction): Mark
1013 for translation the string parameter to gfc_check_conformance
1014 with _(). (gfc_check_pack): Mark for translation the string
1015 parameter to gfc_check_conformance with _().
1016 * decl.c (match_old_style_init): Mark for translation the
1017 message parameter to gfc_invalid_boz using G_().
1018 * expr.c (gfc_check_assign): Mark for translation the string
1019 parameter to gfc_check_conformance with _().
1020 * intrinsic.c (check_specific): Mark for translation the string
1021 parameter to gfc_check_conformance with _().
1022 (gfc_check_intrinsic_standard): Mark symstd_msg strings for
1023 translation using G_(). No need to mark symstd_msg for
1024 translation in call to gfc_warning or when setting symstd.
1025 * io.c (check_open_constraints): Mark strings for translation
1026 using G_() in all calls to warn_or_error. (match_io_element):
1027 Mark for translation the message parameter to gfc_invalid_boz
1029 * primary.c (match_boz_constant): Mark for translation the
1030 message parameter to gfc_invalid_boz using G_().
1031 * resolve.c (resolve_elemental_actual): Mark for translation
1032 the string parameter to gfc_check_conformance with _().
1033 (resolve_operator): Mark for translation the string parameter
1034 to gfc_check_conformance with _(). Mark translation strings
1035 assigned to msg using G_() for use in a call to cfg_warning.
1037 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org>
1038 Mark Eggleston <markeggleston@gcc.gnu.org>
1041 * resolve.c (resolve_elemental_actual): Add code to check for
1042 non-optional argument of the same rank. Revise warning message
1043 to refer to the Fortran 2018 standard.
1045 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org>
1046 Mark Eggleston <markeggleston@gcc.gnu.org>
1049 * decl.c (gfc_match_decl_type_spec): Compare with "* ) " instead
1052 2020-06-30 Harald Anlauf <anlauf@gmx.de>
1055 * resolve.c (resolve_assoc_var): Avoid NULL pointer dereference.
1057 2020-06-30 Thomas Koenig <tkoenig@gcc.gnu.org>
1060 * gfortran.h (gfc_typename): Add optional argument for_hash.
1061 * misc.c (gfc_typename): When for_hash is true, just retur
1063 * class.c (gfc_intrinsic_hash_value): Call gfc_typename with
1066 2020-06-29 Harald Anlauf <anlauf@gmx.de>
1069 * decl.c (gfc_match_data): Avoid NULL pointer dereference.
1071 2020-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
1074 * trans-decl.c (gfc_generate_function_code): Do not generate
1075 recursion check for compiler-generated procedures.
1077 2020-06-29 Harald Anlauf <anlauf@gmx.de>
1080 * trans-stmt.c (gfc_trans_sync): Do proper kind conversion in
1081 bounds-checking code.
1083 2020-06-28 Harald Anlauf <anlauf@gmx.de>
1086 * match.c (gfc_match_select_rank): Do not dereference NULL pointer.
1088 2020-06-28 Harald Anlauf <anlauf@gmx.de>
1091 * symbol.c (gfc_add_type): If sym->ns->proc_name is set, use it,
1092 otherwise fall back to sym->name.
1094 2020-06-27 Harald Anlauf <anlauf@gmx.de>
1097 * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
1099 2020-06-25 Harald Anlauf <anlauf@gmx.de>
1102 * match.c (select_rank_set_tmp): Enlarge internal buffer used in
1103 generating a mangled name.
1104 * resolve.c (resolve_select_rank): Likewise.
1106 2020-06-25 Harald Anlauf <anlauf@gmx.de>
1109 * decl.c (gfc_match_decl_type_spec): Replace a fixed size
1110 buffer by a pointer and reallocate if necessary.
1112 2020-06-25 Tobias Burnus <tobias@codesourcery.com>
1115 * resolve.c (gfc_resolve_substring_charlen): Remove
1116 bogus ts.kind setting for the expression.
1118 2020-06-25 Tobias Burnus <tobias@codesourcery.com>
1119 Kwok Cheung Yeung <kcy@codesourery.com>
1122 * trans-openmp.c (gfc_trans_omp_target): Use correct scoping block.
1124 2020-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
1126 * trans-openmp.c (gfc_split_omp_clauses): Add if clause
1127 to target and simd sub-constructs.
1129 2020-06-24 Harald Anlauf <anlauf@gmx.de>
1132 * iresolve.c (gfc_get_string): Enlarge internal buffer used in
1133 generating the mangled name.
1135 2020-06-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1138 * dependency.c (ref_same_as_full_array): Handle case of AR_FULL
1141 2020-06-23 Steven G. Kargl <kargl@gcc.gnu.org>
1142 Mark Eggleston <markeggleston@gcc.gnu.org>
1145 * decl.c (gfc_match_implicit): Only perform else branch if
1146 the type spect is not BT_DERIVED.
1148 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org>
1149 Mark Eggleston <markeggleston@gcc.gnu.org>
1152 * intrinsic.c (add_functions): Replace CLASS_INQUIRY with
1153 CLASS_TRANSFORMATIONAL for intrinsic num_images.
1154 (make_generic): Replace ACTUAL_NO with ACTUAL_YES for
1155 intrinsic team_number.
1156 * resolve.c (resolve_fl_procedure): Check pointer ts.u.derived
1157 exists before using it.
1159 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org>
1160 Mark Eggleston <markeggleston@gcc.gnu.org>
1163 * check.c (gfc_check_reshape): Add check for a value when
1164 the symbol has an attribute flavor FL_PARAMETER.
1166 2020-06-22 Mark Eggleston <markeggleston@gcc.gnu.org>
1169 * arith.c (gfc_arith_error): Enclose strings in G_() instead
1172 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1175 * gfortran.h (gfc_common_head): Enlarge buffer.
1176 * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporary
1177 buffers, and add check on length on mangled name to prevent
1180 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1183 * iresolve.c (gfc_get_string): Enlarge static buffer size.
1185 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1188 * class.c (get_unique_type_string): Return a string with dynamic
1190 (get_unique_hashed_string, gfc_hash_value): Use dynamic result
1191 from get_unique_type_string instead of static buffer.
1193 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1196 * interface.c (check_sym_interfaces): Enlarge temporary buffer,
1197 and add check on length on mangled name to prevent overflow.
1199 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1202 * match.c (gfc_match_equivalence): Check constraints on
1203 EQUIVALENCE objects also for CLASS variables.
1205 2020-06-18 Tobias Burnus <tobias@codesourcery.com>
1207 * openmp.c (resolve_omp_clauses): Reject vars with
1208 allocatable components in OpenMP map clauses.
1210 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1212 * parse.c (decode_oacc_directive): Permit 'acc routine' also
1213 inside pure procedures.
1214 * openmp.c (gfc_match_oacc_routine): Inside pure procedures
1215 do not permit gang, worker or vector clauses.
1217 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1219 * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
1220 from "in PURE" error message also for -fopenmp-simd.
1222 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1224 * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
1225 from "in PURE" error message.
1227 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1230 * dump-parse-tree.c (gfc_dump_global_symbols): If the symroot is
1231 empty, just output "empty".
1233 2020-06-14 Harald Anlauf <anlauf@gmx.de>
1236 * class.c (get_unique_type_string): Replace use of fixed size
1237 buffer by internally passing a pointer to strings.
1239 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1241 * check.c (gfc_check_random_seed): Always use locations
1242 from get and put arguments for error messages.
1244 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1247 * class.c (finalize_component): Return early if finalization has
1248 already happened for expression and component within namespace.
1249 * gfortran.h (gfc_was_finalized): New type.
1250 (gfc_namespace): Add member was_finalzed.
1251 (gfc_expr): Remove finalized.
1252 * symbol.c (gfc_free_namespace): Free was_finalized.
1254 2020-06-11 Harald Anlauf <anlauf@gmx.de>
1255 Steven G. Kargl <kargl@gcc.gnu.org>
1258 * decl.c (access_attr_decl): Use correct symbol in error message.
1260 2020-06-11 Steven G. Kargl <kargl@gcc.gnu.org>
1261 Harald Anlauf <anlauf@gmx.de>
1264 * check.c (invalid_null_arg): Rename to gfc_invalid_null_arg.
1265 (gfc_check_associated, gfc_check_kind, gfc_check_merge)
1266 (gfc_check_shape, gfc_check_size, gfc_check_spread)
1267 (gfc_check_transfer): Adjust.
1268 (gfc_check_len_lentrim, gfc_check_trim): Check for NULL() argument.
1269 * gfortran.h: Declare gfc_invalid_null_arg ().
1270 * intrinsic.c (check_arglist): Check for NULL() argument.
1272 2020-06-11 Harald Anlauf <anlauf@gmx.de>
1275 * expr.c (gfc_check_pointer_assign): Skip contiguity check of rhs
1276 of pointer assignment if lhs cannot be simply contiguous.
1278 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1281 * trans-array.c (gfc_conv_array_ref): For class array dummy
1282 arguments use the transformed descriptor in sym->backend_decl
1283 instead of the original descriptor.
1285 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1289 * trans-array.c (gfc_conv_expr_descriptor): Enable the
1290 creation of a new descriptor with the correct one based
1291 indexing for array sections. Rework array descriptor
1292 indexing offset calculation.
1294 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1297 * trans-expr.c (gfc_conv_procedure_call): In the case of
1298 assumed-size arrays ensure that the reference is to a full array.
1300 2020-06-07 Harald Anlauf <anlauf@gmx.de>
1303 * class.c (gfc_hash_value): Add cast.
1305 2020-06-07 Harald Anlauf <anlauf@gmx.de>
1308 * class.c (get_unique_type_string, gfc_hash_value): Enlarge
1309 buffers, and check whether the strings returned by
1310 get_unique_type_string() fit.
1312 2020-06-05 Harald Anlauf <anlauf@gmx.de>
1316 * decl.c (gfc_match_decl_type_spec): Enlarge buffer, and enhance
1317 string copy to detect buffer overflow.
1318 * gfortran.h (gfc_common_head): Enlarge buffer.
1319 * trans-common.c (finish_equivalences): Enhance string copy to
1320 detect buffer overflow.
1322 2020-06-05 Tom Tromey <tromey@adacore.com>
1325 * misc.c (gfc_closest_fuzzy_match): Update cutoff value
1328 2020-06-04 Steven G. Kargl <kargl@gcc.gnu.org>
1329 Harald Anlauf <anlauf@gmx.de>
1332 * trans-expr.c (gfc_conv_expr_reference): Do not dereference NULL
1335 2020-06-03 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1340 * trans-expr.c (gfc_maybe_dereference_var): Add assumed-rank to
1341 character dummy arguments list of possible attributes.
1343 2020-06-03 Tobias Burnus <tobias@codesourcery.com>
1345 * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
1346 * trans-openmp.c (gfc_omp_predetermined_mapping): New.
1347 * trans.h (gfc_omp_predetermined_mapping): Declare.
1349 2020-05-31 Thomas Koenig <tkoenig@gcc.gnu.org>
1352 * class.c (finalize_component): Use expr->finalized instead of
1354 * gfortran.h (gfc_component): Remove finalized member.
1355 (gfc_expr): Add it here instead.
1357 2020-05-30 Harald Anlauf <anlauf@gmx.de>
1360 * primary.c (is_inquiry_ref): Move validity check of inquiry
1361 references against selected Fortran standard from here...
1362 (gfc_match_varspec) ...to here.
1364 2020-05-30 Harald Anlauf <anlauf@gmx.de>
1367 * class.c (get_unique_type_string): Use buffer overrun check.
1369 2020-05-29 Harald Anlauf <anlauf@gmx.de>
1372 * class.c (get_unique_type_string): Enlarge temporary for
1373 name-mangling. Use strncpy to prevent buffer overrun.
1374 (get_unique_hashed_string): Enlarge temporary.
1375 (gfc_hash_value): Enlarge temporary for name-mangling.
1377 2020-05-28 Harald Anlauf <anlauf@gmx.de>
1380 * primary.c (is_inquiry_ref): Check validity of inquiry
1381 references against selected Fortran standard.
1383 2020-05-28 Steven G. Kargl <kargl@gcc.gnu.org>
1384 Mark Eggleston <markeggleston@gcc.gnu.org>
1385 Mark Eggleston <markeggleston@gcc.gnu.org>
1388 * match.c (gfc_match_type_spec): New variable ok initialised
1389 to true. Set ok with the return value of gfc_reduce_init_expr
1390 called only if the expression is not EXPR_CONSTANT and is not
1391 EXPR_VARIABLE. Add !ok to the check for type not being integer
1392 or the rank being greater than zero.
1394 2020-05-27 Harald Anlauf <anlauf@gmx.de>
1397 * iresolve.c (gfc_get_string): Enlarge temporary for
1400 2020-05-27 Tobias Burnus <tobias@codesourcery.com>
1401 Mark Eggleston <markeggleston@gnu.gcc.org>
1404 * trans-decl.c (gfc_get_symbol_decl): Remove unnecessary block
1405 delimiters. Add auxiliary variables if a label is assigned to
1406 a return variable. (gfc_gat_fake_result): If the symbol has an
1407 assign attribute set declaration from the symbol's backend
1410 2020-05-26 Harald Anlauf <anlauf@gmx.de>
1413 * trans-types.c (gfc_get_derived_type): Enlarge temporary to hold
1414 mangled name "_caf_symbol".
1416 2020-05-26 Alexandre Oliva <oliva@adacore.com>
1418 * options.c (gfc_get_option_string): Drop auxbase, add
1421 2020-05-24 Harald Anlauf <anlauf@gmx.de>
1424 * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporaries
1427 2020-05-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1430 * libgfortran.h (libgfortran_error_codes): Add
1431 LIBERROR_BAD_WAIT_ID.
1433 2020-05-20 Mark Eggleston <markeggleston@gcc.gnu.org>
1436 * resolve.c (resolve_fl_procedure): Set name depending on
1437 whether the result attribute is set. For PROCEDURE/RESULT
1438 conflict use the name in sym->ns->proc_name->name.
1439 * symbol.c (gfc_add_type): Add check for function and result
1440 attributes use sym->ns->proc_name->name if both are set.
1441 Where the symbol cannot have a type use the name in
1442 sym->ns->proc_name->name.
1444 2020-05-18 Harald Anlauf <anlauf@gmx.de>
1447 * arith.c (gfc_divide): Revert hunk introduced by patch for
1449 * decl.c (variable_decl): Generate error for array shape not being
1450 an INTEGER constant.
1451 (gfc_get_pdt_instance): Generate error if KIND or LEN expressions
1452 in declaration of a PDT instance do not simplify to INTEGER
1455 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
1458 * openmp.c (resolve_omp_do): Permit more clauses for SIMD
1459 iteration variables.
1461 2020-05-14 Jakub Jelinek <jakub@redhat.com>
1463 * trans-openmp.c: Include function.h.
1464 (gfc_trans_omp_target): Set cfun->has_omp_target.
1466 2020-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
1469 * decl.c (char_len_param_value): Check whether character
1470 length expression is of type EXPR_OP and if so simplify it.
1471 * resolve.c (resolve_charlen): Reject length if it has a
1474 2020-05-13 Tobias Burnus <tobias@codesourcery.com>
1477 * openmp.c (OMP_DISTRIBUTE_CLAUSES): Add OMP_CLAUSE_LASTPRIVATE.
1478 (gfc_resolve_do_iterator): Skip the private handling for SIMD as
1479 that is handled by ME code.
1480 * trans-openmp.c (gfc_trans_omp_do): Don't add private/lastprivate
1481 for dovar_found == 0, unless !simple.
1483 2020-05-11 Harald Anlauf <anlauf@gmx.de>
1486 * arith.c (gfc_divide): Do not error out if operand 2 is
1487 non-numeric. Defer checks to later stage.
1489 2020-05-11 Tobias Burnus <tobias@codesourcery.com>
1492 * trans.h (gfc_conv_expr_present): Add use_saved_decl=false argument.
1493 * trans-expr.c (gfc_conv_expr_present): Likewise; use DECL directly
1494 and only if use_saved_decl is true, use the actual PARAM_DECL arg (saved
1496 * trans-array.c (gfc_trans_dummy_array_bias): Set local 'arg.0'
1497 variable to NULL if 'arg' is not present.
1498 * trans-openmp.c (gfc_omp_check_optional_argument): Simplify by checking
1499 'arg.0' instead of the true PARM_DECL.
1500 (gfc_omp_finish_clause): Remove setting 'arg.0' to NULL.
1502 2020-05-11 Janus Weil <janus@gcc.gnu.org>
1503 Dominique d'Humieres <dominiq@lps.ens.fr>
1506 * gfortran.h: Rename field resolved as resolve_symbol_called
1507 and assign two 2 bits instead of 1.
1508 * interface.c (check_dtio_interface1): Use new field name.
1509 (gfc_find_typebound_dtio_proc): Use new field name.
1510 * resolve.c (gfc_resolve_intrinsic): Replace check of the formal
1511 field with resolve_symbol_called is at least 2, if it is not
1512 set the field to 2. (resolve_typebound_procedure): Use new field
1513 name. (resolve_symbol): Use new field name and check whether it
1514 is at least 1, if it is not set the field to 1.
1516 2020-05-10 Harald Anlauf <anlauf@gmx.de>
1519 * arith.c (gfc_divide): Catch division by zero.
1520 (eval_intrinsic_f3): Safeguard for NULL operands.
1522 2020-05-05 Steve Kargl <kargl@gcc.gnu.org>
1523 Harald Anlauf <anlauf@gmx.de>
1526 * check.c (gfc_check_associated, invalid_null_arg): Factorize
1527 check for presence of invalid NULL() argument.
1528 (gfc_check_kind, gfc_check_merge, gfc_check_shape)
1529 (gfc_check_sizeof, gfc_check_spread, gfc_check_transfer): Use this
1530 check for presence of invalid NULL() arguments.
1532 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1535 * io.c (check_io_constraints): Initialize local variable num to
1536 -1 and assert that it receives a meaningful value by function
1537 compare_to_allowed_values.
1539 2020-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1543 * expr.c (gfc_check_pointer_assign): Revert patch for PR 93956.
1544 * interface.c: Likewise.
1546 2020-04-25 Thomas Koenig <tkoenig@gcc.gnu.org>
1549 * trans-expr.c (arrayfunc_assign_needs_temporary): If the
1550 LHS is a subref pointer, we also need a temporary.
1552 2020-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1555 * expr.c (gfc_check_pointer_assign): Also set subref_array_pointer
1556 when a function returns a pointer.
1557 * interface.c (gfc_set_subref_array_pointer_arg): New function.
1558 (gfc_procedure_use): Call it.
1560 2020-04-22 Fritz Reese <foreese@gcc.gnu.org>
1562 * trigd_fe.inc: Use mpfr to compute cosd(30) rather than a host-
1563 precision floating point literal based on an invalid macro.
1565 2020-04-22 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1568 * simplify.c (simplify_bound): In the case of assumed-size arrays
1569 check if the reference is to a full array.
1571 2020-04-22 Tobias Burnus <tobias@codesourcery.com>
1574 * scanner.c (load_line): In fixed form, also treat 'C' as comment and
1575 'D'/'d' only with -fd-lines-as-comments. Treat '!$' with -fopenmp,
1576 '!$acc' with -fopenacc and '!GCC$' as non-comment to permit <tab>
1577 and truncation warnings.
1579 2020-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
1581 * dump-parse-tree.c (show_attr): Add numerous flags, some cleanup.
1583 2020-04-20 Harald Anlauf <anlauf@gmx.de>
1586 * array.c (gfc_set_array_spec): Check for sum of rank and corank
1587 not exceeding GFC_MAX_DIMENSIONS.
1589 2020-04-20 Steve Kargl <kargl@gcc.gnu.org>
1590 Thomas Koenig <tkoenig@gcc.gnu.org>
1593 * decl.c (variable_decl): Reject Hollerith constants as type
1596 2020-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1599 * resolve.c (resolve_operator): If both operands are
1601 * simplify.c (simplify_bound): If a division by zero
1602 was seen during bound simplification, free the
1603 corresponcing expression and return &gfc_bad_expr.
1605 2020-04-17 Thomas Koenig <tkoenig@gcc.gnu.org>
1608 * gfortran.dg (gfc_compare_interfaces): Add
1609 optional argument bad_result_characteristics.
1610 * interface.c (gfc_check_result_characteristics): Fix
1612 (gfc_compare_interfaces): Handle new argument; return
1613 true if function return values are wrong.
1614 * resolve.c (resolve_global_procedure): Hard error if
1615 the return value of a function is wrong.
1617 2020-04-15 Fritz Reese <foreese@gcc.gnu.org>
1618 Linus Koenig <link@sig-st.de>
1621 * simplify.c (simplify_bound): Simplify condition for error check.
1623 2020-04-14 Tobias Burnus <tobias@codesourcery.com>
1625 * module.c (gfc_match_use): Fix name-conflict check for use-associating
1626 the same symbol again in a submodule.
1628 2020-04-13 Linus Koenig <link@sig-st.de>
1631 * resolve.c (resolve_fl_var_and_proc): Set flag "error" to 1 if
1632 pointer is found to not have an assumed rank or a deferred shape.
1633 * simplify.c (simplify_bound): If an error has been issued for a
1634 given pointer, one should not attempt to find its bounds.
1636 2020-04-09 Fritz Reese <foreese@gcc.gnu.org>
1639 * gfortran.h (gfc_resolve_open, gfc_resolve_close): Add
1641 (gfc_resolve_dt): Add code parameter.
1642 * io.c (async_io_dt, check_char_variable, is_char_type): Removed.
1643 (resolve_tag_format): Add locus to error message regarding
1644 zero-sized array in FORMAT tag.
1645 (check_open_constraints, check_close_constraints): New functions
1646 called at resolution time.
1647 (gfc_match_open, gfc_match_close, match_io): Move checks which don't
1648 affect the match result to new functions check_open_constraints,
1649 check_close_constraints, check_io_constraints.
1650 (gfc_resolve_open, gfc_resolve_close): Call new functions
1651 check_open_constraints, check_close_constraints after all tags have
1652 been independently resolved. Remove duplicate constraints which are
1653 already verified by resolve_tag. Explicitly pass locus to all error
1655 (compare_to_allowed_values): Add locus parameter and provide
1656 explicit locus all error reports.
1657 (match_open_element, match_close_element, match_file_element,
1658 match_dt_element, match_inquire_element): Remove redundant special
1659 cases for ASYNCHRONOUS and IOMSG tags.
1660 (gfc_resolve_dt): Remove redundant special case for format
1661 expression. Call check_io_constraints, forwarding an I/O list as
1662 the io_code parameter if present.
1663 (check_io_constraints): Change return type to bool. Pass explicit
1664 locus to error reports. Move generic checks after tag-specific
1665 checks, since errors are no longer buffered. Move simplification of
1666 format string to match_io. Remove redundant checks which are
1667 verified by resolve_tag. Remove usage of async_io_dt flag and
1668 explicitly mark symbols used in asynchronous I/O with the
1669 asynchronous attribute.
1670 * resolve.c (resolve_transfer, resolve_fl_namelist): Remove checks
1671 for async_io_dt flag. This is now done in io.c.
1672 (check_io_constraints).
1673 (gfc_resolve_code): Pass code locus to gfc_resolve_open,
1674 gfc_resolve_close, gfc_resolve_dt.
1676 2020-04-07 Fritz Reese <foreese@gcc.gnu.org>
1677 Steven G. Kargl <kargl@gcc.gnu.org>
1680 * gfortran.h (GFC_ISYM_ACOSD, GFC_ISYM_ASIND, GFC_ISYM_ATAN2D,
1681 GFC_ISYM_ATAND, GFC_ISYM_COSD, GFC_ISYM_COTAND, GFC_ISYM_SIND,
1682 GFC_ISYM_TAND): New.
1683 * intrinsic.c (add_functions): Remove check for flag_dec_math.
1684 Give degree trig functions simplification and name resolution
1685 functions (e.g, gfc_simplify_atrigd () and gfc_resolve_atrigd ()).
1686 (do_simplify): Remove special casing of degree trig functions.
1687 * intrinsic.h (gfc_simplify_acosd, gfc_simplify_asind,
1688 gfc_simplify_atand, gfc_simplify_cosd, gfc_simplify_cotand,
1689 gfc_simplify_sind, gfc_simplify_tand, gfc_resolve_trigd2): Add new
1691 (gfc_simplify_atrigd, gfc_simplify_trigd, gfc_resolve_cotan,
1692 resolve_atrigd): Remove prototypes of deleted functions.
1693 * iresolve.c (is_trig_resolved, copy_replace_function_shallow,
1694 gfc_resolve_cotan, get_radians, get_degrees, resolve_trig_call,
1695 gfc_resolve_atrigd, gfc_resolve_atan2d): Delete functions.
1696 (gfc_resolve_trigd, gfc_resolve_trigd2): Resolve to library functions.
1697 * simplify.c (rad2deg, deg2rad, gfc_simplify_acosd, gfc_simplify_asind,
1698 gfc_simplify_atand, gfc_simplify_atan2d, gfc_simplify_cosd,
1699 gfc_simplify_sind, gfc_simplify_tand, gfc_simplify_cotand): New
1701 (gfc_simplify_atan2): Fix error message.
1702 (simplify_trig_call, gfc_simplify_trigd, gfc_simplify_atrigd,
1703 radians_f): Delete functions.
1704 * trans-intrinsic.c: Add LIB_FUNCTION decls for sind, cosd, tand.
1705 (rad2deg, gfc_conv_intrinsic_atrigd, gfc_conv_intrinsic_cotan,
1706 gfc_conv_intrinsic_cotand, gfc_conv_intrinsic_atan2d): New functions.
1707 (gfc_conv_intrinsic_function): Handle ACOSD, ASIND, ATAND, COTAN,
1709 * trigd_fe.inc: New file. Included by simplify.c to implement
1710 simplify_sind, simplify_cosd, simplify_tand with code common to the
1711 libgfortran implementation.
1713 2020-04-06 Steven G. Kargl <kargl@gcc.gnu.org>
1716 * decl.c (gfc_match_data): Handle data matching for derived type
1719 2020-04-02 Tobias Burnus <tobias@codesourcery.com>
1721 * gfortran.h (gfc_resolve_formal_arglist): Add prototype.
1722 * interface.c (check_dtio_interface1): Call it.
1723 * resolve.c (gfc_resolve_formal_arglist): Renamed from
1724 resolve_formal_arglist, removed static.
1725 (find_arglists, resolve_types): Update calls.
1727 2020-04-02 Tobias Burnus <tobias@codesourcery.com>
1730 * match.c (gfc_match_select_rank): Fix error cleanup.
1732 2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
1735 * check.c (gfc_check_findloc): If the kinds of the arguments
1736 differ goto label "incompat".
1738 2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
1741 * resolve.c (resolve_equivalence): Correct formatting
1742 around the label "identical_types". Instead of using
1743 gfc_resolve_array_spec use is_non_constants_shape_array
1744 to determine whether the array can be used in a in an
1745 equivalence statement.
1747 2020-04-01 Mark Eggleston <mark.eggleston@codethink.com>
1750 expr.c (simplify_parameter_variable): Restore code deleted
1753 2020-03-28 Paul Thomas <pault@gcc.gnu.org>
1756 * arith.c : Remove trailing white space.
1757 * expr.c (scalarize_intrinsic_call): Remove the error checking.
1758 Make a copy of the expression to be simplified and only replace
1759 the original if the simplification succeeds.
1761 2020-03-28 Tobias Burnus <tobias@codesourcery.com>
1764 * decl.c (gfc_match_submod_proc): Add result var to the
1767 2020-03-27 Tobias Burnus <tobias@codesourcery.com>
1770 * trans-array.c (gfc_alloc_allocatable_for_assignment): Accept
1771 nonallocatable, nonpointer deferred-rank arrays.
1773 2020-03-27 Tobias Burnus <tobias@codesourcery.com>
1776 * resolve.c (resolve_assoc_var): Reject association to DT and
1779 2020-03-25 Steven G. Kargl <kargl@gcc.gnu.org>
1782 * match.c (gfc_match_type_spec): Replace gfc_match_init_expr with
1783 gfc_match_expr. Return m if m is MATCH_NO or MATCH_ERROR.
1785 2020-03-23 Mark Eggleston <mark.eggleston@codethink.com>
1786 Steven G. Kargl <kargl@gcc.gnu.org>
1789 * expr.c (simplify_parameter_variable): Check whether the ref
1790 chain contains INQUIRY_LEN or INQUIRY_KIND and set inquiry
1791 boolean. When an empty array has been identified and a new
1792 new EXPR_ARRAY expression has been created only return that
1793 expression if inquiry is not set. This allows the new
1794 expression to drop through to be simplified into a
1795 EXPR_CONSTANT representing %kind or %len.
1796 * matc.c (gfc_match_assignment): If lvalue doesn't have a
1797 symtree free both lvalue and rvalue expressions and return
1799 * resolv.c (gfc_resolve_ref): Ensure that code to handle
1800 INQUIRY_LEN is only performed for arrays with deferred types.
1802 2020-03-18 Jakub Jelinek <jakub@redhat.com>
1804 * class.c (generate_finalization_wrapper): Fix up duplicated word
1806 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1808 2020-03-17 Jakub Jelinek <jakub@redhat.com>
1810 * array.c (gfc_check_iter_variable): Fix up duplicated word issue
1812 * arith.c (gfc_arith_concat): Likewise.
1813 * resolve.c (gfc_resolve_ref): Likewise.
1814 * frontend-passes.c (matmul_lhs_realloc): Likewise.
1815 * module.c (gfc_match_submodule, load_needed): Likewise.
1816 * trans-expr.c (gfc_init_se): Likewise.
1818 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
1820 * lang.opt: Avoid redundancy in the help text.
1822 2020-03-12 Tobias Burnus <tobias@codesourcery.com>
1825 * openmp.c (gfc_match_oacc_declare): Accept function-result
1826 variables; reject variables declared in a different scoping unit.
1828 2020-03-08 Paul Thomas <pault@gcc.gnu.org>
1831 * resolve.c (gfc_resolve_ref): Modify array refs to be elements
1832 if the ref chain ends in INQUIRY_LEN.
1833 * trans-array.c (gfc_get_dataptr_offset): Provide the offsets
1834 for INQUIRY_RE and INQUIRY_IM.
1836 2020-03-05 Steven G. Kargl <kargl@gcc.gnu.org>
1839 * decl.c (variable_decl): If param and initializer check
1840 for BOZ, if found, output an error, set m to MATCH_ERROR
1843 2020-03-02 Andrew Benson <abensonca@gmail.com>
1846 * module.c: Increase size of variables used to read module names
1847 when loading interfaces from module files to permit cases where
1848 the name is the concatenation of a module and submodule name.
1849 * gfortran.dg/pr93486.f90: New test.
1851 2020-03-01 Paul Thomas <pault@gcc.gnu.org>
1854 * match.c (select_type_set_tmp): If the selector array spec has
1855 explicit bounds, make the temporary's bounds deferred.
1857 2020-03-01 Paul Thomas <pault@gcc.gnu.org>
1860 * trans-intrinsic.c (gfc_conv_associated): Eliminate
1861 'nonzero_charlen' and move the chunk to evaluate zero character
1862 length until after the argument evaluation so that the string
1865 2020-02-28 Paul Thomas <pault@gcc.gnu.org>
1868 * trans-expr.c (gfc_conv_intrinsic_to_class): Renormalise non-
1869 variable expressions to be unity lbound based.
1871 2020-02-25 Steven G. Kargl <kargl@gcc.gnu.org>
1873 * simplify.c (degrees_f): Remove unused code.
1875 2020-02-25 Jakub Jelinek <jakub@redhat.com>
1877 PR translation/93864
1878 * intrinsic.texi (CO_BROADCAST): Fix typo, paramter -> parameter.
1879 * trans-array.c (gfc_allocate_pdt_comp, gfc_deallocate_pdt_comp,
1880 gfc_check_pdt_dummy): Fix comment typo paramter -> parameter.
1882 2020-02-24 Mark Eggleston <mark.eggleston@codethink.com>
1883 Steven G. Kargl <kargl@gcc.gnu.org>
1886 * decl.c (gfc_match_data) : Check whether the data expression
1887 is a derived type and is a constructor. If a BOZ constant
1888 is encountered in the constructor output an error and return
1891 2020-02-24 Steven G. Kargl <kargl@gcc.gnu.org>
1894 * decl.c (gfc_match_data) : Check whether the data expression
1895 is a derived type and is a constructor. If a BOZ constant
1896 is encountered in the constructor output an error and return
1899 2020-02-24 Tobias Burnus <tobias@codesourcery.com>
1902 * match.c (match_exit_cycle): With OpenACC, check the kernels loop
1903 directive and tile clause as well.
1905 2020-02-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1908 * interface.c (compare_parameter): Fix error message.
1910 2020-02-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1913 * interface.c: Replace "can not" by "cannot" and remove trailing
1916 2020-02-20 Tobias Burnus <tobias@codesourcery.com>
1919 * openmp.c (resolve_oacc_loop_blocks): Move call to
1920 resolve_oacc_nested_loops from here ...
1921 (resolve_oacc_loop): ... to here.
1923 2020-02-18 Mark Eggleston <markeggleston@gcc.gnu.org>
1926 * expr.c (gfc_check_pointer_assign): Move check for
1927 matching character length to after checking the lvalue
1928 attributes for target or pointer.
1930 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1933 * match.c (gfc_match_assignment) : Reject assignment if
1934 the lhs stype is BT_CLASS and the rhs type is BT_BOZ.
1936 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1939 * match.c (gfc_match_associate) : If target expression
1940 has the type BT_BOZ output an error and goto
1943 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1944 Mark Eggleston <markeggleston@gcc.gnu.org>
1947 * primary.c (gfc_match_varspec): If the symbol following %
1948 is re or im and the primary expression type is not BT_COMPLEX
1949 issue an error. If the symbol is len and the primary
1950 expression type is not BT_CHARACTER is an error.
1952 2020-02-10 Andrew Benson <abensonca@gmail.com>
1955 * array.c: Do not attempt to set the array spec for a submodule
1956 function symbol (as it has already been set in the corresponding
1957 module procedure interface).
1958 * symbol.c: Do not reject duplicate POINTER, ALLOCATABLE, or
1959 DIMENSION attributes in declarations of a submodule function.
1960 * gfortran.h: Add a macro that tests for a module procedure in a
1962 * gfortran.dg/pr83113.f90: New test.
1964 2020-02-03 Julian Brown <julian@codesourcery.com>
1965 Tobias Burnus <tobias@codesourcery.com>
1967 * cpp.c (cpp_define_builtins): Update _OPENACC define to 201711.
1968 * intrinsic.texi: Update mentions of OpenACC version to 2.6.
1969 * gfortran.texi: Likewise. Remove experimental disclamer for OpenACC.
1970 * invoke.texi: Remove experimental disclamer for OpenACC.
1972 2020-02-03 Tobias Burnus <tobias@codesourcery.com>
1975 * intrinisic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS):
1976 Add undocumented parameters from omp_lib.f90.in.
1978 2020-02-03 Tobias Burnus <tobias@codesourcery.com>
1981 * resolve.c (resolve_assoc_var): Remove too strict check.
1982 * gfortran.dg/associate_51.f90: Update test case.
1984 2020-02-01 Jakub Jelinek <jakub@redhat.com>
1987 * trans-types.c (gfc_get_function_type): Also push boolean_type_node
1988 types for non-character scalar VALUE optional dummy arguments.
1989 * trans-decl.c (create_function_arglist): Skip those in
1990 hidden_typelist. Formatting fix.
1992 2020-01-31 Tobias Burnus <tobias@codesourcery.com>
1995 * frontend-passes.c (gfc_code_walker): For EXEC_OACC_ATOMIC, set
1996 in_omp_atomic to true prevent front-end optimization.
1998 2020-01-30 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2001 * expr.c (gfc_check_conformance): Check vsnprintf for truncation.
2002 * iresolve.c (gfc_get_string): Likewise.
2003 * symbol.c (gfc_new_symbol): Remove check for maximum symbol
2004 name length. Remove redundant 0 setting of new calloc()ed
2007 2020-01-30 Paul Thomas <pault@gcc.gnu.org>
2008 Jakub Jelinek <jakub@redhat.com>
2011 * trans-decl.c (gfc_get_symbol_decl): Call gfc_defer_symbol_init for
2013 (gfc_build_builtin_function_decls): Use ".w." instead of ".ww" or ".wR"
2014 for gfor_fndecl_{cfi_to_gfc,gfc_to_cfi}.
2015 (convert_CFI_desc): Handle references to CFI descriptors.
2017 2020-01-29 Jakub Jelinek <jakub@redhat.com>
2020 * openmp.c (oacc_code_to_statement): Handle
2021 EXEC_OACC_{ROUTINE,UPDATE,WAIT,CACHE,{ENTER,EXIT}_DATA,DECLARE}.
2023 2020-01-28 Andrew Benson <abensonca@gmail.com>
2026 * trans.h: Increase GFC_MAX_MANGLED_SYMBOL_LEN to
2027 GFC_MAX_SYMBOL_LEN*3+5 to allow for inclusion of submodule name,
2028 plus the "." between module and submodule names.
2029 * gfortran.dg/pr93461.f90: New test.
2031 2020-01-28 Andrew Benson <abensonca@gmail.com>
2034 * parse.c: Increase length of char variables to allow them to hold
2035 a concatenated module + submodule name.
2036 * gfortran.dg/pr93473.f90: New test.
2038 2020-01-28 Julian Brown <julian@codesourcery.com>
2041 * openmp.c (resolve_omp_clauses): Check array references for contiguity.
2043 2020-01-28 Julian Brown <julian@codesourcery.com>
2045 * gfortran.h (gfc_symbol): Add comp_mark bitfield.
2046 * openmp.c (resolve_omp_clauses): Disallow mixed component and
2047 full-derived-type accesses to the same variable within a single
2050 2020-01-28 Tobias Burnus <tobias@codesourcery.com>
2053 * openmp.c (gfc_omp_check_optional_argument): Avoid ICE when
2054 DECL_LANG_SPECIFIC and GFC_DESCRIPTOR_TYPE_P but not
2055 GFC_DECL_SAVED_DESCRIPTOR as for local allocatable character vars.
2057 2020-01-28 Tobias Burnus <tobias@codesourcery.com>
2059 * gfortran.texi (Runtime): Remove tailing '.' in @menu.
2061 2020-01-27 Tobias Burnus <tobias@codesourcery.com>
2064 * trans-expr.c (gfc_conv_substring): Handle non-ARRAY_TYPE strings
2065 of Bind(C) procedures.
2067 2020-01-22 Jakub Jelinek <jakub@redhat.com>
2069 * parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL.
2070 * trans-openmp.c (gfc_trans_omp_target)
2071 <case EXEC_OMP_TARGET_PARALLEL>: Call pushlevel first.
2074 * openmp.c (omp_code_to_statement): Handle remaining EXEC_OMP_*
2077 2020-01-21 Tobias Burnus <tobias@codesourcery.com>
2080 * interface.c (gfc_procedure_use): Also check parent namespace for
2081 'implict none (external)'.
2082 * symbol.c (gfc_get_namespace): Don't set has_implicit_none_export
2083 to parent namespace's setting.
2085 2020-01-19 Thomas König <tkoenig@gcc.gnu.org>
2088 * primary.c (gfc_match_rvalue): Break after setting MATCH_ERROR.
2089 * resolve.c (resolve_function): Issue error when a
2090 function call contains a reference.
2092 2020-01-17 Mark Eggleston <mark.eggleston@codethink.com>
2095 * resolve.c (resolve_types): Declare boolean recursive and set with the
2096 value of the recursive attribute of namespace proc_name symbol
2097 structure if it exists. Call gfc_save_all if both flag_automatic and
2098 recursive are false or ns->save_all is true.
2100 2020-01-16 Tobias Burnus <tobias@codesourcery.com>
2103 * check.c (gfc_invalid_boz): Mention -fallow-invalid-boz
2104 in the error message.
2105 * gfortran.texi (BOZ literal constants): List another missing
2106 extension and refer to -fallow-invalid-boz.
2107 * lang.opt (fallow-invalid-boz): Also mention 'X' in the help text
2108 as it is not covered by the previous wording.
2109 * primary.c (match_boz_constant): Tweak wording such that it is
2110 clear how to fix the nonstandard use.
2112 2020-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
2115 * array.c (empty_constructor): New variable.
2116 (empty_ts): New variable.
2117 (expand_constructor): Save typespec in empty_ts.
2118 Unset empty_constructor if there is an element.
2119 (gfc_expand_constructor): Initialize empty_constructor
2120 and empty_ts. If there was no explicit constructor
2121 type and the constructor is empty, take the type from
2124 2020-01-09 Tobias Burnus <tobias@codesourcery.com>
2127 * array.c (gfc_set_array_spec): Fix shifting of codimensions
2128 when adding a dimension.
2129 * decl.c (merge_array_spec): Ditto. Fix using correct codimensions.
2131 2020-01-07 Jakub Jelinek <jakub@redhat.com>
2134 * trans-openmp.c (gfc_trans_omp_clauses): Check for REF_ARRAY type
2135 before testing u.ar.type == AR_FULL.
2137 2020-01-04 Tobias Burnus <tobias@codesourcery.com>
2140 * trans-expr.c (gfc_conv_procedure_call): Avoid copy-out for nonvariable
2141 arguments to contiguous dummy args. Avoid re-checking whether fsym is
2144 2020-01-03 Tobias Burnus <tobias@codesourcery.com>
2146 * trans-openmp.c (gfc_omp_check_optional_argument): Always return a
2147 Boolean expression; handle unallocated/disassociated actual arguments
2148 as absent if passed to nonallocatable/nonpointer dummy array arguments.
2149 (gfc_build_cond_assign): Change to assume a Boolean expr not a pointer.
2150 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Assign NULL to generated
2151 array-data variable if the argument is absent. Simplify code as
2152 'present' is now a Boolean expression.
2154 2020-01-03 Tobias Burnus <tobias@codesourcery.com>
2157 * primary.c (gfc_match_rvalue): Add some flavor checks
2158 gfc_matching_procptr_assignment.
2159 * resolve.c (resolve_assoc_var): Add more checks for invalid targets.
2161 2020-01-02 Tobias Burnus <tobias@codesourcery.com>
2164 * array.c (gfc_match_array_spec): Fix implied-type matching
2167 2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org>
2170 * dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch
2173 2020-01-01 Jakub Jelinek <jakub@redhat.com>
2175 Update copyright years.
2177 * gfortranspec.c (lang_specific_driver): Update copyright notice
2179 * gfc-internals.texi: Bump @copying's copyright year.
2180 * gfortran.texi: Ditto.
2181 * intrinsic.texi: Ditto.
2182 * invoke.texi: Ditto.
2184 Copyright (C) 2020 Free Software Foundation, Inc.
2186 Copying and distribution of this file, with or without modification,
2187 are permitted in any medium without royalty provided the copyright
2188 notice and this notice are preserved.