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