1 2020-12-17 Tobias Burnus <tobias@codesourcery.com>
4 * match.c (gfc_match_assignment): Move gfc_find_vtab call from here ...
5 * resolve.c (gfc_resolve_code): ... to here.
7 2020-12-17 Harald Anlauf <anlauf@gmx.de>
10 * trans-stmt.c (check_forall_dependencies): Extend dependency
11 check to allocatable components of derived types.
13 2020-12-16 Harald Anlauf <anlauf@gmx.de>
16 * resolve.c (check_data_variable): Reject DATA elements with the
17 ALLOCATABLE attribute.
19 2020-12-15 Thomas Koenig <tkoenig@gcc.gnu.org>
22 * invoke.texi: Document -fdebug-aux-vars.
23 * lang.opt: Add -fdebug-aux-vars.
24 * trans.c (MAX_PREFIX_LEN): New macro.
25 (create_var_debug_raw): New function.
26 (gfc_create_var_np): Call create_var_debug_raw if
27 flag_debug_aux_vars is set.
29 2020-12-13 Thomas Koenig <tkoenig@gcc.gnu.org>
31 * dump-parse-tree.c (show_array_ref): Also show coarrays.
32 (debug): Implement for array reference.
34 2020-12-12 Paul Thomas <pault@gcc.gnu.org>
37 * data.c (gfc_assign_data_value): Handle inquiry references in
38 the data statement object list.
40 2020-12-08 Tobias Burnus <tobias@codesourcery.com>
42 * dump-parse-tree.c (show_omp_clauses, show_omp_node,
43 show_code_node): Handle OMP SCAN.
44 * gfortran.h (enum gfc_statement): Add ST_OMP_SCAN.
45 (enum): Add OMP_LIST_SCAN_IN and OMP_LIST_SCAN_EX.
46 (enum gfc_exec_op): Add EXEC_OMP_SCAN.
47 * match.h (gfc_match_omp_scan): New prototype.
48 * openmp.c (gfc_match_omp_scan): New.
49 (gfc_match_omp_taskgroup): Cleanup.
50 (resolve_omp_clauses, gfc_resolve_omp_do_blocks,
51 omp_code_to_statement, gfc_resolve_omp_directive): Handle 'omp scan'.
52 * parse.c (decode_omp_directive, next_statement,
53 gfc_ascii_statement): Likewise.
54 * resolve.c (gfc_resolve_code): Handle EXEC_OMP_SCAN.
55 * st.c (gfc_free_statement): Likewise.
56 * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_do,
57 gfc_split_omp_clauses): Handle 'omp scan'.
59 2020-12-05 Paul Thomas <pault@gcc.gnu.org>
62 * resolve.c (resolve_symbol): Set formal_arg_flag before
63 resolving an array spec and restore value afterwards.
65 2020-12-03 Harald Anlauf <anlauf@gmx.de>
68 * decl.c (gfc_match_function_decl): Avoid NULL pointer dereference.
69 (gfc_match_subroutine): Likewise.
71 2020-11-30 Tobias Burnus <tobias@codesourcery.com>
74 * scanner.c (skip_free_comments, skip_fixed_comments): If only
75 -fopenacc but not -fopenmp is used, ignore OpenMP's conditional
76 compilation sentinels. Fix indentation, use 'else if' for readability.
78 2020-11-30 Tobias Burnus <tobias@codesourcery.com>
82 * options.c (gfc_post_options): Also imply recursive with
84 * trans-decl.c (gfc_generate_function_code): Simplify condition.
86 2020-11-30 Tobias Burnus <tobias@codesourcery.com>
88 * dump-parse-tree.c (show_expr): Use '==' not '=' for '.eq.'.
90 2020-11-29 Harald Anlauf <anlauf@gmx.de>
92 * expr.c (simplify_parameter_variable): Fix up character length
93 after copying an array-valued expression.
95 2020-11-28 Thomas Koenig <tkoenig@gcc.gnu.org>
98 * trans-decl.c (gfc_get_extern_function_decl): Add argument
100 * trans-intrinsic.c (MAX_SPEC_ARG): Define.
101 (intrinsic_fnspec): New function.
103 (specific_intrinsic_symbol): Adjust comment. Pass
104 fn spec to gfc_get_extern_function_decl.
105 (gfc_conv_intrinsic_funcall): Add ANY, ALL, NORM2, PRODUCT
106 and SUM intrnisic. Add FIXME for cshift et al.
107 * trans-types.c (gfc_get_function_type): Add fnspec argument,
109 * trans-types.h (gfc_get_function_type): Add optinal fnspec
111 * trans.h (gfc_get_extern_function_decl): Likewise.
113 2020-11-25 Harald Anlauf <anlauf@gmx.de>
116 * resolve.c (traverse_data_list): Fix copy&paste errors; catch
117 step=0 in implied do loop.
119 2020-11-20 Jakub Jelinek <jakub@redhat.com>
122 * Make-lang.in (fortran.serial): Change from goal to a variable.
123 (.PHONY): Drop fortran.serial and fortran.prev.
124 (f951$(exeext)): Depend on $(fortran.serial) rather than
127 2020-11-18 Jakub Jelinek <jakub@redhat.com>
129 * Make-lang.in (fortran.serial): New goal.
130 (.PHONY): Add fortran.serial fortran.prev.
131 (f951$(exeext)): Depend on fortran.prev. Call LINK_PROGRESS.
133 2020-11-17 Harald Anlauf <anlauf@gmx.de>
135 * gfortran.texi: Fix description of GFC_RTCHECK_* to match actual
138 2020-11-16 Harald Anlauf <anlauf@gmx.de>
140 * trans-intrinsic.c (gfc_conv_intrinsic_size): Generate runtime
141 checking code for status of argument.
143 2020-11-13 Gergö Barany <gergo@codesourcery.com>
144 Thomas Schwinge <thomas@codesourcery.com>
146 * lang.opt (fopenacc-kernels): Add.
148 2020-11-12 Jakub Jelinek <jakub@redhat.com>
150 * f95-lang.c (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST):
152 (gfc_init_builtin_functions): Add alloc_size and warn_unused_result
153 attributes to __builtin_GOMP_alloc.
154 * types.def (BT_PTRMODE): New primitive type.
155 (BT_FN_VOID_PTR_PTRMODE, BT_FN_PTR_SIZE_SIZE_PTRMODE): New function
158 2020-11-12 Tobias Burnus <tobias@codesourcery.com>
161 * trans-openmp.c (gfc_trans_oacc_construct, gfc_trans_omp_parallel_do,
162 gfc_trans_omp_parallel_do_simd, gfc_trans_omp_parallel_sections,
163 gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
164 gfc_trans_omp_single, gfc_trans_omp_task, gfc_trans_omp_teams
165 gfc_trans_omp_target, gfc_trans_omp_target_data,
166 gfc_trans_omp_workshare): Use code->loc instead of input_location
167 when building the OMP_/OACC_ construct.
169 2020-11-11 Jakub Jelinek <jakub@redhat.com>
172 * misc.c (gfc_typename): Use ex->value.character.length only if
173 ex->expr_type == EXPR_CONSTANT. If ex->ts.deferred, print : instead
174 of length. If ex->ts.u.cl && ex->ts.u.cl->length == NULL, print *
175 instead of length. Otherwise if character length is non-constant,
176 print just CHARACTER or CHARACTER(KIND=N).
178 2020-11-10 Tobias Burnus <tobias@codesourcery.com>
180 * dump-parse-tree.c (show_omp_clauses): Handle new reduction enums.
181 * gfortran.h (OMP_LIST_REDUCTION_INSCAN, OMP_LIST_REDUCTION_TASK,
182 OMP_LIST_IN_REDUCTION, OMP_LIST_TASK_REDUCTION): Add enums.
183 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_IN_REDUCTION
184 and OMP_CLAUSE_TASK_REDUCTION.
185 (gfc_match_omp_clause_reduction): Extend reduction handling;
187 (gfc_match_omp_clauses): ... here. Add calls to it.
188 (OMP_TASK_CLAUSES, OMP_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES):
189 Add OMP_CLAUSE_IN_REDUCTION.
190 (gfc_match_omp_taskgroup): Add task_reduction matching.
191 (resolve_omp_clauses): Update for new reduction clause changes;
192 remove removed nonmonotonic-schedule restrictions.
193 (gfc_resolve_omp_parallel_blocks): Add new enums to switch.
194 * trans-openmp.c (gfc_omp_clause_default_ctor,
195 gfc_trans_omp_reduction_list, gfc_trans_omp_clauses,
196 gfc_split_omp_clauses): Handle updated reduction clause.
198 2020-11-10 Tobias Burnus <tobias@codesourcery.com>
201 * trans-decl.c (gfc_get_symbol_decl): Do not (re)set the location
202 of an external procedure.
203 (build_entry_thunks, generate_coarray_init, create_main_function,
204 gfc_generate_function_code): Use fndecl's location in BIND_EXPR.
206 2020-11-09 Tobias Burnus <tobias@codesourcery.com>
209 * parse.c (case_decl): Move ST_OACC_ROUTINE and ST_OACC_DECLARE to ...
210 (case_omp_decl): ... here.
211 (verify_st_order): Update comment.
213 2020-11-06 Thomas Schwinge <thomas@codesourcery.com>
215 * openmp.c (oacc_is_parallel, resolve_oacc_params_in_parallel):
217 (resolve_oacc_loop_blocks): Don't call the former.
219 2020-11-06 Tobias Burnus <tobias@codesourcery.com>
221 * openmp.c (gfc_match_oacc_atomic): No longer accept 'update capture'.
223 2020-11-06 Tobias Burnus <tobias@codesourcery.com>
226 * module.c (mio_symbol): Fix symbol name for pdt_type.
228 2020-11-03 Nathan Sidwell <nathan@acm.org>
230 * cpp.c (gfc_cpp_add_dep): Only add dependency if we're recording
232 (gfc_cpp_init): Likewise for target.
234 2020-11-03 Tobias Burnus <tobias@codesourcery.com>
236 * decl.c (ext_attr_list): Add EXT_ATTR_DEPRECATED.
237 * gfortran.h (ext_attr_id_t): Ditto.
238 * gfortran.texi (GCC$ ATTRIBUTES): Document it.
239 * resolve.c (resolve_variable, resolve_function,
240 resolve_call, resolve_values): Show -Wdeprecated-declarations warning.
241 * trans-decl.c (add_attributes_to_decl): Skip those
242 with no middle_end_name.
244 2020-11-03 Thomas Schwinge <thomas@codesourcery.com>
247 * trans-openmp.c (gfc_trans_omp_clauses): More precise location
248 information for OpenACC 'gang', 'worker', 'vector' clauses with
251 2020-11-02 Thomas Schwinge <thomas@codesourcery.com>
254 * trans.c (gfc_set_backend_locus): Use 'gfc_get_location'.
255 (gfc_restore_backend_locus): Adjust.
257 2020-11-02 Tobias Burnus <tobias@codesourcery.com>
260 * openmp.c (gfc_match_omp_atomic): Fix mem-order handling;
261 reject specifying update + capture together.
263 2020-10-30 Tobias Burnus <tobias@codesourcery.com>
265 * dump-parse-tree.c (show_omp_clauses): Handle atomic clauses.
266 (show_omp_node): Call it for atomic.
267 * gfortran.h (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_UNSET,
268 remove GFC_OMP_ATOMIC_SEQ_CST and GFC_OMP_ATOMIC_ACQ_REL.
269 (enum gfc_omp_memorder): Replace OMP_MEMORDER_LAST by
270 OMP_MEMORDER_UNSET, add OMP_MEMORDER_SEQ_CST/OMP_MEMORDER_RELAXED.
271 (gfc_omp_clauses): Add capture and atomic_op.
272 (gfc_code): remove omp_atomic.
273 * openmp.c (enum omp_mask1): Add atomic, capture, memorder clauses.
274 (gfc_match_omp_clauses): Match them.
275 (OMP_ATOMIC_CLAUSES): Add.
276 (gfc_match_omp_flush): Update for 'last' to 'unset' change.
277 (gfc_match_omp_oacc_atomic): Removed and placed content ..
278 (gfc_match_omp_atomic): ... here. Update for OpenMP 5 clauses.
279 (gfc_match_oacc_atomic): Match directly here.
280 (resolve_omp_atomic, gfc_resolve_omp_directive): Update.
281 * parse.c (parse_omp_oacc_atomic): Update for struct gfc_code changes.
282 * resolve.c (gfc_resolve_blocks): Update assert.
283 * st.c (gfc_free_statement): Also call for EXEC_O{ACC,MP}_ATOMIC.
284 * trans-openmp.c (gfc_trans_omp_atomic): Update.
285 (gfc_trans_omp_flush): Update for 'last' to 'unset' change.
287 2020-10-30 Jan Hubicka <jh@suse.cz>
289 * trans-types.c: Include alias.h
290 (gfc_get_array_type_bounds): Set typeless storage.
292 2020-10-27 Harald Anlauf <anlauf@gmx.de>
294 * resolve.c (gfc_impure_variable): A dummy argument with the VALUE
295 attribute may be redefined without making a procedure impure.
297 2020-10-27 Richard Biener <rguenther@suse.de>
299 * trans-array.c (gfc_get_descriptor_field): New helper.
300 (gfc_conv_descriptor_data_get): Use it - drop strange
301 REFERENCE_TYPE handling and make sure we don't trigger it.
302 (gfc_conv_descriptor_data_addr): Use gfc_get_descriptor_field.
303 (gfc_conv_descriptor_data_set): Likewise.
304 (gfc_conv_descriptor_offset): Likewise.
305 (gfc_conv_descriptor_dtype): Likewise.
306 (gfc_conv_descriptor_span): Likewise.
307 (gfc_get_descriptor_dimension): Likewise.
308 (gfc_conv_descriptor_token): Likewise.
309 (gfc_conv_descriptor_subfield): New helper.
310 (gfc_conv_descriptor_stride): Use it.
311 (gfc_conv_descriptor_lbound): Likewise.
312 (gfc_conv_descriptor_ubound): Likewise.
314 2020-10-25 Thomas Koenig <tkoenig@gcc.gnu.org>
317 * gfortran.h (gfc_symbol): Add pass_as_value flag.
318 (gfc_copy_formal_args_intr): Add optional argument
320 (gfc_get_intrinsic_function_symbol): Add prototype.
321 (gfc_find_intrinsic_symbol): Add prototype.
322 * intrinsic.c (gfc_get_intrinsic_function_symbol): New function.
323 (gfc_find_intrinsic_symbol): New function.
324 * symbol.c (gfc_copy_formal_args_intr): Add argument. Handle case
325 where the type needs to be copied from the actual argument.
326 * trans-intrinsic.c (remove_empty_actual_arguments): New function.
327 (specific_intrinsic_symbol): New function.
328 (gfc_conv_intrinsic_funcall): Use it.
329 (strip_kind_from_actual): Adjust so that the expression pointer
331 (gfc_conv_intrinsic_minmaxloc): Likewise.
332 (gfc_conv_intrinsic_minmaxval): Adjust removal of dim.
333 * trans-types.c (gfc_sym_type): If sym->pass_as_value is set, do
334 not pass by reference.
336 2020-10-22 Tobias Burnus <tobias@codesourcery.com>
338 * gfortran.h (enum gfc_omp_memorder): Add.
339 (gfc_omp_clauses): Use it.
340 * openmp.c (gfc_match_omp_flush): Match memorder clauses.
341 * trans-openmp.c (gfc_trans_omp_flush): Handle them.
342 (gfc_trans_omp_directive): Update call.
344 2020-10-21 Tobias Burnus <tobias@codesourcery.com>
347 * class.c: Add _deallocate to the vtable documentation
350 2020-10-16 Harald Anlauf <anlauf@gmx.de>
353 * expr.c (gfc_check_init_expr): Fix check of return code from
354 gfc_intrinsic_func_interface.
355 * intrinsic.c (gfc_intrinsic_func_interface): Add further attempt
356 of simplification of elemental intrinsics with array arguments.
357 * iresolve.c (gfc_resolve_index_func): Keep optional KIND argument
358 for simplification of elemental use of INDEX.
360 2020-10-15 Andre Vehreschild <vehre@gcc.gnu.org>
362 * trans-decl.c (gfc_build_builtin_function_decls): Fix the coarray fndecls.
364 2020-10-14 Tobias Burnus <tobias@codesourcery.com>
367 * scanner.c (load_line): Fix line-truncation warning for !$acc
368 and !gcc$ in free-form source code.
370 2020-10-14 Steven G. Kargl <kargl@gcc.gnu.org>
371 Mark Eggleston <markeggleston@gcc.gnu.org>
374 * decl.c (gfc_get_common): Use gfc_match_common_name instead
375 of match_common_name.
376 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
377 of match_common_name.
378 * match.c : Rename match_common_name to gfc_match_common_name.
379 * match.c (gfc_match_common): Use gfc_match_common_name instead
380 of match_common_name.
381 * match.h : Rename match_common_name to gfc_match_common_name.
382 * resolve.c (resolve_common_vars): Check each symbol in a
383 common block has a global symbol. If there is a global symbol
384 issue an error if the symbol type is a module or a program.
386 2020-10-12 Mark Eggleston <markeggleston@gcc.gnu.org>
389 * decl.c (gfc_match_implicit): Check for numeric and logical
392 2020-10-07 Paul Thomas <pault@gcc.gnu.org>
395 * trans-expr.c (arrayfunc_assign_needs_temporary): Tidy detection
396 of pointer and allocatable functions.
398 2020-10-04 Harald Anlauf <anlauf@gmx.de>
401 * trans-intrinsic.c (strip_kind_from_actual): Helper function for
402 removal of KIND argument.
403 (gfc_conv_intrinsic_minmaxloc): Ignore KIND argument here, as it
404 is treated elsewhere.
406 2020-10-02 Jan Hubicka <hubicka@ucw.cz>
408 * trans-decl.c (gfc_build_library_function_decl_with_spec): Verify
410 (gfc_build_intrinsic_function_decls): Update fnspecs.
411 (gfc_build_builtin_function_decls): Update fnspecs.
412 * trans-io.c (gfc_build_io_library_fndecls): Update fnspecs.
413 * trans-types.c (create_fn_spec): Update fnspecs.
415 2020-09-30 Jan Hubicka <jh@suse.cz>
417 * trans-decl.c (gfc_build_intrinsic_function_decls): Add traling dots
418 to spec strings so they match the number of parameters; do not use
419 R and W for non-pointer parameters. Drop pointless specifier on
420 caf_stop_numeric and caf_get_team.
422 2020-09-30 Jan Hubicka <hubicka@ucw.cz>
424 * trans-io.c (gfc_build_io_library_fndecls): Add trailing dots so
425 length of spec string matches number of arguments.
427 2020-09-30 Tobias Burnus <tobias@codesourcery.com>
430 * expr.c (gfc_is_not_contiguous): Fix check.
431 (gfc_check_pointer_assign): Use it.
433 2020-09-30 Paul Thomas <pault@gcc.gnu.org>
436 * trans-array.c (gfc_conv_array_ref): Make sure that the class
437 decl is passed to build_array_ref in the case of unlimited
438 polymorphic entities.
439 * trans-expr.c (gfc_conv_derived_to_class): Ensure that array
440 refs do not preceed the _len component. Free the _len expr.
441 * trans-stmt.c (trans_associate_var): Reset 'need_len_assign'
442 for polymorphic scalars.
443 * trans.c (gfc_build_array_ref): When the vptr size is used for
444 span, multiply by the _len field of unlimited polymorphic
445 entities, when non-zero.
447 2020-09-30 Tom de Vries <tdevries@suse.de>
449 * f95-lang.c (gfc_init_builtin_functions): Update
450 targetm.libc_has_function call.
452 2020-09-28 Mark Eggleston <markeggleston@gcc.gnu.org>
455 2020-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
456 Mark Eggleston <markeggleston@gcc.gnu.org>
459 * decl.c (gfc_get_common): Use gfc_match_common_name instead
460 of match_common_name.
461 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
462 of match_common_name.
463 * match.c : Rename match_common_name to gfc_match_common_name.
464 * match.c (gfc_match_common): Use gfc_match_common_name instead
465 of match_common_name.
466 * match.h : Rename match_common_name to gfc_match_common_name.
467 * resolve.c (resolve_common_vars): Check each symbol in a
468 common block has a global symbol. If there is a global symbol
469 issue an error if the symbol type is known as is not a common
472 2020-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
473 Mark Eggleston <markeggleston@gcc.gnu.org>
476 * decl.c (gfc_get_common): Use gfc_match_common_name instead
477 of match_common_name.
478 * decl.c (gfc_bind_idents): Use gfc_match_common_name instead
479 of match_common_name.
480 * match.c : Rename match_common_name to gfc_match_common_name.
481 * match.c (gfc_match_common): Use gfc_match_common_name instead
482 of match_common_name.
483 * match.h : Rename match_common_name to gfc_match_common_name.
484 * resolve.c (resolve_common_vars): Check each symbol in a
485 common block has a global symbol. If there is a global symbol
486 issue an error if the symbol type is known as is not a common
489 2020-09-24 Paul Thomas <pault@gcc.gnu.org>
492 * trans-expr.c (gfc_conv_procedure_call): Take the deallocation
493 of allocatable result components of a scalar result outside the
494 scalarization loop. Find and use the stored result.
496 2020-09-21 Harald Anlauf <anlauf@gmx.de>
497 Paul Thomas <pault@gcc.gnu.org>
499 * iresolve.c (gfc_resolve_mvbits): Remove unneeded conversion of
500 FROMPOS, LEN and TOPOS arguments to fit a C int.
501 * trans-intrinsic.c (gfc_conv_intrinsic_mvbits): Add inline
502 expansion of MVBITS intrinsic elemental subroutine and add code
503 for runtime argument checking.
504 (gfc_conv_intrinsic_subroutine): Recognise MVBITS intrinsic, but
505 defer handling to gfc_trans_call.
506 * trans-stmt.c (replace_ss):
507 (gfc_trans_call): Adjust to handle inline expansion, scalarization
508 of intrinsic subroutine MVBITS in gfc_conv_intrinsic_mvbits.
509 * trans.h (gfc_conv_intrinsic_mvbits): Add prototype for
510 gfc_conv_intrinsic_mvbits.
512 2020-09-19 Sandra Loosemore <sandra@codesourcery.com>
514 * interface.c (gfc_compare_actual_formal): Add assertion after
515 main processing loop to silence maybe-uninitialized error.
517 2020-09-19 Harald Anlauf <anlauf@gmx.de>
519 * symbol.c (gfc_check_conflict): Allow ELEMENTAL RECURSIVE
520 procedure prefix for -std=f2018.
522 2020-09-17 Tobias Burnus <tobias@codesourcery.com>
526 * decl.c (gfc_match_submod_proc): Avoid later double-free
529 2020-09-16 Tobias Burnus <tobias@codesourcery.com>
532 * trans-openmp.c (gfc_trans_omp_do): Handle simd with (last)private.
534 2020-09-15 Tobias Burnus <tobias@codesourcery.com>
537 * trans.h (gfc_omp_finish_clause): Add bool openacc arg.
538 * trans-openmp.c (gfc_omp_finish_clause): Ditto. Use
539 GOMP_MAP_ALWAYS_POINTER with PSET for pointers.
540 (gfc_trans_omp_clauses): Like the latter and also if the always
543 2020-09-09 Tobias Burnus <tobias@codesourcery.com>
547 * resolve.c (gfc_resolve_code): Also call
548 gfc_resolve_omp_parallel_blocks for 'distribute parallel do (simd)'.
549 * openmp.c (gfc_resolve_omp_parallel_blocks): Handle it.
550 (gfc_resolve_do_iterator): Remove special code for SIMD, which is
552 * trans-openmp.c (gfc_trans_omp_target): For TARGET_PARALLEL_DO_SIMD,
553 call simd not do processing function.
555 2020-09-08 Thomas Koenig <tkoenig@gcc.gnu.org>
557 * intrinsic.texi: Fix description of FINDLOC result.
559 2020-09-07 Harald Anlauf <anlauf@gmx.de>
561 * trans-intrinsic.c (build_round_expr): Use temporary with
562 appropriate kind for conversion before rounding to nearest
563 integer when the result precision is 128 bits.
565 2020-09-07 Tobias Burnus <tobias@codesourcery.com>
568 * resolve.c (get_temp_from_expr): Also reset proc_pointer +
570 (resolve_ptr_fcn_assign): Use information from the LHS.
572 2020-09-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
574 * trans-types.c (gfc_get_derived_type): Fix argument types.
576 2020-09-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
578 * resolve.c (resolve_select_type): Provide a formal arg list.
580 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
582 * trans-types.c (gfc_get_ppc_type): Add comment.
584 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
586 * trans-types.c (gfc_get_ppc_type): Fix function arg types.
588 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
591 * trans-stmt.c (gfc_trans_fail_image): caf_fail_image
594 2020-09-02 Jakub Jelinek <jakub@redhat.com>
597 * check.c (gfc_boz2real, gfc_boz2int): When clearing first two bits,
598 change also '2' to '0' and '3' to '1' rather than just handling '4'
601 2020-09-01 Steven G. Kargl <kargl@gcc.gnu.org>
602 Mark Eggleston <markeggleston@gcc.gnu.org>
605 * resolve.c (resolve_select_type): Add check for BT_CLASS
606 type before using the CLASS_DATA macro which will have a
607 NULL pointer to derive components if it isn't BT_CLASS.
609 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
612 * module.c (module_peek_char): Peek ahead function.
613 (parse_integer): Add code for parsing signed integers.
614 (parse_atom): Add code to handle signed integers.
615 (peek_atom): Add code to handle signed integers.
617 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
620 * expr.c (gfc_check_init_expr): Add default error message for the AS_ASSUMED_RANK case.
622 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
625 * expr.c (check_references): Change different relational operator
626 to less-than operator to avoid infinite loop.
628 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
631 * simplify.c (simplify_bound_dim): Add check for NULL pointer
632 before trying to access structure member.
634 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
637 * interface.c (gfc_compare_actual_formal): Add code to also raise
638 the actual argument cannot be an assumed-size array error when the
639 dummy arguments are deferred-shape or assumed-rank pointer.
641 2020-08-28 Tobias Burnus <tobias@codesourcery.com>
644 * trans-array.c (gfc_trans_g77_array): Check against the parm decl and
645 set the nonparm decl used for the is-present check to NULL if absent.
647 2020-08-28 Paul Thomas <pault@gcc.gnu.org>
650 * simplify.c (gfc_simplify_reshape): Detect zero shape and
651 clear index if found.
653 2020-08-27 Mark Eggleston <markeggleston@gcc.gnu.org>
656 * decl.c (char_len_param_value): Check gfc_seen_div0 and
657 if it is set return MATCH_ERROR.
659 2020-08-27 Martin Liska <mliska@suse.cz>
661 * trans-openmp.c (gfc_trans_omp_do): Set exact argument of a vector
662 growth function to true.
664 2020-08-26 Tobias Burnus <tobias@codesourcery.com>
666 * gfortran.h (enum gfc_omp_device_type): New.
667 (symbol_attribute, gfc_omp_clauses, gfc_common_head): Use it.
668 * module.c (enum ab_attribute): Add AB_OMP_DEVICE_TYPE_HOST,
669 AB_OMP_DEVICE_TYPE_NOHOST and AB_OMP_DEVICE_TYPE_ANY.
670 (attr_bits, mio_symbol_attribute): Handle it.
671 (load_commons, write_common_0): Handle omp_device_type flag.
672 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_DEVICE_TYPE
673 (OMP_DECLARE_TARGET_CLAUSES): Likewise.
674 (gfc_match_omp_clauses): Match 'device_type'.
675 (gfc_match_omp_declare_target): Handle it.
676 * trans-common.c (build_common_decl): Write device-type clause.
677 * trans-decl.c (add_attributes_to_decl): Likewise.
679 2020-08-23 Paul Thomas <pault@gcc.gnu.org>
682 * trans-types.c (gfc_get_derived_type): Derived types that are
683 used in submodules are not compatible with TYPE_CANONICAL from
684 any of the global namespaces.
686 2020-08-20 Paul Thomas <pault@gcc.gnu.org>
690 * trans-array.c (get_array_charlen): Tidy up the evaluation of
691 the string length for array constructors. Avoid trailing array
692 references. Ensure string lengths of deferred length components
693 are set. For parentheses operator apply string length to both
694 the primary expression and the enclosed expression.
696 2020-08-20 Andre Vehreschild <vehre@gcc.gnu.org>
699 * trans-array.c (gfc_bcast_alloc_comp): Use the correct variable.
701 2020-08-20 Tobias Burnus <tobias@codesourcery.com>
703 * openmp.c (gfc_match_omp_clauses): Re-order 'if' clause pasing
704 to avoid creating spurious symbols.
706 2020-08-18 Harald Anlauf <anlauf@gmx.de>
708 * check.c (check_rest): Reject MIN/MAX character arguments of
710 * simplify.c (min_max_choose): The simplification result shall
711 have the highest kind value of the arguments.
712 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Choose type and
713 kind of intermediate by looking at all arguments, not the result.
715 2020-08-17 Martin Liska <mliska@suse.cz>
717 * openmp.c (resolve_omp_clauses): Add static assert
718 for OMP_LIST_NUM and size of clause_names array.
719 Remove check that is always true.
721 2020-08-17 Martin Liska <mliska@suse.cz>
723 * openmp.c (resolve_omp_clauses): Add NONTEMPORAL to clause
726 2020-08-13 Andre Vehreschild <vehre@gcc.gnu.org>
729 * trans-array.c (structure_alloc_comps): Keep caf-mode when applying to
730 components; get the caf_token correctly for allocated scalar components.
732 2020-08-13 Matthew Krupcale <mkrupcale@matthewkrupcale.com>
735 * invoke.texi: Fix typos.
737 2020-08-12 Tobias Burnus <tobias@codesourcery.com>
739 * gfortran.h: Add OMP_LIST_NONTEMPORAL.
740 * dump-parse-tree.c (show_omp_clauses): Dump it
741 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_NOTEMPORAL.
742 (OMP_SIMD_CLAUSES): Add it.
743 (gfc_match_omp_clauses): Match nontemporal clause.
744 * trans-openmp.c (gfc_trans_omp_clauses): Process
747 2020-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
750 * frontend-passes.c (doloop_contained_function_call):
751 Do not dereference a NULL pointer for value.function.esym.
753 2020-08-10 Paul Thomas <pault@gcc.gnu.org>
756 * trans-expr.c (fcncall_realloc_result): Only compare shapes if
759 2020-08-10 Paul Thomas <pault@gcc.gnu.org>
762 * resolve.c (check_host_association): Replace the gcc_assert
763 with an error for internal procedures.
765 2020-08-05 Thomas Koenig <tkoenig@gcc.gnu.org>
768 * frontend-passes.c (doloop_contained_function_call): New
770 (doloop_contained_procedure_code): New function.
771 (CHECK_INQ): Macro for inquire checks.
772 (doloop_code): Invoke doloop_contained_procedure_code and
773 doloop_contained_function_call if appropriate.
774 (do_intent): Likewise.
776 2020-08-04 Tobias Burnus <tobias@codesourcery.com>
778 * openmp.c (resolve_omp_do): Detect not perfectly
779 nested loop with innermost collapse.
781 2020-08-04 Tobias Burnus <tobias@codesourcery.com>
783 * trans-openmp.c (gfc_trans_omp_do): Fix 'lastprivate(conditional:'.
785 2020-08-03 Julian Brown <julian@codesourcery.com>
786 Thomas Schwinge <thomas@codesourcery.com>
788 * trans-openmp.c (gfc_trans_omp_clauses): Don't create present/release
789 mappings for array descriptors.
791 2020-08-03 Martin Jambor <mjambor@suse.cz>
793 * f95-lang.c (gfc_init_builtin_functions): Remove processing of
796 2020-08-03 Tobias Burnus <tobias@codesourcery.com>
798 * gfc-internals.texi: Fix typos.
799 * gfortran.texi: Likewise.
800 * intrinsic.texi: Likewise.
801 * invoke.texi: Likewise.
803 2020-08-02 Paul Thomas <pault@gcc.gnu.org>
806 * interface.c (gfc_check_dummy_characteristics): If a module
807 procedure arrives with assumed shape in the interface and
808 deferred shape in the procedure itself, update the latter and
809 copy the lower bounds.
811 2020-08-02 Paul Thomas <pault@gcc.gnu.org>
814 * primary.c (gfc_match_varspec): In the case that a component
815 reference is added to an intrinsic type component, emit the
816 error message in this function.
818 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
820 * dump-parse-tree.c (show_omp_clauses): Handle order(concurrent).
821 * gfortran.h (struct gfc_omp_clauses): Add order_concurrent.
822 * openmp.c (enum omp_mask1, OMP_DO_CLAUSES, OMP_SIMD_CLAUSES):
823 Add OMP_CLAUSE_ORDER.
824 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
825 Handle order(concurrent) clause.
827 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
829 * openmp.c (resolve_omp_clauses): Permit 'omp target data' without
830 map if use_device_{addr,ptr} is present.
832 2020-07-29 Mark Eggleston <markeggleston@gcc.gnu.org>
835 * intrinsic.c (gfc_convert_type_warn): Add check for
836 LOGICAL type so that warnings are not output.
838 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
840 * module.c (mio_symbol_attribute): Fix indent of previous
843 2020-07-29 Mark Eggleston <markeggleston@gcc.gnu.org>
846 * trans-array.c (gfc_walk_array_ref): If ref->ss.end is set
847 call gfc_get_scalar_ss.
849 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
851 * gfortran.h (enum gfc_statement): Add ST_OMP_REQUIRES.
852 (enum gfc_omp_requires_kind): New.
853 (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_ACQ_REL.
854 (struct gfc_namespace): Add omp_requires and omp_target_seen.
855 (gfc_omp_requires_add_clause,
856 (gfc_check_omp_requires): New.
857 * match.h (gfc_match_omp_requires): New.
858 * module.c (enum ab_attribute, attr_bits): Add omp requires clauses.
859 (mio_symbol_attribute): Read/write them.
860 * openmp.c (gfc_check_omp_requires, (gfc_omp_requires_add_clause,
861 gfc_match_omp_requires): New.
862 (gfc_match_omp_oacc_atomic): Use requires's default mem-order.
863 * parse.c (decode_omp_directive): Match requires, set omp_target_seen.
864 (gfc_ascii_statement): Handle ST_OMP_REQUIRES.
865 * trans-openmp.c (gfc_trans_omp_atomic): Handle GFC_OMP_ATOMIC_ACQ_REL.
867 2020-07-27 Tobias Burnus <tobias@codesourcery.com>
869 * openmp.c (gfc_resolve_omp_directive): Remove NULL check
870 for clauses in EXEC_OMP_CRITICAL as it no longer can be NULL.
872 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
874 * gfortran.h (gfc_omp_namelist): Add lastprivate_conditional.
875 * openmp.c (gfc_match_omp_clauses): Handle 'conditional:'
876 modifier of 'lastprivate'.
877 * trans-openmp.c (gfc_omp_clause_default_ctor): Don't assert
878 on OMP_CLAUSE__CONDTEMP_ and other OMP_*TEMP_.
879 (gfc_trans_omp_variable_list): Handle lastprivate_conditional.
881 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
883 * intrinsic.texi (OMP_LIB_KINDS): Add omp_depend_kind.
885 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
887 * gfortran.texi (Standards): Update URL; state that OpenMP 4.5
888 is supported and 5.0 is partially.
889 * intrinsic.texi (OpenMP Modules): Refer also to OpenMP 5.0;
890 (OMP_LIB): Add missing derived type and new named constants.
892 2020-07-22 Tobias Burnus <tobias@codesourcery.com>
894 * gfortran.h (enum gfc_omp_if_kind): Add OMP_IF_CANCEL and OMP_IF_SIMD.
895 * openmp.c (OMP_SIMD_CLAUSES): Add OMP_CLAUSE_IF.
896 (gfc_match_omp_clauses, resolve_omp_clauses): Handle 'if (simd/cancel:'.
897 * dump-parse-tree.c (show_omp_clauses): Likewise.
898 * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_cancel,
899 (gfc_split_omp_clauses): Likewise.
901 2020-07-22 Tobias Burnus <tobias@codesourcery.com>
903 * openmp.c (gfc_match_omp_critical): Fix handling hints; permit
904 hint clause without named critical.
905 (resolve_omp_clauses): Require nonnegative constant integer
907 (gfc_resolve_omp_directive): Check for no name but
908 nonzero value for hint clause.
909 * parse.c (parse_omp_structured_block): Fix same-name check
911 * trans-openmp.c (gfc_trans_omp_critical): Handle hint clause properly.
913 2020-07-21 Harald Anlauf <anlauf@gmx.de>
916 * trans-decl.c (gfc_get_extern_function_decl): Check whether a
917 symbol belongs to a different module.
919 2020-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
922 * dump-parse-tree.c (get_c_type_name): Always use the entries from
923 c_interop_kinds_table to find the correct C type.
925 2020-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
928 * frontend-passes.c (gfc_check_externals): Adjust formatting.
929 (implicit_pure_call): New function.
930 (implicit_pure_expr): New function.
931 (gfc_fix_implicit_pure): New function.
932 * gfortran.h (gfc_fix_implicit_pure): New prototype.
933 * parse.c (translate_all_program_units): Call gfc_fix_implicit_pure.
935 2020-07-18 David Edelsohn <dje.gcc@gmail.com>
937 * check.c (gfc_invalid_boz): Mark hint for translation using _().
939 2020-07-16 Julian Brown <julian@codesourcery.com>
940 Thomas Schwinge <thomas@codesourcery.com>
942 * trans-openmp.c (gfc_trans_omp_clauses): Rework OpenACC
943 attach/detach handling for arrays with descriptors.
945 2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
946 Mark Eggleston <markeggleston@gcc.gnu.org>
949 * expr.c (gfc_check_pointer_assigb): Output an error if
950 rvalue is a zero sized array or output an error if rvalue
951 doesn't have a symbol tree.
953 2020-07-14 Tobias Burnus <tobias@codesourcery.com>
955 * openmp.c (gfc_match_omp_clauses): Match also derived-type
956 component refs in OMP_CLAUSE_MAP.
957 (resolve_omp_clauses): Resolve those.
958 * trans-openmp.c (gfc_trans_omp_array_section, gfc_trans_omp_clauses):
959 Handle OpenMP structure-element mapping.
960 (gfc_trans_oacc_construct, gfc_trans_oacc_executable_directive,
961 (gfc_trans_oacc_combined_directive, gfc_trans_oacc_declare): Update
962 add openacc=true in gfc_trans_omp_clauses call.
964 2020-07-14 Tobias Burnus <tobias@codesourcery.com>
967 * trans-openmp.c (gfc_has_alloc_comps): Return false also for
970 2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
971 Mark Eggleston <markeggleston@gcc.gnu.org>
974 * decl.c (add_init_expr_sym): For a symbol that is a
975 parameter accept an initialisation if it does not have a
976 value otherwise output a error and reject.
978 2020-07-13 Mark Eggleston <markeggleston@gcc.gnu.org>
981 * resolve.c (resolve_fl_variable): Remove type and intent
982 checks from the check for dummy.
984 2020-07-13 Steven G. Kargl <kargl@gcc.gnu.org>
985 Mark Eggleston <markeggleston@gcc.gnu.org>
988 * check.c (dim_rank_check): Allow NULL references in call to
989 gfc_find_array_ref and return false if no reference is found.
991 2020-07-11 Thomas Koenig <tkoenig@gcc.gnu.org>
994 * frontend-passes.c (check_externals_procedure): Add locus
995 information for new_sym.
996 * interface.c (gfc_check_dummy_characteristics): Do not warn
997 about INTENT for artificially generated variables.
999 2020-07-10 Harald Anlauf <anlauf@gmx.de>
1002 * class.c (gfc_add_component_ref, gfc_build_class_symbol):
1003 Add checks for NULL pointer dereference.
1004 * primary.c (gfc_variable_attr): Likewise.
1005 * resolve.c (resolve_variable, resolve_assoc_var)
1006 (resolve_fl_var_and_proc, resolve_fl_variable_derived)
1007 (resolve_symbol): Likewise.
1009 2020-07-10 Harald Anlauf <anlauf@gmx.de>
1012 * match.c (gfc_match_select_rank): Catch NULL pointer
1014 * resolve.c (resolve_assoc_var): Catch NULL pointer dereference
1015 that may occur after an illegal declaration.
1017 2020-07-09 Julian Brown <julian@codesourcery.com>
1019 * trans-openmp.c (gfc_trans_omp_clauses): Use 'inner' not 'decl' for
1020 derived type members which themselves have derived types.
1022 2020-07-08 Harald Anlauf <anlauf@gmx.de>
1025 * resolve.c (gfc_resolve_code): Check whether assign target is a
1028 2020-07-06 Harald Anlauf <anlauf@gmx.de>
1031 * match.c (copy_ts_from_selector_to_associate, build_class_sym):
1032 Distinguish between unlimited polymorphic and ordinary variables
1033 to avoid NULL pointer dereference.
1034 * resolve.c (resolve_select_type):
1035 Distinguish between unlimited polymorphic and ordinary variables
1036 to avoid NULL pointer dereference.
1038 2020-07-06 Harald Anlauf <anlauf@gmx.de>
1041 * resolve.c (gfc_resolve_code): Check for valid arguments to
1044 2020-07-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1047 * frontend-passes.c (check_against_globals): New function.
1048 (gfc_check_externals): Split; also invoke check_against_globals
1049 via gfc_traverse_ns.
1050 (gfc_check_externals0): Recursive part formerly in
1051 gfc_check_externals.
1052 * resolve.c (resolve_global_procedure): Set sym->error on
1054 * symbol.c (ambiguous_symbol): Check for, and set sym->error.
1056 2020-07-02 Harald Anlauf <anlauf@gmx.de>
1059 * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
1061 2020-07-02 Harald Anlauf <anlauf@gmx.de>
1064 * class.c (gfc_find_derived_vtab): Punt if name is not set.
1066 2020-07-02 Mark Eggleston <markeggleston@gcc.gnu.org>
1069 * check.c (gfc_invalid_boz): Change array declaration for
1070 hint into a pointer.
1072 2020-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
1073 Mark Eggleston <markeggleston@gcc.gnu.org>
1076 * interface.c (generic_correspondence): Only use the pointer
1077 to a symbol if exists.
1079 2020-07-01 David Edelsohn <dje.gcc@gmail.com>
1081 * check.c (gfc_invalid_boz): Fix bootstrap. Revert
1082 Mark hint for translation using _().
1084 2020-07-01 Mark Eggleston <markeggleston@gcc.gnu.org>
1087 * arith.c (reduce_binary_aa): Mark for translation the string
1088 parameter to gfc_check_conformance with G_().
1089 * check.c (gfc_invalid_boz): Mark hint for translation using
1090 _(). (gfc_check_achar): Mark for translation the message
1091 parameter to gfc_invalid_boz using G_(). (gfc_check_char):
1092 Mark for translation the message parameter to gfc_invalid_boz
1093 using G_(). (gfc_check_complex): Mark for translation the
1094 message parameter to gfc_invalid_boz using G_().
1095 (gfc_check_float): Mark for translation the message
1096 parameter to gfc_invalid_boz using G_(). (check_rest): Mark
1097 for translation the string parameter to gfc_check_conformance
1098 with _(). (gfc_check_minloc_maxloc): Mark for translation
1099 the string parameter to gfc_check_conformance with _().
1100 (gfc_check_findloc): Mark for translation the string parameter
1101 to gfc_check_conformance with _(). (check_reduction): Mark
1102 for translation the string parameter to gfc_check_conformance
1103 with _(). (gfc_check_pack): Mark for translation the string
1104 parameter to gfc_check_conformance with _().
1105 * decl.c (match_old_style_init): Mark for translation the
1106 message parameter to gfc_invalid_boz using G_().
1107 * expr.c (gfc_check_assign): Mark for translation the string
1108 parameter to gfc_check_conformance with _().
1109 * intrinsic.c (check_specific): Mark for translation the string
1110 parameter to gfc_check_conformance with _().
1111 (gfc_check_intrinsic_standard): Mark symstd_msg strings for
1112 translation using G_(). No need to mark symstd_msg for
1113 translation in call to gfc_warning or when setting symstd.
1114 * io.c (check_open_constraints): Mark strings for translation
1115 using G_() in all calls to warn_or_error. (match_io_element):
1116 Mark for translation the message parameter to gfc_invalid_boz
1118 * primary.c (match_boz_constant): Mark for translation the
1119 message parameter to gfc_invalid_boz using G_().
1120 * resolve.c (resolve_elemental_actual): Mark for translation
1121 the string parameter to gfc_check_conformance with _().
1122 (resolve_operator): Mark for translation the string parameter
1123 to gfc_check_conformance with _(). Mark translation strings
1124 assigned to msg using G_() for use in a call to cfg_warning.
1126 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org>
1127 Mark Eggleston <markeggleston@gcc.gnu.org>
1130 * resolve.c (resolve_elemental_actual): Add code to check for
1131 non-optional argument of the same rank. Revise warning message
1132 to refer to the Fortran 2018 standard.
1134 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org>
1135 Mark Eggleston <markeggleston@gcc.gnu.org>
1138 * decl.c (gfc_match_decl_type_spec): Compare with "* ) " instead
1141 2020-06-30 Harald Anlauf <anlauf@gmx.de>
1144 * resolve.c (resolve_assoc_var): Avoid NULL pointer dereference.
1146 2020-06-30 Thomas Koenig <tkoenig@gcc.gnu.org>
1149 * gfortran.h (gfc_typename): Add optional argument for_hash.
1150 * misc.c (gfc_typename): When for_hash is true, just retur
1152 * class.c (gfc_intrinsic_hash_value): Call gfc_typename with
1155 2020-06-29 Harald Anlauf <anlauf@gmx.de>
1158 * decl.c (gfc_match_data): Avoid NULL pointer dereference.
1160 2020-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
1163 * trans-decl.c (gfc_generate_function_code): Do not generate
1164 recursion check for compiler-generated procedures.
1166 2020-06-29 Harald Anlauf <anlauf@gmx.de>
1169 * trans-stmt.c (gfc_trans_sync): Do proper kind conversion in
1170 bounds-checking code.
1172 2020-06-28 Harald Anlauf <anlauf@gmx.de>
1175 * match.c (gfc_match_select_rank): Do not dereference NULL pointer.
1177 2020-06-28 Harald Anlauf <anlauf@gmx.de>
1180 * symbol.c (gfc_add_type): If sym->ns->proc_name is set, use it,
1181 otherwise fall back to sym->name.
1183 2020-06-27 Harald Anlauf <anlauf@gmx.de>
1186 * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
1188 2020-06-25 Harald Anlauf <anlauf@gmx.de>
1191 * match.c (select_rank_set_tmp): Enlarge internal buffer used in
1192 generating a mangled name.
1193 * resolve.c (resolve_select_rank): Likewise.
1195 2020-06-25 Harald Anlauf <anlauf@gmx.de>
1198 * decl.c (gfc_match_decl_type_spec): Replace a fixed size
1199 buffer by a pointer and reallocate if necessary.
1201 2020-06-25 Tobias Burnus <tobias@codesourcery.com>
1204 * resolve.c (gfc_resolve_substring_charlen): Remove
1205 bogus ts.kind setting for the expression.
1207 2020-06-25 Tobias Burnus <tobias@codesourcery.com>
1208 Kwok Cheung Yeung <kcy@codesourery.com>
1211 * trans-openmp.c (gfc_trans_omp_target): Use correct scoping block.
1213 2020-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
1215 * trans-openmp.c (gfc_split_omp_clauses): Add if clause
1216 to target and simd sub-constructs.
1218 2020-06-24 Harald Anlauf <anlauf@gmx.de>
1221 * iresolve.c (gfc_get_string): Enlarge internal buffer used in
1222 generating the mangled name.
1224 2020-06-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1227 * dependency.c (ref_same_as_full_array): Handle case of AR_FULL
1230 2020-06-23 Steven G. Kargl <kargl@gcc.gnu.org>
1231 Mark Eggleston <markeggleston@gcc.gnu.org>
1234 * decl.c (gfc_match_implicit): Only perform else branch if
1235 the type spect is not BT_DERIVED.
1237 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org>
1238 Mark Eggleston <markeggleston@gcc.gnu.org>
1241 * intrinsic.c (add_functions): Replace CLASS_INQUIRY with
1242 CLASS_TRANSFORMATIONAL for intrinsic num_images.
1243 (make_generic): Replace ACTUAL_NO with ACTUAL_YES for
1244 intrinsic team_number.
1245 * resolve.c (resolve_fl_procedure): Check pointer ts.u.derived
1246 exists before using it.
1248 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org>
1249 Mark Eggleston <markeggleston@gcc.gnu.org>
1252 * check.c (gfc_check_reshape): Add check for a value when
1253 the symbol has an attribute flavor FL_PARAMETER.
1255 2020-06-22 Mark Eggleston <markeggleston@gcc.gnu.org>
1258 * arith.c (gfc_arith_error): Enclose strings in G_() instead
1261 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1264 * gfortran.h (gfc_common_head): Enlarge buffer.
1265 * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporary
1266 buffers, and add check on length on mangled name to prevent
1269 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1272 * iresolve.c (gfc_get_string): Enlarge static buffer size.
1274 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1277 * class.c (get_unique_type_string): Return a string with dynamic
1279 (get_unique_hashed_string, gfc_hash_value): Use dynamic result
1280 from get_unique_type_string instead of static buffer.
1282 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1285 * interface.c (check_sym_interfaces): Enlarge temporary buffer,
1286 and add check on length on mangled name to prevent overflow.
1288 2020-06-20 Harald Anlauf <anlauf@gmx.de>
1291 * match.c (gfc_match_equivalence): Check constraints on
1292 EQUIVALENCE objects also for CLASS variables.
1294 2020-06-18 Tobias Burnus <tobias@codesourcery.com>
1296 * openmp.c (resolve_omp_clauses): Reject vars with
1297 allocatable components in OpenMP map clauses.
1299 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1301 * parse.c (decode_oacc_directive): Permit 'acc routine' also
1302 inside pure procedures.
1303 * openmp.c (gfc_match_oacc_routine): Inside pure procedures
1304 do not permit gang, worker or vector clauses.
1306 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1308 * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
1309 from "in PURE" error message also for -fopenmp-simd.
1311 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
1313 * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
1314 from "in PURE" error message.
1316 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1319 * dump-parse-tree.c (gfc_dump_global_symbols): If the symroot is
1320 empty, just output "empty".
1322 2020-06-14 Harald Anlauf <anlauf@gmx.de>
1325 * class.c (get_unique_type_string): Replace use of fixed size
1326 buffer by internally passing a pointer to strings.
1328 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1330 * check.c (gfc_check_random_seed): Always use locations
1331 from get and put arguments for error messages.
1333 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1336 * class.c (finalize_component): Return early if finalization has
1337 already happened for expression and component within namespace.
1338 * gfortran.h (gfc_was_finalized): New type.
1339 (gfc_namespace): Add member was_finalzed.
1340 (gfc_expr): Remove finalized.
1341 * symbol.c (gfc_free_namespace): Free was_finalized.
1343 2020-06-11 Harald Anlauf <anlauf@gmx.de>
1344 Steven G. Kargl <kargl@gcc.gnu.org>
1347 * decl.c (access_attr_decl): Use correct symbol in error message.
1349 2020-06-11 Steven G. Kargl <kargl@gcc.gnu.org>
1350 Harald Anlauf <anlauf@gmx.de>
1353 * check.c (invalid_null_arg): Rename to gfc_invalid_null_arg.
1354 (gfc_check_associated, gfc_check_kind, gfc_check_merge)
1355 (gfc_check_shape, gfc_check_size, gfc_check_spread)
1356 (gfc_check_transfer): Adjust.
1357 (gfc_check_len_lentrim, gfc_check_trim): Check for NULL() argument.
1358 * gfortran.h: Declare gfc_invalid_null_arg ().
1359 * intrinsic.c (check_arglist): Check for NULL() argument.
1361 2020-06-11 Harald Anlauf <anlauf@gmx.de>
1364 * expr.c (gfc_check_pointer_assign): Skip contiguity check of rhs
1365 of pointer assignment if lhs cannot be simply contiguous.
1367 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1370 * trans-array.c (gfc_conv_array_ref): For class array dummy
1371 arguments use the transformed descriptor in sym->backend_decl
1372 instead of the original descriptor.
1374 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1378 * trans-array.c (gfc_conv_expr_descriptor): Enable the
1379 creation of a new descriptor with the correct one based
1380 indexing for array sections. Rework array descriptor
1381 indexing offset calculation.
1383 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1386 * trans-expr.c (gfc_conv_procedure_call): In the case of
1387 assumed-size arrays ensure that the reference is to a full array.
1389 2020-06-07 Harald Anlauf <anlauf@gmx.de>
1392 * class.c (gfc_hash_value): Add cast.
1394 2020-06-07 Harald Anlauf <anlauf@gmx.de>
1397 * class.c (get_unique_type_string, gfc_hash_value): Enlarge
1398 buffers, and check whether the strings returned by
1399 get_unique_type_string() fit.
1401 2020-06-05 Harald Anlauf <anlauf@gmx.de>
1405 * decl.c (gfc_match_decl_type_spec): Enlarge buffer, and enhance
1406 string copy to detect buffer overflow.
1407 * gfortran.h (gfc_common_head): Enlarge buffer.
1408 * trans-common.c (finish_equivalences): Enhance string copy to
1409 detect buffer overflow.
1411 2020-06-05 Tom Tromey <tromey@adacore.com>
1414 * misc.c (gfc_closest_fuzzy_match): Update cutoff value
1417 2020-06-04 Steven G. Kargl <kargl@gcc.gnu.org>
1418 Harald Anlauf <anlauf@gmx.de>
1421 * trans-expr.c (gfc_conv_expr_reference): Do not dereference NULL
1424 2020-06-03 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1429 * trans-expr.c (gfc_maybe_dereference_var): Add assumed-rank to
1430 character dummy arguments list of possible attributes.
1432 2020-06-03 Tobias Burnus <tobias@codesourcery.com>
1434 * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
1435 * trans-openmp.c (gfc_omp_predetermined_mapping): New.
1436 * trans.h (gfc_omp_predetermined_mapping): Declare.
1438 2020-05-31 Thomas Koenig <tkoenig@gcc.gnu.org>
1441 * class.c (finalize_component): Use expr->finalized instead of
1443 * gfortran.h (gfc_component): Remove finalized member.
1444 (gfc_expr): Add it here instead.
1446 2020-05-30 Harald Anlauf <anlauf@gmx.de>
1449 * primary.c (is_inquiry_ref): Move validity check of inquiry
1450 references against selected Fortran standard from here...
1451 (gfc_match_varspec) ...to here.
1453 2020-05-30 Harald Anlauf <anlauf@gmx.de>
1456 * class.c (get_unique_type_string): Use buffer overrun check.
1458 2020-05-29 Harald Anlauf <anlauf@gmx.de>
1461 * class.c (get_unique_type_string): Enlarge temporary for
1462 name-mangling. Use strncpy to prevent buffer overrun.
1463 (get_unique_hashed_string): Enlarge temporary.
1464 (gfc_hash_value): Enlarge temporary for name-mangling.
1466 2020-05-28 Harald Anlauf <anlauf@gmx.de>
1469 * primary.c (is_inquiry_ref): Check validity of inquiry
1470 references against selected Fortran standard.
1472 2020-05-28 Steven G. Kargl <kargl@gcc.gnu.org>
1473 Mark Eggleston <markeggleston@gcc.gnu.org>
1474 Mark Eggleston <markeggleston@gcc.gnu.org>
1477 * match.c (gfc_match_type_spec): New variable ok initialised
1478 to true. Set ok with the return value of gfc_reduce_init_expr
1479 called only if the expression is not EXPR_CONSTANT and is not
1480 EXPR_VARIABLE. Add !ok to the check for type not being integer
1481 or the rank being greater than zero.
1483 2020-05-27 Harald Anlauf <anlauf@gmx.de>
1486 * iresolve.c (gfc_get_string): Enlarge temporary for
1489 2020-05-27 Tobias Burnus <tobias@codesourcery.com>
1490 Mark Eggleston <markeggleston@gnu.gcc.org>
1493 * trans-decl.c (gfc_get_symbol_decl): Remove unnecessary block
1494 delimiters. Add auxiliary variables if a label is assigned to
1495 a return variable. (gfc_gat_fake_result): If the symbol has an
1496 assign attribute set declaration from the symbol's backend
1499 2020-05-26 Harald Anlauf <anlauf@gmx.de>
1502 * trans-types.c (gfc_get_derived_type): Enlarge temporary to hold
1503 mangled name "_caf_symbol".
1505 2020-05-26 Alexandre Oliva <oliva@adacore.com>
1507 * options.c (gfc_get_option_string): Drop auxbase, add
1510 2020-05-24 Harald Anlauf <anlauf@gmx.de>
1513 * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporaries
1516 2020-05-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1519 * libgfortran.h (libgfortran_error_codes): Add
1520 LIBERROR_BAD_WAIT_ID.
1522 2020-05-20 Mark Eggleston <markeggleston@gcc.gnu.org>
1525 * resolve.c (resolve_fl_procedure): Set name depending on
1526 whether the result attribute is set. For PROCEDURE/RESULT
1527 conflict use the name in sym->ns->proc_name->name.
1528 * symbol.c (gfc_add_type): Add check for function and result
1529 attributes use sym->ns->proc_name->name if both are set.
1530 Where the symbol cannot have a type use the name in
1531 sym->ns->proc_name->name.
1533 2020-05-18 Harald Anlauf <anlauf@gmx.de>
1536 * arith.c (gfc_divide): Revert hunk introduced by patch for
1538 * decl.c (variable_decl): Generate error for array shape not being
1539 an INTEGER constant.
1540 (gfc_get_pdt_instance): Generate error if KIND or LEN expressions
1541 in declaration of a PDT instance do not simplify to INTEGER
1544 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
1547 * openmp.c (resolve_omp_do): Permit more clauses for SIMD
1548 iteration variables.
1550 2020-05-14 Jakub Jelinek <jakub@redhat.com>
1552 * trans-openmp.c: Include function.h.
1553 (gfc_trans_omp_target): Set cfun->has_omp_target.
1555 2020-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
1558 * decl.c (char_len_param_value): Check whether character
1559 length expression is of type EXPR_OP and if so simplify it.
1560 * resolve.c (resolve_charlen): Reject length if it has a
1563 2020-05-13 Tobias Burnus <tobias@codesourcery.com>
1566 * openmp.c (OMP_DISTRIBUTE_CLAUSES): Add OMP_CLAUSE_LASTPRIVATE.
1567 (gfc_resolve_do_iterator): Skip the private handling for SIMD as
1568 that is handled by ME code.
1569 * trans-openmp.c (gfc_trans_omp_do): Don't add private/lastprivate
1570 for dovar_found == 0, unless !simple.
1572 2020-05-11 Harald Anlauf <anlauf@gmx.de>
1575 * arith.c (gfc_divide): Do not error out if operand 2 is
1576 non-numeric. Defer checks to later stage.
1578 2020-05-11 Tobias Burnus <tobias@codesourcery.com>
1581 * trans.h (gfc_conv_expr_present): Add use_saved_decl=false argument.
1582 * trans-expr.c (gfc_conv_expr_present): Likewise; use DECL directly
1583 and only if use_saved_decl is true, use the actual PARAM_DECL arg (saved
1585 * trans-array.c (gfc_trans_dummy_array_bias): Set local 'arg.0'
1586 variable to NULL if 'arg' is not present.
1587 * trans-openmp.c (gfc_omp_check_optional_argument): Simplify by checking
1588 'arg.0' instead of the true PARM_DECL.
1589 (gfc_omp_finish_clause): Remove setting 'arg.0' to NULL.
1591 2020-05-11 Janus Weil <janus@gcc.gnu.org>
1592 Dominique d'Humieres <dominiq@lps.ens.fr>
1595 * gfortran.h: Rename field resolved as resolve_symbol_called
1596 and assign two 2 bits instead of 1.
1597 * interface.c (check_dtio_interface1): Use new field name.
1598 (gfc_find_typebound_dtio_proc): Use new field name.
1599 * resolve.c (gfc_resolve_intrinsic): Replace check of the formal
1600 field with resolve_symbol_called is at least 2, if it is not
1601 set the field to 2. (resolve_typebound_procedure): Use new field
1602 name. (resolve_symbol): Use new field name and check whether it
1603 is at least 1, if it is not set the field to 1.
1605 2020-05-10 Harald Anlauf <anlauf@gmx.de>
1608 * arith.c (gfc_divide): Catch division by zero.
1609 (eval_intrinsic_f3): Safeguard for NULL operands.
1611 2020-05-05 Steve Kargl <kargl@gcc.gnu.org>
1612 Harald Anlauf <anlauf@gmx.de>
1615 * check.c (gfc_check_associated, invalid_null_arg): Factorize
1616 check for presence of invalid NULL() argument.
1617 (gfc_check_kind, gfc_check_merge, gfc_check_shape)
1618 (gfc_check_sizeof, gfc_check_spread, gfc_check_transfer): Use this
1619 check for presence of invalid NULL() arguments.
1621 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1624 * io.c (check_io_constraints): Initialize local variable num to
1625 -1 and assert that it receives a meaningful value by function
1626 compare_to_allowed_values.
1628 2020-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1632 * expr.c (gfc_check_pointer_assign): Revert patch for PR 93956.
1633 * interface.c: Likewise.
1635 2020-04-25 Thomas Koenig <tkoenig@gcc.gnu.org>
1638 * trans-expr.c (arrayfunc_assign_needs_temporary): If the
1639 LHS is a subref pointer, we also need a temporary.
1641 2020-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1644 * expr.c (gfc_check_pointer_assign): Also set subref_array_pointer
1645 when a function returns a pointer.
1646 * interface.c (gfc_set_subref_array_pointer_arg): New function.
1647 (gfc_procedure_use): Call it.
1649 2020-04-22 Fritz Reese <foreese@gcc.gnu.org>
1651 * trigd_fe.inc: Use mpfr to compute cosd(30) rather than a host-
1652 precision floating point literal based on an invalid macro.
1654 2020-04-22 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1657 * simplify.c (simplify_bound): In the case of assumed-size arrays
1658 check if the reference is to a full array.
1660 2020-04-22 Tobias Burnus <tobias@codesourcery.com>
1663 * scanner.c (load_line): In fixed form, also treat 'C' as comment and
1664 'D'/'d' only with -fd-lines-as-comments. Treat '!$' with -fopenmp,
1665 '!$acc' with -fopenacc and '!GCC$' as non-comment to permit <tab>
1666 and truncation warnings.
1668 2020-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
1670 * dump-parse-tree.c (show_attr): Add numerous flags, some cleanup.
1672 2020-04-20 Harald Anlauf <anlauf@gmx.de>
1675 * array.c (gfc_set_array_spec): Check for sum of rank and corank
1676 not exceeding GFC_MAX_DIMENSIONS.
1678 2020-04-20 Steve Kargl <kargl@gcc.gnu.org>
1679 Thomas Koenig <tkoenig@gcc.gnu.org>
1682 * decl.c (variable_decl): Reject Hollerith constants as type
1685 2020-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1688 * resolve.c (resolve_operator): If both operands are
1690 * simplify.c (simplify_bound): If a division by zero
1691 was seen during bound simplification, free the
1692 corresponcing expression and return &gfc_bad_expr.
1694 2020-04-17 Thomas Koenig <tkoenig@gcc.gnu.org>
1697 * gfortran.dg (gfc_compare_interfaces): Add
1698 optional argument bad_result_characteristics.
1699 * interface.c (gfc_check_result_characteristics): Fix
1701 (gfc_compare_interfaces): Handle new argument; return
1702 true if function return values are wrong.
1703 * resolve.c (resolve_global_procedure): Hard error if
1704 the return value of a function is wrong.
1706 2020-04-15 Fritz Reese <foreese@gcc.gnu.org>
1707 Linus Koenig <link@sig-st.de>
1710 * simplify.c (simplify_bound): Simplify condition for error check.
1712 2020-04-14 Tobias Burnus <tobias@codesourcery.com>
1714 * module.c (gfc_match_use): Fix name-conflict check for use-associating
1715 the same symbol again in a submodule.
1717 2020-04-13 Linus Koenig <link@sig-st.de>
1720 * resolve.c (resolve_fl_var_and_proc): Set flag "error" to 1 if
1721 pointer is found to not have an assumed rank or a deferred shape.
1722 * simplify.c (simplify_bound): If an error has been issued for a
1723 given pointer, one should not attempt to find its bounds.
1725 2020-04-09 Fritz Reese <foreese@gcc.gnu.org>
1728 * gfortran.h (gfc_resolve_open, gfc_resolve_close): Add
1730 (gfc_resolve_dt): Add code parameter.
1731 * io.c (async_io_dt, check_char_variable, is_char_type): Removed.
1732 (resolve_tag_format): Add locus to error message regarding
1733 zero-sized array in FORMAT tag.
1734 (check_open_constraints, check_close_constraints): New functions
1735 called at resolution time.
1736 (gfc_match_open, gfc_match_close, match_io): Move checks which don't
1737 affect the match result to new functions check_open_constraints,
1738 check_close_constraints, check_io_constraints.
1739 (gfc_resolve_open, gfc_resolve_close): Call new functions
1740 check_open_constraints, check_close_constraints after all tags have
1741 been independently resolved. Remove duplicate constraints which are
1742 already verified by resolve_tag. Explicitly pass locus to all error
1744 (compare_to_allowed_values): Add locus parameter and provide
1745 explicit locus all error reports.
1746 (match_open_element, match_close_element, match_file_element,
1747 match_dt_element, match_inquire_element): Remove redundant special
1748 cases for ASYNCHRONOUS and IOMSG tags.
1749 (gfc_resolve_dt): Remove redundant special case for format
1750 expression. Call check_io_constraints, forwarding an I/O list as
1751 the io_code parameter if present.
1752 (check_io_constraints): Change return type to bool. Pass explicit
1753 locus to error reports. Move generic checks after tag-specific
1754 checks, since errors are no longer buffered. Move simplification of
1755 format string to match_io. Remove redundant checks which are
1756 verified by resolve_tag. Remove usage of async_io_dt flag and
1757 explicitly mark symbols used in asynchronous I/O with the
1758 asynchronous attribute.
1759 * resolve.c (resolve_transfer, resolve_fl_namelist): Remove checks
1760 for async_io_dt flag. This is now done in io.c.
1761 (check_io_constraints).
1762 (gfc_resolve_code): Pass code locus to gfc_resolve_open,
1763 gfc_resolve_close, gfc_resolve_dt.
1765 2020-04-07 Fritz Reese <foreese@gcc.gnu.org>
1766 Steven G. Kargl <kargl@gcc.gnu.org>
1769 * gfortran.h (GFC_ISYM_ACOSD, GFC_ISYM_ASIND, GFC_ISYM_ATAN2D,
1770 GFC_ISYM_ATAND, GFC_ISYM_COSD, GFC_ISYM_COTAND, GFC_ISYM_SIND,
1771 GFC_ISYM_TAND): New.
1772 * intrinsic.c (add_functions): Remove check for flag_dec_math.
1773 Give degree trig functions simplification and name resolution
1774 functions (e.g, gfc_simplify_atrigd () and gfc_resolve_atrigd ()).
1775 (do_simplify): Remove special casing of degree trig functions.
1776 * intrinsic.h (gfc_simplify_acosd, gfc_simplify_asind,
1777 gfc_simplify_atand, gfc_simplify_cosd, gfc_simplify_cotand,
1778 gfc_simplify_sind, gfc_simplify_tand, gfc_resolve_trigd2): Add new
1780 (gfc_simplify_atrigd, gfc_simplify_trigd, gfc_resolve_cotan,
1781 resolve_atrigd): Remove prototypes of deleted functions.
1782 * iresolve.c (is_trig_resolved, copy_replace_function_shallow,
1783 gfc_resolve_cotan, get_radians, get_degrees, resolve_trig_call,
1784 gfc_resolve_atrigd, gfc_resolve_atan2d): Delete functions.
1785 (gfc_resolve_trigd, gfc_resolve_trigd2): Resolve to library functions.
1786 * simplify.c (rad2deg, deg2rad, gfc_simplify_acosd, gfc_simplify_asind,
1787 gfc_simplify_atand, gfc_simplify_atan2d, gfc_simplify_cosd,
1788 gfc_simplify_sind, gfc_simplify_tand, gfc_simplify_cotand): New
1790 (gfc_simplify_atan2): Fix error message.
1791 (simplify_trig_call, gfc_simplify_trigd, gfc_simplify_atrigd,
1792 radians_f): Delete functions.
1793 * trans-intrinsic.c: Add LIB_FUNCTION decls for sind, cosd, tand.
1794 (rad2deg, gfc_conv_intrinsic_atrigd, gfc_conv_intrinsic_cotan,
1795 gfc_conv_intrinsic_cotand, gfc_conv_intrinsic_atan2d): New functions.
1796 (gfc_conv_intrinsic_function): Handle ACOSD, ASIND, ATAND, COTAN,
1798 * trigd_fe.inc: New file. Included by simplify.c to implement
1799 simplify_sind, simplify_cosd, simplify_tand with code common to the
1800 libgfortran implementation.
1802 2020-04-06 Steven G. Kargl <kargl@gcc.gnu.org>
1805 * decl.c (gfc_match_data): Handle data matching for derived type
1808 2020-04-02 Tobias Burnus <tobias@codesourcery.com>
1810 * gfortran.h (gfc_resolve_formal_arglist): Add prototype.
1811 * interface.c (check_dtio_interface1): Call it.
1812 * resolve.c (gfc_resolve_formal_arglist): Renamed from
1813 resolve_formal_arglist, removed static.
1814 (find_arglists, resolve_types): Update calls.
1816 2020-04-02 Tobias Burnus <tobias@codesourcery.com>
1819 * match.c (gfc_match_select_rank): Fix error cleanup.
1821 2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
1824 * check.c (gfc_check_findloc): If the kinds of the arguments
1825 differ goto label "incompat".
1827 2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
1830 * resolve.c (resolve_equivalence): Correct formatting
1831 around the label "identical_types". Instead of using
1832 gfc_resolve_array_spec use is_non_constants_shape_array
1833 to determine whether the array can be used in a in an
1834 equivalence statement.
1836 2020-04-01 Mark Eggleston <mark.eggleston@codethink.com>
1839 expr.c (simplify_parameter_variable): Restore code deleted
1842 2020-03-28 Paul Thomas <pault@gcc.gnu.org>
1845 * arith.c : Remove trailing white space.
1846 * expr.c (scalarize_intrinsic_call): Remove the error checking.
1847 Make a copy of the expression to be simplified and only replace
1848 the original if the simplification succeeds.
1850 2020-03-28 Tobias Burnus <tobias@codesourcery.com>
1853 * decl.c (gfc_match_submod_proc): Add result var to the
1856 2020-03-27 Tobias Burnus <tobias@codesourcery.com>
1859 * trans-array.c (gfc_alloc_allocatable_for_assignment): Accept
1860 nonallocatable, nonpointer deferred-rank arrays.
1862 2020-03-27 Tobias Burnus <tobias@codesourcery.com>
1865 * resolve.c (resolve_assoc_var): Reject association to DT and
1868 2020-03-25 Steven G. Kargl <kargl@gcc.gnu.org>
1871 * match.c (gfc_match_type_spec): Replace gfc_match_init_expr with
1872 gfc_match_expr. Return m if m is MATCH_NO or MATCH_ERROR.
1874 2020-03-23 Mark Eggleston <mark.eggleston@codethink.com>
1875 Steven G. Kargl <kargl@gcc.gnu.org>
1878 * expr.c (simplify_parameter_variable): Check whether the ref
1879 chain contains INQUIRY_LEN or INQUIRY_KIND and set inquiry
1880 boolean. When an empty array has been identified and a new
1881 new EXPR_ARRAY expression has been created only return that
1882 expression if inquiry is not set. This allows the new
1883 expression to drop through to be simplified into a
1884 EXPR_CONSTANT representing %kind or %len.
1885 * matc.c (gfc_match_assignment): If lvalue doesn't have a
1886 symtree free both lvalue and rvalue expressions and return
1888 * resolv.c (gfc_resolve_ref): Ensure that code to handle
1889 INQUIRY_LEN is only performed for arrays with deferred types.
1891 2020-03-18 Jakub Jelinek <jakub@redhat.com>
1893 * class.c (generate_finalization_wrapper): Fix up duplicated word
1895 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1897 2020-03-17 Jakub Jelinek <jakub@redhat.com>
1899 * array.c (gfc_check_iter_variable): Fix up duplicated word issue
1901 * arith.c (gfc_arith_concat): Likewise.
1902 * resolve.c (gfc_resolve_ref): Likewise.
1903 * frontend-passes.c (matmul_lhs_realloc): Likewise.
1904 * module.c (gfc_match_submodule, load_needed): Likewise.
1905 * trans-expr.c (gfc_init_se): Likewise.
1907 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
1909 * lang.opt: Avoid redundancy in the help text.
1911 2020-03-12 Tobias Burnus <tobias@codesourcery.com>
1914 * openmp.c (gfc_match_oacc_declare): Accept function-result
1915 variables; reject variables declared in a different scoping unit.
1917 2020-03-08 Paul Thomas <pault@gcc.gnu.org>
1920 * resolve.c (gfc_resolve_ref): Modify array refs to be elements
1921 if the ref chain ends in INQUIRY_LEN.
1922 * trans-array.c (gfc_get_dataptr_offset): Provide the offsets
1923 for INQUIRY_RE and INQUIRY_IM.
1925 2020-03-05 Steven G. Kargl <kargl@gcc.gnu.org>
1928 * decl.c (variable_decl): If param and initializer check
1929 for BOZ, if found, output an error, set m to MATCH_ERROR
1932 2020-03-02 Andrew Benson <abensonca@gmail.com>
1935 * module.c: Increase size of variables used to read module names
1936 when loading interfaces from module files to permit cases where
1937 the name is the concatenation of a module and submodule name.
1938 * gfortran.dg/pr93486.f90: New test.
1940 2020-03-01 Paul Thomas <pault@gcc.gnu.org>
1943 * match.c (select_type_set_tmp): If the selector array spec has
1944 explicit bounds, make the temporary's bounds deferred.
1946 2020-03-01 Paul Thomas <pault@gcc.gnu.org>
1949 * trans-intrinsic.c (gfc_conv_associated): Eliminate
1950 'nonzero_charlen' and move the chunk to evaluate zero character
1951 length until after the argument evaluation so that the string
1954 2020-02-28 Paul Thomas <pault@gcc.gnu.org>
1957 * trans-expr.c (gfc_conv_intrinsic_to_class): Renormalise non-
1958 variable expressions to be unity lbound based.
1960 2020-02-25 Steven G. Kargl <kargl@gcc.gnu.org>
1962 * simplify.c (degrees_f): Remove unused code.
1964 2020-02-25 Jakub Jelinek <jakub@redhat.com>
1966 PR translation/93864
1967 * intrinsic.texi (CO_BROADCAST): Fix typo, paramter -> parameter.
1968 * trans-array.c (gfc_allocate_pdt_comp, gfc_deallocate_pdt_comp,
1969 gfc_check_pdt_dummy): Fix comment typo paramter -> parameter.
1971 2020-02-24 Mark Eggleston <mark.eggleston@codethink.com>
1972 Steven G. Kargl <kargl@gcc.gnu.org>
1975 * decl.c (gfc_match_data) : Check whether the data expression
1976 is a derived type and is a constructor. If a BOZ constant
1977 is encountered in the constructor output an error and return
1980 2020-02-24 Steven G. Kargl <kargl@gcc.gnu.org>
1983 * decl.c (gfc_match_data) : Check whether the data expression
1984 is a derived type and is a constructor. If a BOZ constant
1985 is encountered in the constructor output an error and return
1988 2020-02-24 Tobias Burnus <tobias@codesourcery.com>
1991 * match.c (match_exit_cycle): With OpenACC, check the kernels loop
1992 directive and tile clause as well.
1994 2020-02-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1997 * interface.c (compare_parameter): Fix error message.
1999 2020-02-23 Thomas Koenig <tkoenig@gcc.gnu.org>
2002 * interface.c: Replace "can not" by "cannot" and remove trailing
2005 2020-02-20 Tobias Burnus <tobias@codesourcery.com>
2008 * openmp.c (resolve_oacc_loop_blocks): Move call to
2009 resolve_oacc_nested_loops from here ...
2010 (resolve_oacc_loop): ... to here.
2012 2020-02-18 Mark Eggleston <markeggleston@gcc.gnu.org>
2015 * expr.c (gfc_check_pointer_assign): Move check for
2016 matching character length to after checking the lvalue
2017 attributes for target or pointer.
2019 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
2022 * match.c (gfc_match_assignment) : Reject assignment if
2023 the lhs stype is BT_CLASS and the rhs type is BT_BOZ.
2025 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
2028 * match.c (gfc_match_associate) : If target expression
2029 has the type BT_BOZ output an error and goto
2032 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
2033 Mark Eggleston <markeggleston@gcc.gnu.org>
2036 * primary.c (gfc_match_varspec): If the symbol following %
2037 is re or im and the primary expression type is not BT_COMPLEX
2038 issue an error. If the symbol is len and the primary
2039 expression type is not BT_CHARACTER is an error.
2041 2020-02-10 Andrew Benson <abensonca@gmail.com>
2044 * array.c: Do not attempt to set the array spec for a submodule
2045 function symbol (as it has already been set in the corresponding
2046 module procedure interface).
2047 * symbol.c: Do not reject duplicate POINTER, ALLOCATABLE, or
2048 DIMENSION attributes in declarations of a submodule function.
2049 * gfortran.h: Add a macro that tests for a module procedure in a
2051 * gfortran.dg/pr83113.f90: New test.
2053 2020-02-03 Julian Brown <julian@codesourcery.com>
2054 Tobias Burnus <tobias@codesourcery.com>
2056 * cpp.c (cpp_define_builtins): Update _OPENACC define to 201711.
2057 * intrinsic.texi: Update mentions of OpenACC version to 2.6.
2058 * gfortran.texi: Likewise. Remove experimental disclamer for OpenACC.
2059 * invoke.texi: Remove experimental disclamer for OpenACC.
2061 2020-02-03 Tobias Burnus <tobias@codesourcery.com>
2064 * intrinisic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS):
2065 Add undocumented parameters from omp_lib.f90.in.
2067 2020-02-03 Tobias Burnus <tobias@codesourcery.com>
2070 * resolve.c (resolve_assoc_var): Remove too strict check.
2071 * gfortran.dg/associate_51.f90: Update test case.
2073 2020-02-01 Jakub Jelinek <jakub@redhat.com>
2076 * trans-types.c (gfc_get_function_type): Also push boolean_type_node
2077 types for non-character scalar VALUE optional dummy arguments.
2078 * trans-decl.c (create_function_arglist): Skip those in
2079 hidden_typelist. Formatting fix.
2081 2020-01-31 Tobias Burnus <tobias@codesourcery.com>
2084 * frontend-passes.c (gfc_code_walker): For EXEC_OACC_ATOMIC, set
2085 in_omp_atomic to true prevent front-end optimization.
2087 2020-01-30 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2090 * expr.c (gfc_check_conformance): Check vsnprintf for truncation.
2091 * iresolve.c (gfc_get_string): Likewise.
2092 * symbol.c (gfc_new_symbol): Remove check for maximum symbol
2093 name length. Remove redundant 0 setting of new calloc()ed
2096 2020-01-30 Paul Thomas <pault@gcc.gnu.org>
2097 Jakub Jelinek <jakub@redhat.com>
2100 * trans-decl.c (gfc_get_symbol_decl): Call gfc_defer_symbol_init for
2102 (gfc_build_builtin_function_decls): Use ".w." instead of ".ww" or ".wR"
2103 for gfor_fndecl_{cfi_to_gfc,gfc_to_cfi}.
2104 (convert_CFI_desc): Handle references to CFI descriptors.
2106 2020-01-29 Jakub Jelinek <jakub@redhat.com>
2109 * openmp.c (oacc_code_to_statement): Handle
2110 EXEC_OACC_{ROUTINE,UPDATE,WAIT,CACHE,{ENTER,EXIT}_DATA,DECLARE}.
2112 2020-01-28 Andrew Benson <abensonca@gmail.com>
2115 * trans.h: Increase GFC_MAX_MANGLED_SYMBOL_LEN to
2116 GFC_MAX_SYMBOL_LEN*3+5 to allow for inclusion of submodule name,
2117 plus the "." between module and submodule names.
2118 * gfortran.dg/pr93461.f90: New test.
2120 2020-01-28 Andrew Benson <abensonca@gmail.com>
2123 * parse.c: Increase length of char variables to allow them to hold
2124 a concatenated module + submodule name.
2125 * gfortran.dg/pr93473.f90: New test.
2127 2020-01-28 Julian Brown <julian@codesourcery.com>
2130 * openmp.c (resolve_omp_clauses): Check array references for contiguity.
2132 2020-01-28 Julian Brown <julian@codesourcery.com>
2134 * gfortran.h (gfc_symbol): Add comp_mark bitfield.
2135 * openmp.c (resolve_omp_clauses): Disallow mixed component and
2136 full-derived-type accesses to the same variable within a single
2139 2020-01-28 Tobias Burnus <tobias@codesourcery.com>
2142 * openmp.c (gfc_omp_check_optional_argument): Avoid ICE when
2143 DECL_LANG_SPECIFIC and GFC_DESCRIPTOR_TYPE_P but not
2144 GFC_DECL_SAVED_DESCRIPTOR as for local allocatable character vars.
2146 2020-01-28 Tobias Burnus <tobias@codesourcery.com>
2148 * gfortran.texi (Runtime): Remove tailing '.' in @menu.
2150 2020-01-27 Tobias Burnus <tobias@codesourcery.com>
2153 * trans-expr.c (gfc_conv_substring): Handle non-ARRAY_TYPE strings
2154 of Bind(C) procedures.
2156 2020-01-22 Jakub Jelinek <jakub@redhat.com>
2158 * parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL.
2159 * trans-openmp.c (gfc_trans_omp_target)
2160 <case EXEC_OMP_TARGET_PARALLEL>: Call pushlevel first.
2163 * openmp.c (omp_code_to_statement): Handle remaining EXEC_OMP_*
2166 2020-01-21 Tobias Burnus <tobias@codesourcery.com>
2169 * interface.c (gfc_procedure_use): Also check parent namespace for
2170 'implict none (external)'.
2171 * symbol.c (gfc_get_namespace): Don't set has_implicit_none_export
2172 to parent namespace's setting.
2174 2020-01-19 Thomas König <tkoenig@gcc.gnu.org>
2177 * primary.c (gfc_match_rvalue): Break after setting MATCH_ERROR.
2178 * resolve.c (resolve_function): Issue error when a
2179 function call contains a reference.
2181 2020-01-17 Mark Eggleston <mark.eggleston@codethink.com>
2184 * resolve.c (resolve_types): Declare boolean recursive and set with the
2185 value of the recursive attribute of namespace proc_name symbol
2186 structure if it exists. Call gfc_save_all if both flag_automatic and
2187 recursive are false or ns->save_all is true.
2189 2020-01-16 Tobias Burnus <tobias@codesourcery.com>
2192 * check.c (gfc_invalid_boz): Mention -fallow-invalid-boz
2193 in the error message.
2194 * gfortran.texi (BOZ literal constants): List another missing
2195 extension and refer to -fallow-invalid-boz.
2196 * lang.opt (fallow-invalid-boz): Also mention 'X' in the help text
2197 as it is not covered by the previous wording.
2198 * primary.c (match_boz_constant): Tweak wording such that it is
2199 clear how to fix the nonstandard use.
2201 2020-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
2204 * array.c (empty_constructor): New variable.
2205 (empty_ts): New variable.
2206 (expand_constructor): Save typespec in empty_ts.
2207 Unset empty_constructor if there is an element.
2208 (gfc_expand_constructor): Initialize empty_constructor
2209 and empty_ts. If there was no explicit constructor
2210 type and the constructor is empty, take the type from
2213 2020-01-09 Tobias Burnus <tobias@codesourcery.com>
2216 * array.c (gfc_set_array_spec): Fix shifting of codimensions
2217 when adding a dimension.
2218 * decl.c (merge_array_spec): Ditto. Fix using correct codimensions.
2220 2020-01-07 Jakub Jelinek <jakub@redhat.com>
2223 * trans-openmp.c (gfc_trans_omp_clauses): Check for REF_ARRAY type
2224 before testing u.ar.type == AR_FULL.
2226 2020-01-04 Tobias Burnus <tobias@codesourcery.com>
2229 * trans-expr.c (gfc_conv_procedure_call): Avoid copy-out for nonvariable
2230 arguments to contiguous dummy args. Avoid re-checking whether fsym is
2233 2020-01-03 Tobias Burnus <tobias@codesourcery.com>
2235 * trans-openmp.c (gfc_omp_check_optional_argument): Always return a
2236 Boolean expression; handle unallocated/disassociated actual arguments
2237 as absent if passed to nonallocatable/nonpointer dummy array arguments.
2238 (gfc_build_cond_assign): Change to assume a Boolean expr not a pointer.
2239 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Assign NULL to generated
2240 array-data variable if the argument is absent. Simplify code as
2241 'present' is now a Boolean expression.
2243 2020-01-03 Tobias Burnus <tobias@codesourcery.com>
2246 * primary.c (gfc_match_rvalue): Add some flavor checks
2247 gfc_matching_procptr_assignment.
2248 * resolve.c (resolve_assoc_var): Add more checks for invalid targets.
2250 2020-01-02 Tobias Burnus <tobias@codesourcery.com>
2253 * array.c (gfc_match_array_spec): Fix implied-type matching
2256 2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org>
2259 * dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch
2262 2020-01-01 Jakub Jelinek <jakub@redhat.com>
2264 Update copyright years.
2266 * gfortranspec.c (lang_specific_driver): Update copyright notice
2268 * gfc-internals.texi: Bump @copying's copyright year.
2269 * gfortran.texi: Ditto.
2270 * intrinsic.texi: Ditto.
2271 * invoke.texi: Ditto.
2273 Copyright (C) 2020 Free Software Foundation, Inc.
2275 Copying and distribution of this file, with or without modification,
2276 are permitted in any medium without royalty provided the copyright
2277 notice and this notice are preserved.