1 2021-11-30 Harald Anlauf <anlauf@gmx.de>
4 * array.c (expand_constructor): When encountering a constant array
5 expression or array section within a constructor, simplify it to
6 enable better expansion.
8 2021-11-30 Harald Anlauf <anlauf@gmx.de>
11 * simplify.c (simplify_minmaxloc_nodim): Avoid NULL pointer
12 dereference when shape is not set.
14 2021-11-30 Harald Anlauf <anlauf@gmx.de>
15 Steven G. Kargl <kargl@gcc.gnu.org>
18 * check.c (gfc_check_image_index): Verify that SUB argument to
19 IMAGE_INDEX is of type integer.
21 2021-11-30 Richard Biener <rguenther@suse.de>
23 * frontend-passes.c (gfc_expr_walker): Add comment to
24 indicate tail recursion.
26 2021-11-30 Richard Biener <rguenther@suse.de>
28 * target-memory.c (gfc_element_size): Remove unreachable return.
30 2021-11-30 Thomas Schwinge <thomas@codesourcery.com>
32 * openmp.c (resolve_oacc_loop_blocks): Remove "gang reduction on
33 an orphan loop" checking.
34 (oacc_is_parallel, oacc_is_kernels, oacc_is_serial)
35 (oacc_is_compute_construct): Remove.
37 2021-11-30 Frederik Harwath <frederik@codesourcery.com>
38 Thomas Schwinge <thomas@codesourcery.com>
40 * openmp.c (oacc_is_parallel_or_serial): Evolve into...
41 (oacc_is_compute_construct): ... this function.
42 (resolve_oacc_loop_blocks): Use "oacc_is_compute_construct"
43 instead of "oacc_is_parallel_or_serial" for checking that a
46 2021-11-30 Kwok Cheung Yeung <kcy@codesourcery.com>
47 Thomas Schwinge <thomas@codesourcery.com>
49 * openmp.c (oacc_is_serial, oacc_is_parallel_or_serial): New.
50 (resolve_oacc_loop_blocks): Use oacc_is_parallel_or_serial instead of
53 2021-11-30 Cesar Philippidis <cesar@codesourcery.com>
54 Thomas Schwinge <thomas@codesourcery.com>
56 * openmp.c (oacc_is_parallel, oacc_is_kernels): New 'static'
58 (resolve_oacc_loop_blocks): Emit an error on orphan OpenACC gang
61 2021-11-30 Richard Biener <rguenther@suse.de>
63 * decl.c (gfc_insert_parameter_exprs): Only return after
64 resetting type_param_spec_list.
66 2021-11-30 Richard Biener <rguenther@suse.de>
68 * frontend-passes.c (gfc_expr_walker): Remove unreachable
70 * scanner.c (skip_fixed_comments): Remove unreachable
72 * trans-expr.c (gfc_expr_is_variable): Refactor to make
73 control flow more obvious.
75 2021-11-29 Eric Gallager <egallager@gcc.gnu.org>
78 * Make-lang.in: Use ETAGS variable in TAGS target.
80 2021-11-26 Harald Anlauf <anlauf@gmx.de>
83 * check.c (gfc_check_reshape): Improve check of size of source
84 array for the RESHAPE intrinsic against the given shape when pad
85 is not given, and shape is a parameter. Try other simplifications
88 2021-11-23 Harald Anlauf <anlauf@gmx.de>
91 * simplify.c (simplify_bound): Do not try to simplify
92 LBOUND/UBOUND for arrays with POINTER or ALLOCATABLE attribute.
94 2021-11-23 Harald Anlauf <anlauf@gmx.de>
98 * trans-array.c (arg_evaluated_for_scalarization): Add LEN_TRIM to
99 list of intrinsics for which an optional KIND argument needs to be
100 removed before scalarization.
102 2021-11-21 Jakub Jelinek <jakub@redhat.com>
105 * trans-types.c (gfc_get_array_descr_info): Use DW_OP_deref_size 1
106 instead of DW_OP_deref for DW_AT_rank.
108 2021-11-21 Harald Anlauf <anlauf@gmx.de>
109 Steven G. Kargl <kargl@gcc.gnu.org>
112 * trans-intrinsic.c (gfc_lookup_intrinsic): Helper function for
113 looking up gfortran builtin intrinsics.
114 (gfc_conv_intrinsic_atrigd): Use it.
115 (gfc_conv_intrinsic_cotan): Likewise.
116 (gfc_conv_intrinsic_cotand): Likewise.
117 (gfc_conv_intrinsic_atan2d): Likewise.
119 2021-11-18 Harald Anlauf <anlauf@gmx.de>
120 Steven G. Kargl <kargl@gcc.gnu.org>
123 * check.c (is_c_interoperable): Reject NULL() as it is not
126 2021-11-16 Harald Anlauf <anlauf@gmx.de>
129 * resolve.c (resolve_select): Choose appropriate range limit to
130 avoid NULL pointer dereference when generating error message.
132 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
134 * interface.c (gfc_dummy_arg_get_name): New function.
135 * gfortran.h (gfc_dummy_arg_get_name): Declare it.
136 * trans-array.c (arg_evaluated_for_scalarization): Pass a dummy
137 argument wrapper as argument instead of an actual argument
138 and an index number. Check it’s non-NULL. Use its name
140 (gfc_walk_elemental_function_args): Update call to
141 arg_evaluated for scalarization. Remove argument counting.
143 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
145 * gfortran.h (gfc_actual_arglist::missing_arg_type): Remove.
146 * interface.c (gfc_compare_actual_formal): Remove
147 missing_arg_type initialization.
148 * intrinsic.c (sort_actual): Ditto.
149 * trans-expr.c (gfc_conv_procedure_call): Use associated_dummy
150 and gfc_dummy_arg_get_typespec to get the dummy argument type.
152 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
154 * interface.c (gfc_dummy_arg_get_typespec,
155 gfc_dummy_arg_is_optional): New functions.
156 * gfortran.h (gfc_dummy_arg_get_typespec,
157 gfc_dummy_arg_is_optional): Declare them.
158 * trans.h (gfc_ss_info::dummy_arg): Use the wrapper type
160 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
161 use gfc_dummy_arg_get_typespec function to get the type.
162 (gfc_walk_elemental_function_args): Remove proc_ifc argument.
163 Get info about the dummy arg using the associated_dummy field.
164 * trans-array.h (gfc_walk_elemental_function_args): Update declaration.
165 * trans-intrinsic.c (gfc_walk_intrinsic_function):
166 Update call to gfc_walk_elemental_function_args.
167 * trans-stmt.c (gfc_trans_call): Ditto.
168 (get_proc_ifc_for_call): Remove.
170 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
172 * gfortran.h (gfc_dummy_arg_kind, gfc_dummy_arg): New.
173 (gfc_actual_arglist): New field associated_dummy.
174 (gfc_intrinsic_arg): Remove field actual.
175 * interface.c (get_nonintrinsic_dummy_arg): New.
176 (gfc_compare_actual): Initialize associated_dummy.
177 * intrinsic.c (get_intrinsic_dummy_arg): New.
178 (sort_actual): Add argument vectors.
179 Use loops with indices on argument vectors.
180 Initialize associated_dummy.
182 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
184 * intrinsic.c (sort_actual): initialise variable and use it earlier.
186 2021-11-15 Tobias Burnus <tobias@codesourcery.com>
188 * openmp.c (OMP_TARGET_CLAUSES): Add thread_limit.
189 * trans-openmp.c (gfc_split_omp_clauses): Add thread_limit also to
192 2021-11-12 Tobias Burnus <tobias@codesourcery.com>
194 * parse.c (decode_omp_directive): Fix permitting 'nowait' for some
195 combined directives, add missing 'omp end ... loop'.
196 (gfc_ascii_statement): Fix ST_OMP_END_TEAMS_LOOP result.
197 * openmp.c (resolve_omp_clauses): Add missing combined loop constructs
198 case values to the 'if(directive-name: ...)' check.
199 * trans-openmp.c (gfc_split_omp_clauses): Put nowait on target if
200 first leaf construct accepting it.
202 2021-11-12 Martin Jambor <mjambor@suse.cz>
204 * trans-types.c (gfc_get_array_descr_info): Use build_debug_expr_decl
205 instead of building DEBUG_EXPR_DECL manually.
207 2021-11-12 Mikael Morin <mikael@gcc.gnu.org>
210 * intrinsic.c (add_sym_4ind): Remove.
211 (add_functions): Use add_sym4 instead of add_sym4ind.
212 Don’t special case the index intrinsic.
213 * iresolve.c (gfc_resolve_index_func): Use the individual arguments
214 directly instead of the full argument list.
215 * intrinsic.h (gfc_resolve_index_func): Update the declaration
217 * trans-decl.c (gfc_get_extern_function_decl): Don’t modify the
218 list of arguments in the case of the index intrinsic.
219 * trans-array.h (gfc_get_intrinsic_for_expr,
220 gfc_get_proc_ifc_for_expr): New.
221 * trans-array.c (gfc_get_intrinsic_for_expr,
222 arg_evaluated_for_scalarization): New.
223 (gfc_walk_elemental_function_args): Add intrinsic procedure
224 as argument. Count arguments. Check arg_evaluated_for_scalarization.
225 * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
226 * trans-stmt.c (get_intrinsic_for_code): New.
227 (gfc_trans_call): Update call.
229 2021-11-12 Jakub Jelinek <jakub@redhat.com>
231 * types.def (BT_FN_VOID_UINT_UINT): Remove.
232 (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New.
234 2021-11-11 Tobias Burnus <tobias@codesourcery.com>
236 * gfortran.h (struct gfc_omp_clauses): Rename num_teams to
237 num_teams_upper, add num_teams_upper.
238 * dump-parse-tree.c (show_omp_clauses): Update to handle
239 lower-bound num_teams clause.
240 * frontend-passes.c (gfc_code_walker): Likewise
241 * openmp.c (gfc_free_omp_clauses, gfc_match_omp_clauses,
242 resolve_omp_clauses): Likewise.
243 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses,
244 gfc_trans_omp_target): Likewise.
246 2021-11-11 Jakub Jelinek <jakub@redhat.com>
248 * trans-openmp.c (gfc_trans_omp_clauses): Use
249 OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead of OMP_CLAUSE_NUM_TEAMS_EXPR.
251 2021-11-10 Harald Anlauf <anlauf@gmx.de>
255 * check.c (gfc_check_shape): Avoid NULL pointer dereference on
257 * simplify.c (gfc_simplify_cshift): Avoid NULL pointer dereference
259 (gfc_simplify_transpose): Likewise.
261 2021-11-09 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
264 * class.c (generate_finalization_wrapper): Do not leak
265 finalization wrappers if they will not be used.
266 * expr.c (gfc_free_actual_arglist): Formatting fix.
267 * gfortran.h (gfc_free_symbol): Pass argument by reference.
268 (gfc_release_symbol): Likewise.
269 (gfc_free_namespace): Likewise.
270 * symbol.c (gfc_release_symbol): Adjust acordingly.
271 (free_components): Set procedure pointer components
272 of derived types to NULL after freeing.
273 (free_tb_tree): Likewise.
274 (gfc_free_symbol): Set sym to NULL after freeing.
275 (gfc_free_namespace): Set namespace to NULL after freeing.
277 2021-11-09 Martin Liska <mliska@suse.cz>
279 * symbol.c (gfc_get_ultimate_derived_super_type): Remove.
281 2021-11-09 Aldy Hernandez <aldyh@redhat.com>
283 * misc.c (gfc_dummy_typename): Make sure ts->kind is
286 2021-11-07 Thomas Koenig <tkoenig@gcc.gnu.org>
288 * intrinsic.c (add_subroutines): Change keyword "operator"
289 to the correct one, "operation".
290 * check.c (gfc_check_co_reduce): Change OPERATOR to
291 OPERATION in error messages.
292 * intrinsic.texi: Change OPERATOR to OPERATION in
295 2021-11-07 Sandra Loosemore <sandra@codesourcery.com>
297 * interface.c (gfc_compare_actual_formal): Continue checking
298 all arguments after encountering an error.
299 * intrinsic.c (do_ts29113_check): Likewise.
300 * resolve.c (resolve_operator): Continue resolving on op2 error.
302 2021-11-06 Harald Anlauf <anlauf@gmx.de>
305 * decl.c (add_init_expr_to_sym): Reject rank mismatch between
306 array and its initializer.
308 2021-11-05 Harald Anlauf <anlauf@gmx.de>
311 * expr.c (simplify_parameter_variable): Copy shape of referenced
312 subobject when simplifying.
314 2021-11-05 Harald Anlauf <anlauf@gmx.de>
317 * match.c (gfc_match_common): Check array spec of a symbol in a
318 COMMON object list and reject it if it is a coarray.
320 2021-11-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
323 * decl.c (gfc_match_implicit_none): Fix typo in warning.
324 * resolve.c (resolve_unknown_f): Reject external procedures
325 without explicit EXTERNAL attribute whe IMPLICIT none (external)
328 2021-11-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
330 * decl.c (gfc_insert_kind_parameter_exprs): Make static.
331 * expr.c (gfc_build_init_expr): Make static
332 (gfc_build_default_init_expr): Move below its static helper.
333 * gfortran.h (gfc_insert_kind_parameter_exprs, gfc_add_saved_common,
334 gfc_add_common, gfc_use_derived_tree, gfc_free_charlen,
335 gfc_get_ultimate_derived_super_type,
336 gfc_resolve_oacc_parallel_loop_blocks, gfc_build_init_expr,
337 gfc_iso_c_sub_interface): Delete.
338 * symbol.c (gfc_new_charlen, gfc_get_derived_super_type): Make
341 2021-11-05 Sandra Loosemore <sandra@codesourcery.com>
344 * gfortran.texi (Mixed-Language Programming): Talk about C++,
347 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
349 * gfortran.texi (Projects): Add bullet for helping with
350 incomplete standards compliance.
351 (Proposed Extensions): Delete section.
353 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
355 * intrinsic.texi (Introduction to Intrinsics): Genericize
356 references to standard versions.
357 * invoke.texi (-fall-intrinsics): Likewise.
358 (-fmax-identifier-length=): Likewise.
360 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
362 * gfortran.texi (Interoperability with C): Copy-editing. Add
364 (Intrinsic Types): Likewise.
365 (Derived Types and struct): Likewise.
366 (Interoperable Global Variables): Likewise.
367 (Interoperable Subroutines and Functions): Likewise.
368 (Working with C Pointers): Likewise.
369 (Further Interoperability of Fortran with C): Likewise. Rewrite
370 to reflect that this is now fully supported by gfortran.
372 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
374 * gfortran.texi (About GNU Fortran): Consolidate material
375 formerly in other sections. Copy-editing.
376 (Preprocessing and conditional compilation): Delete, moving
377 most material to invoke.texi.
378 (GNU Fortran and G77): Delete.
379 (Project Status): Delete.
381 (Fortran 95 status): Mention conditional compilation here.
382 (Fortran 2003 status): Rewrite to mention the 1 missing feature
383 instead of all the ones implemented.
384 (Fortran 2008 status): Similarly for the 2 missing features.
385 (Fortran 2018 status): Rewrite to reflect completion of TS29113
387 * invoke.texi (Preprocessing Options): Move material formerly
388 in introductory chapter here.
390 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
392 * gfortran.texi (Standards): Move discussion of specific
393 standard versions here....
394 (Fortran standards status): ...from here, and delete this node.
396 2021-10-31 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
398 * symbol.c (gfc_get_typebound_proc): Revert memcpy.
400 2021-10-31 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
402 * resolve.c (resolve_fl_procedure): Initialize
403 allocatable_or_pointer.
405 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
407 * intrinsic.texi: Remove entries for SHORT and LONG intrinsics.
409 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
411 * check.c (gfc_check_intconv): Change error message.
413 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
415 * intrinsic.texi (REAL): Fix entries in Specific names table.
417 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
419 * intrinsic.texi: Adjust @columnfractions commands to improve
420 appearance for narrow 80 character terminals.
422 2021-10-30 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
424 * parse.c (clean_up_modules): Free gsym.
426 2021-10-30 Harald Anlauf <anlauf@gmx.de>
428 * gfortran.texi (bug reports): credit Gerhard Steinmetz for
429 numerous bug reports.
431 2021-10-30 Steve Kargl <kargl@gcc.gnu.org>
434 * resolve.c (resolve_select): Generate regular gfc_error on
435 invalid conversions instead of an gfc_internal_error.
437 2021-10-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
439 * symbol.c (free_tb_tree): Free type-bound procedure struct.
440 (gfc_get_typebound_proc): Use explicit memcpy for clarity.
442 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
444 * intrinsic.h (gfc_check_sum, gfc_resolve_atan2d, gfc_resolve_kill,
445 gfc_resolve_kill_sub): Delete declaration.
447 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
449 * trans-types.h (gfc_convert_function_code): Delete.
451 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
453 * trans-stmt.h (gfc_trans_deallocate_array): Delete.
455 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
457 * trans-array.c (gfc_trans_scalarized_loop_end): Make static.
458 * trans-array.h (gfc_trans_scalarized_loop_end,
459 gfc_conv_tmp_ref, gfc_conv_array_transpose): Delete declaration.
461 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
463 * constructor.c (gfc_constructor_get_base): Make static.
464 (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete.
465 * constructor.h (gfc_constructor_get_base): Remove declaration.
466 (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete.
468 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
470 * decl.c (gfc_match_old_kind_spec, set_com_block_bind_c,
471 set_verify_bind_c_sym, set_verify_bind_c_com_block,
472 get_bind_c_idents, gfc_match_suffix, gfc_get_type_attr_spec,
473 check_extended_derived_type): Make static.
474 (gfc_match_gcc_unroll): Add comment.
475 * match.c (gfc_match_small_int_expr): Delete definition.
476 * match.h (gfc_match_small_int_expr): Delete declaration.
477 (gfc_match_name_C, gfc_match_old_kind_spec, set_com_block_bind_c,
478 set_verify_bind_c_sym, set_verify_bind_c_com_block,
479 get_bind_c_idents, gfc_match_suffix,
480 gfc_get_type_attr_spec): Delete declaration.
482 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
484 * expr.c (is_non_empty_structure_constructor): Make static.
485 * gfortran.h (gfc_check_any_c_kind): Delete.
486 * match.c (gfc_match_label): Make static.
487 * match.h (gfc_match_label): Delete declaration.
488 * scanner.c (file_changes_cur, file_changes_count,
489 file_changes_allocated): Make static.
490 * trans-expr.c (gfc_get_character_len): Make static.
491 (gfc_class_len_or_zero_get): Make static.
492 (VTAB_GET_FIELD_GEN): Undefine.
493 (gfc_get_class_array_ref): Make static.
494 (gfc_finish_interface_mapping): Make static.
495 * trans-types.c (gfc_check_any_c_kind): Delete.
496 (pfunc_type_node, dtype_type_node, gfc_get_ppc_type): Make static.
497 * trans-types.h (gfc_get_ppc_type): Delete declaration.
498 * trans.c (gfc_msg_wrong_return): Delete.
499 * trans.h (gfc_class_len_or_zero_get, gfc_class_vtab_extends_get,
500 gfc_vptr_extends_get, gfc_get_class_array_ref, gfc_get_character_len,
501 gfc_finish_interface_mapping, gfc_msg_wrong_return,
502 gfc_get_function_decl): Delete declaration.
504 2021-10-27 Tobias Burnus <tobias@codesourcery.com>
506 * trans-stmt.c (gfc_trans_select_rank_cases): Fix condition
507 for allocatables/pointers.
509 2021-10-26 Harald Anlauf <anlauf@gmx.de>
512 * symbol.c (gfc_check_conflict): Add conflict check for PDT KIND
513 and LEN type parameters.
515 2021-10-26 Harald Anlauf <anlauf@gmx.de>
518 * decl.c (match_attr_spec): Remove invalid integer kind checks on
519 KIND and LEN attributes of PDTs.
521 2021-10-26 Harald Anlauf <anlauf@gmx.de>
524 * resolve.c (resolve_structure_cons): Reject invalid array spec of
525 a DT component referenced in a structure constructor.
527 2021-10-26 Tobias Burnus <tobias@codesourcery.com>
530 * trans-decl.c (gfc_conv_cfi_to_gfc): Properly handle nonconstant
533 2021-10-25 Andrew MacLeod <amacleod@redhat.com>
535 * trans-decl.c (gfc_conv_cfi_to_gfc): Initialize rank to NULL_TREE.
537 2021-10-22 Eric Gallager <egallager@gcc.gnu.org>
540 * Make-lang.in: Allow dvi-formatted documentation
543 2021-10-22 Tobias Burnus <tobias@codesourcery.com>
546 * trans-expr.c (gfc_trans_assignment_1): Add STRIP_NOPS.
548 2021-10-21 Chung-Lin Tang <cltang@codesourcery.com>
550 * decl.c (gfc_match_end): Add COMP_OMP_STRICTLY_STRUCTURED_BLOCK case
551 together with COMP_BLOCK.
552 * parse.c (parse_omp_structured_block): Change return type to
553 'gfc_statement', add handling for strictly-structured block case, adjust
554 recursive calls to parse_omp_structured_block.
555 (parse_executable): Adjust calls to parse_omp_structured_block.
556 * parse.h (enum gfc_compile_state): Add
557 COMP_OMP_STRICTLY_STRUCTURED_BLOCK.
558 * trans-openmp.c (gfc_trans_omp_workshare): Add EXEC_BLOCK case
561 2021-10-21 Sandra Loosemore <sandra@codesourcery.com>
564 * expr.c (gfc_simplify_expr): Handle GFC_ISYM_SHAPE along with
565 GFC_ISYM_LBOUND and GFC_ISYM_UBOUND.
566 * trans-array.c (gfc_conv_ss_startstride): Likewise.
567 (set_loop_bounds): Likewise.
568 * trans-intrinsic.c (gfc_trans_intrinsic_bound): Extend to
569 handle SHAPE. Correct logic for zero-size special cases and
570 detecting assumed-rank arrays associated with an assumed-size
572 (gfc_conv_intrinsic_shape): Deleted.
573 (gfc_conv_intrinsic_function): Handle GFC_ISYM_SHAPE like
574 GFC_ISYM_LBOUND and GFC_ISYM_UBOUND.
575 (gfc_add_intrinsic_ss_code): Likewise.
576 (gfc_walk_intrinsic_bound): Likewise.
578 2021-10-20 Chung-Lin Tang <cltang@codesourcery.com>
580 * openmp.c (gfc_match_omp_clause_reduction): Add 'openmp_target' default
581 false parameter. Add 'always,tofrom' map for OMP_LIST_IN_REDUCTION case.
582 (gfc_match_omp_clauses): Add 'openmp_target' default false parameter,
583 adjust call to gfc_match_omp_clause_reduction.
584 (match_omp): Adjust call to gfc_match_omp_clauses
585 * trans-openmp.c (gfc_trans_omp_taskgroup): Add call to
586 gfc_match_omp_clause, create and return block.
588 2021-10-19 Tobias Burnus <tobias@codesourcery.com>
590 * trans-types.c (create_fn_spec): For allocatable/pointer
591 character(len=:), use 'w' not 'R' as fn spec for the length dummy
594 2021-10-19 Tobias Burnus <tobias@codesourcery.com>
597 * trans-expr.c (gfc_conv_procedure_call): Use TREE_OPERAND not
598 build_fold_indirect_ref_loc to undo an ADDR_EXPR.
600 2021-10-18 Tobias Burnus <tobias@codesourcery.com>
609 * decl.c (gfc_verify_c_interop_param): Remove 'sorry' for
610 scalar allocatable/pointer and len=*.
611 * expr.c (is_CFI_desc): Return true for for those.
612 * gfortran.h (CFI_type_kind_shift, CFI_type_mask,
613 CFI_type_from_type_kind, CFI_VERSION, CFI_MAX_RANK,
614 CFI_attribute_pointer, CFI_attribute_allocatable,
615 CFI_attribute_other, CFI_type_Integer, CFI_type_Logical,
616 CFI_type_Real, CFI_type_Complex, CFI_type_Character,
617 CFI_type_ucs4_char, CFI_type_struct, CFI_type_cptr,
618 CFI_type_cfunptr, CFI_type_other): New #define.
619 * trans-array.c (CFI_FIELD_BASE_ADDR, CFI_FIELD_ELEM_LEN,
620 CFI_FIELD_VERSION, CFI_FIELD_RANK, CFI_FIELD_ATTRIBUTE,
621 CFI_FIELD_TYPE, CFI_FIELD_DIM, CFI_DIM_FIELD_LOWER_BOUND,
622 CFI_DIM_FIELD_EXTENT, CFI_DIM_FIELD_SM,
623 gfc_get_cfi_descriptor_field, gfc_get_cfi_desc_base_addr,
624 gfc_get_cfi_desc_elem_len, gfc_get_cfi_desc_version,
625 gfc_get_cfi_desc_rank, gfc_get_cfi_desc_type,
626 gfc_get_cfi_desc_attribute, gfc_get_cfi_dim_item,
627 gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm):
628 New define/functions to access the CFI array descriptor.
629 (gfc_conv_descriptor_type): New function for the GFC descriptor.
630 (gfc_get_array_span): Handle expr of CFI descriptors and
631 assumed-type descriptors.
632 (gfc_trans_array_bounds): Remove 'static'.
633 (gfc_conv_expr_descriptor): For assumed type, use the dtype of
635 (structure_alloc_comps): Remove ' ' inside tabs.
636 * trans-array.h (gfc_trans_array_bounds, gfc_conv_descriptor_type,
637 gfc_get_cfi_desc_base_addr, gfc_get_cfi_desc_elem_len,
638 gfc_get_cfi_desc_version, gfc_get_cfi_desc_rank,
639 gfc_get_cfi_desc_type, gfc_get_cfi_desc_attribute,
640 gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm):
642 * trans-decl.c (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi):
644 (gfc_build_builtin_function_decls): Remove their initialization.
645 (gfc_get_symbol_decl, create_function_arglist,
646 gfc_trans_deferred_vars): Update for CFI.
647 (convert_CFI_desc): Remove and replace by ...
648 (gfc_conv_cfi_to_gfc): ... this function
649 (gfc_generate_function_code): Call it; create local GFC var for CFI.
650 * trans-expr.c (gfc_maybe_dereference_var): Handle CFI.
651 (gfc_conv_subref_array_arg): Handle the if-noncontigous-only copy in
652 when the result should be a descriptor.
653 (gfc_conv_gfc_desc_to_cfi_desc): Completely rewritten.
654 (gfc_conv_procedure_call): CFI fixes.
655 * trans-openmp.c (gfc_omp_is_optional_argument,
656 gfc_omp_check_optional_argument): Handle optional
658 * trans-stmt.c (gfc_trans_select_rank_cases): Cleanup, avoid invalid
659 code for allocatable/pointer dummies, which cannot be assumed size.
660 * trans-types.c (gfc_cfi_descriptor_base): New global var.
661 (gfc_get_dtype_rank_type): Skip rank init for rank < 0.
662 (gfc_sym_type): Handle CFI dummies.
663 (gfc_get_function_type): Update call.
664 (gfc_get_cfi_dim_type, gfc_get_cfi_type): New.
665 * trans-types.h (gfc_sym_type): Update prototype.
666 (gfc_get_cfi_type): New prototype.
667 * trans.c (gfc_trans_runtime_check): Make conditions more consistent
668 to avoid '<logical> AND_THEN <long int>' in conditions.
669 * trans.h (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi): Remove
670 global-var declaration.
672 2021-10-18 Tobias Burnus <tobias@codesourcery.com>
675 * intrinsic.c (gfc_convert_type_warn): Fix checks by checking CLASS
676 and do typcheck in correct order for type extension.
677 * misc.c (gfc_typename): Print proper not internal CLASS type name.
679 2021-10-15 Harald Anlauf <anlauf@gmx.de>
680 Tobias Burnus <tobias@codesourcery.com>
683 * decl.c (match_clist_expr): Set rank/shape of clist initializer
685 * resolve.c (resolve_structure_cons): In a structure constructor,
686 compare shapes of array components against declared shape.
688 2021-10-14 Harald Anlauf <anlauf@gmx.de>
691 * simplify.c (gfc_simplify_reshape): Replace assert by error
692 message for negative elements in SHAPE array.
694 2021-10-14 Harald Anlauf <anlauf@gmx.de>
697 * check.c (gfc_check_shape): Reorder checks so that invalid KIND
698 arguments can be detected.
700 2021-10-14 Kwok Cheung Yeung <kcy@codesourcery.com>
702 * gfortran.h (enum gfc_statement): Add ST_OMP_DECLARE_VARIANT.
703 (enum gfc_omp_trait_property_kind): New.
704 (struct gfc_omp_trait_property): New.
705 (gfc_get_omp_trait_property): New macro.
706 (struct gfc_omp_selector): New.
707 (gfc_get_omp_selector): New macro.
708 (struct gfc_omp_set_selector): New.
709 (gfc_get_omp_set_selector): New macro.
710 (struct gfc_omp_declare_variant): New.
711 (gfc_get_omp_declare_variant): New macro.
712 (struct gfc_namespace): Add omp_declare_variant field.
713 (gfc_free_omp_declare_variant_list): New prototype.
714 * match.h (gfc_match_omp_declare_variant): New prototype.
715 * openmp.c (gfc_free_omp_trait_property_list): New.
716 (gfc_free_omp_selector_list): New.
717 (gfc_free_omp_set_selector_list): New.
718 (gfc_free_omp_declare_variant_list): New.
719 (gfc_match_omp_clauses): Add extra optional argument. Handle end of
720 clauses for context selectors.
721 (omp_construct_selectors, omp_device_selectors,
722 omp_implementation_selectors, omp_user_selectors): New.
723 (gfc_match_omp_context_selector): New.
724 (gfc_match_omp_context_selector_specification): New.
725 (gfc_match_omp_declare_variant): New.
726 * parse.c: Include tree-core.h and omp-general.h.
727 (decode_omp_directive): Handle 'declare variant'.
728 (case_omp_decl): Include ST_OMP_DECLARE_VARIANT.
729 (gfc_ascii_statement): Handle ST_OMP_DECLARE_VARIANT.
730 (gfc_parse_file): Initialize omp_requires_mask.
731 * symbol.c (gfc_free_namespace): Call
732 gfc_free_omp_declare_variant_list.
733 * trans-decl.c (gfc_get_extern_function_decl): Call
734 gfc_trans_omp_declare_variant.
735 (gfc_create_function_decl): Call gfc_trans_omp_declare_variant.
736 * trans-openmp.c (gfc_trans_omp_declare_variant): New.
737 * trans-stmt.h (gfc_trans_omp_declare_variant): New prototype.
739 2021-10-13 Tobias Burnus <tobias@codesourcery.com>
741 * dump-parse-tree.c (show_omp_clauses): Handle ancestor modifier,
742 avoid ICE for GFC_OMP_ATOMIC_SWAP.
743 * gfortran.h (gfc_omp_clauses): Change 'anecestor' into a bitfield.
745 2021-10-12 Tobias Burnus <tobias@codesourcery.com>
748 * check.c (gfc_check_present): Handle optional CLASS.
749 * interface.c (gfc_compare_actual_formal): Likewise.
750 * trans-array.c (gfc_trans_g77_array): Likewise.
751 * trans-decl.c (gfc_build_dummy_array_decl): Likewise.
752 * trans-types.c (gfc_sym_type): Likewise.
753 * primary.c (gfc_variable_attr): Fixes for dummy and
754 pointer when 'class%_data' is passed.
755 * trans-expr.c (set_dtype_for_unallocated, gfc_conv_procedure_call):
756 For assumed-rank dummy, fix setting rank for dealloc/notassoc actual
757 and setting ubound to -1 for assumed-size actuals.
759 2021-10-10 Harald Anlauf <anlauf@gmx.de>
763 * decl.c (add_init_expr_to_sym): Extend initialization of
764 parameter arrays from scalars to handle derived types.
766 2021-10-09 Harald Anlauf <anlauf@gmx.de>
769 * module.c (read_module): Handle old and new-style relational
770 operators when used in USE module, ONLY: OPERATOR(op).
772 2021-10-08 Sandra Loosemore <sandra@codesourcery.com>
775 * interface.c (gfc_compare_actual_formal): Add diagnostic
776 for F2018:C839. Refactor shared code and fix bugs with class
777 array info lookup, and extend similar diagnostic from PR94110
778 to also cover class types.
780 2021-10-08 Martin Liska <mliska@suse.cz>
782 * options.c (gfc_post_options): Use new macro
785 2021-10-06 Tobias Burnus <tobias@codesourcery.com>
787 * resolve.c (resolve_values): Only show
788 deprecated warning if attr.referenced.
790 2021-10-04 Tobias Burnus <tobias@codesourcery.com>
793 * resolve.c (can_generate_init, resolve_fl_variable_derived,
794 resolve_symbol): Only do initialization with intent(out) if not
795 inside of an interface block.
797 2021-10-01 Martin Sebor <msebor@redhat.com>
800 * array.c: Remove an unnecessary test.
801 * trans-array.c: Same.
803 2021-10-01 Jakub Jelinek <jakub@redhat.com>
805 * gfortran.h (gfc_omp_clauses): Add order_reproducible bitfield.
806 * dump-parse-tree.c (show_omp_clauses): Print REPRODUCIBLE: for it.
807 * openmp.c (gfc_match_omp_clauses): Set order_reproducible for
808 explicit reproducible: modifier.
809 * trans-openmp.c (gfc_trans_omp_clauses): Set
810 OMP_CLAUSE_ORDER_REPRODUCIBLE for order_reproducible.
811 (gfc_split_omp_clauses): Also copy order_reproducible.
813 2021-09-30 Harald Anlauf <anlauf@gmx.de>
816 * simplify.c (simplify_size): Resolve expressions used in array
817 specifications so that SIZE can be simplified.
819 2021-09-30 Harald Anlauf <anlauf@gmx.de>
821 * expr.c: The correct reference to Fortran standard is: F2018:10.1.12.
823 2021-09-30 Tobias Burnus <tobias@codesourcery.com>
827 * trans-intrinsic.c (gfc_conv_same_type_as): Fix handling
829 * trans.h (gfc_vtpr_hash_get): Renamed prototype to ...
830 (gfc_vptr_hash_get): ... this to match function name.
832 2021-09-29 Harald Anlauf <anlauf@gmx.de>
835 * array.c (expand_constructor): Do not dereference NULL pointer.
837 2021-09-27 Tobias Burnus <tobias@codesourcery.com>
840 * trans-array.c (gfc_tree_array_size): New function to
841 find size inline (whole array or one dimension).
842 (array_parameter_size): Use it, take stmt_block as arg.
843 (gfc_conv_array_parameter): Update call.
844 * trans-array.h (gfc_tree_array_size): Add prototype.
845 * trans-decl.c (gfor_fndecl_size0, gfor_fndecl_size1): Remove
847 (gfc_build_intrinsic_function_decls): Remove their initialization.
848 * trans-expr.c (gfc_conv_procedure_call): Update
849 bounds of pointer/allocatable actual args to nonallocatable/nonpointer
850 dummies to be one based.
851 * trans-intrinsic.c (gfc_conv_intrinsic_shape): Fix case for
852 assumed rank with allocatable/pointer dummy.
853 (gfc_conv_intrinsic_size): Update to use inline function.
854 * trans.h (gfor_fndecl_size0, gfor_fndecl_size1): Remove var decl.
856 2021-09-26 Tobias Burnus <tobias@codesourcery.com>
859 * trans-intrinsic.c (gfc_conv_associated): Support assumed-rank
860 'pointer' with scalar/array 'target' argument.
862 2021-09-24 Harald Anlauf <anlauf@gmx.de>
865 * expr.c (is_non_constant_intrinsic): Check for intrinsics
866 excluded in constant expressions (F2018:10.1.2).
867 (gfc_is_constant_expr): Use that check.
869 2021-09-24 Sandra Loosemore <sandra@codesourcery.com>
872 * interface.c (compare_parameter): Enforce F2018 C711.
874 2021-09-24 Tobias Burnus <tobias@codesourcery.com>
877 * scanner.c (load_file): Return void, call (gfc_)fatal_error for
879 (include_line, include_stmt, gfc_new_file): Remove exit call
880 for failed load_file run.
882 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
885 * decl.c (gfc_verify_c_interop_param): Handle F2018 C1557,
888 2021-09-23 Harald Anlauf <anlauf@gmx.de>
889 Tobias Burnus <tobias@codesourcery.com>
892 * trans-intrinsic.c (gfc_conv_allocated): Cleanup. Handle
893 coindexed scalar coarrays.
895 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
898 * interface.c (gfc_compare_actual_formal): Extend existing
899 assumed-type diagnostic to also check for argument with type
902 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
905 * check.c (gfc_check_associated): Allow an assumed-rank
906 array for the pointer argument.
907 * interface.c (compare_parameter): Also give rank mismatch
908 error on assumed-rank array.
910 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
912 * trans-stmt.c (trans_associate_var): Check that result of
913 GFC_DECL_SAVED_DESCRIPTOR is not null before using it.
915 2021-09-22 Tobias Burnus <tobias@codesourcery.com>
918 * cpp.c (gfc_cpp_register_include_paths, gfc_cpp_post_options):
919 Add new bool verbose_missing_dir_warn argument.
920 * cpp.h (gfc_cpp_post_options): Update prototype.
921 * f95-lang.c (gfc_init): Remove duplicated file-not found diag.
922 * gfortran.h (gfc_check_include_dirs): Takes bool
923 verbose_missing_dir_warn arg.
924 (gfc_new_file): Returns now void.
925 * options.c (gfc_post_options): Update to warn for -I and -J,
926 only, by default but for all when user requested.
927 * scanner.c (gfc_do_check_include_dir):
928 (gfc_do_check_include_dirs, gfc_check_include_dirs): Take bool
929 verbose warn arg and update to avoid printing the same message
931 (load_file): Fix indent.
932 (gfc_new_file): Return void and exit when load_file failed
933 as all other load_file users do.
935 2021-09-22 Tobias Burnus <tobias@codesourcery.com>
937 * trans-expr.c (gfc_simple_for_loop): New.
938 * trans.h (gfc_simple_for_loop): New prototype.
940 2021-09-21 Tobias Burnus <tobias@codesourcery.com>
943 * cpp.c: Define GCC_C_COMMON_C for #include "options.h" to make
944 cpp_reason_option_codes available.
945 (gfc_cpp_register_include_paths): Make static, set pfile's
946 warn_missing_include_dirs and move before caller.
947 (gfc_cpp_init_cb): New, cb code moved from ...
948 (gfc_cpp_init_0): ... here.
949 (gfc_cpp_post_options): Call gfc_cpp_init_cb.
950 (cb_cpp_diagnostic_cpp_option): New. As implemented in c-family
951 to match CppReason flags to -W... names.
952 (cb_cpp_diagnostic): Use it to replace single special case.
953 * cpp.h (gfc_cpp_register_include_paths): Remove as now static.
954 * gfortran.h (gfc_check_include_dirs): New prototype.
955 (gfc_add_include_path): Add new bool arg.
956 * options.c (gfc_init_options): Don't set -Wmissing-include-dirs.
957 (gfc_post_options): Set it here after commandline processing. Call
958 gfc_add_include_path with defer_warn=false.
959 (gfc_handle_option): Call it with defer_warn=true.
960 * scanner.c (gfc_do_check_include_dir, gfc_do_check_include_dirs,
961 gfc_check_include_dirs): New. Diagnostic moved from ...
962 (add_path_to_list): ... here, which came before cmdline processing.
963 Take additional bool defer_warn argument.
964 (gfc_add_include_path): Take additional defer_warn arg.
965 * scanner.h (struct gfc_directorylist): Reorder for alignment issues,
968 2021-09-20 Tobias Burnus <tobias@codesourcery.com>
970 * gfortran.h (gfc_omp_clauses): Add order_unconstrained.
971 * dump-parse-tree.c (show_omp_clauses): Dump it.
972 * openmp.c (gfc_match_omp_clauses): Match unconstrained/reproducible
973 modifiers to ordered(concurrent).
974 (OMP_DISTRIBUTE_CLAUSES): Accept ordered clause.
975 (resolve_omp_clauses): Reject ordered + order on same directive.
976 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): Pass
977 on unconstrained modifier of ordered(concurrent).
979 2021-09-17 Harald Anlauf <anlauf@gmx.de>
982 * trans-decl.c (gfc_finish_var_decl): Disable the warning message
983 for variables moved from stack to static storange if they are
984 declared in the main, but allow the move to happen.
986 2021-09-17 Sandra Loosemore <sandra@codesourcery.com>
988 * intrinsic.texi (ISO_C_BINDING): Change C_FLOAT128 to correspond
989 to _Float128 rather than __float128.
990 * iso-c-binding.def (c_float128): Update comments.
991 * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Likewise.
992 (build_round_expr): Likewise.
993 (gfc_build_intrinsic_lib_fndcecls): Likewise.
994 * trans-types.h (gfc_real16_is_float128): Likewise.
996 2021-09-16 Harald Anlauf <anlauf@gmx.de>
999 * trans-expr.c (gfc_conv_procedure_call): Wrap deallocation of
1000 allocatable components of optional allocatable derived type
1001 procedure arguments with INTENT(OUT) into a presence check.
1003 2021-09-14 Harald Anlauf <anlauf@gmx.de>
1006 * resolve.c (resolve_entries): Attempt to recover cleanly after
1007 rejecting mismatched function entries.
1009 2021-09-14 Tobias Burnus <tobias@codesourcery.com>
1012 * parse.c (gfc_ascii_statement): Add missing ST_OMP_END_SCOPE.
1014 2021-09-13 Harald Anlauf <anlauf@gmx.de>
1017 * decl.c (add_init_expr_to_sym): For proper initialization of
1018 array-valued named constants the array bounds need to be
1019 simplified before adding the initializer.
1021 2021-09-13 Harald Anlauf <anlauf@gmx.de>
1024 * expr.c (find_substring_ref): Handle given substring start and
1025 end indices as signed integers, not unsigned.
1027 2021-09-09 Harald Anlauf <anlauf@gmx.de>
1030 * trans-expr.c (gfc_conv_substring): Do not generate substring
1031 bounds check for implied do loop index variable before it actually
1034 2021-09-08 liuhongt <hongtao.liu@intel.com>
1036 * options.c (gfc_post_options): Issue an error for
1037 -fexcess-precision=16.
1039 2021-09-07 Harald Anlauf <anlauf@gmx.de>
1042 * expr.c (find_array_element): When bounds cannot be determined as
1043 constant, return error instead of aborting.
1045 2021-09-07 Marcel Vollweiler <marcel@codesourcery.com>
1047 * openmp.c (gfc_match_omp_flush): Parse 'seq_cst' clause on 'flush'
1049 * trans-openmp.c (gfc_trans_omp_flush): Handle OMP_MEMORDER_SEQ_CST.
1051 2021-09-03 Tobias Burnus <tobias@codesourcery.com>
1053 * decl.c (gfc_verify_c_interop_param): Reject pointer with
1054 CONTIGUOUS attributes as dummy arg. Reject character len > 1
1055 when passed as byte stream.
1057 2021-09-01 Harald Anlauf <anlauf@gmx.de>
1060 * resolve.c (resolve_common_vars): Fix grammar and improve wording
1061 of error message rejecting an unlimited polymorphic in COMMON.
1063 2021-08-31 Harald Anlauf <anlauf@gmx.de>
1066 * simplify.c (substring_has_constant_len): Minimize checks for
1067 substring expressions being allowed.
1069 2021-08-31 Marcel Vollweiler <marcel@codesourcery.com>
1071 * gfortran.h: Add variable for 'ancestor' in struct gfc_omp_clauses.
1072 * openmp.c (gfc_match_omp_clauses): Parse device-modifiers 'device_num'
1073 and 'ancestor' in 'target device' clauses.
1074 * trans-openmp.c (gfc_trans_omp_clauses): Set OMP_CLAUSE_DEVICE_ANCESTOR.
1076 2021-08-30 Harald Anlauf <anlauf@gmx.de>
1079 * match.c (gfc_match_goto): Allow for whitespace in parsing list
1082 2021-08-30 Harald Anlauf <anlauf@gmx.de>
1085 * resolve.c (resolve_allocate_expr): An unlimited polymorphic
1086 argument to ALLOCATE must be ALLOCATABLE or a POINTER. Fix the
1087 corresponding check.
1089 2021-08-28 Harald Anlauf <anlauf@gmx.de>
1092 * resolve.c (resolve_entries): For functions of type CHARACTER
1093 tighten the checks for matching characteristics.
1095 2021-08-25 Lewis Hyatt <lhyatt@gmail.com>
1098 * cpp.c (gfc_cpp_post_options): Call new function
1099 diagnostic_initialize_input_context().
1101 2021-08-24 Harald Anlauf <anlauf@gmx.de>
1104 * trans-decl.c (gfc_finish_var_decl): Adjust check to handle
1105 implicit SAVE as well as variables in the main program. Improve
1106 warning message text.
1108 2021-08-23 Tobias Burnus <tobias@codesourcery.com>
1110 * openmp.c (gfc_match_dupl_check, gfc_match_dupl_memorder,
1111 gfc_match_dupl_atomic): New.
1112 (gfc_match_omp_clauses): Use them; remove duplicate
1113 'release'/'relaxed' clause matching; improve error dignostic
1116 2021-08-23 Tobias Burnus <tobias@codesourcery.com>
1118 * dump-parse-tree.c (show_omp_clauses): Handle 'strict' modifier
1119 on grainsize/num_tasks
1120 * gfortran.h (gfc_omp_clauses): Add grainsize_strict
1121 and num_tasks_strict.
1122 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
1123 Handle 'strict' modifier on grainsize/num_tasks.
1124 * openmp.c (gfc_match_omp_clauses): Likewise.
1126 2021-08-20 Tobias Burnus <tobias@codesourcery.com>
1129 (error_uinteger): Take 'long long unsigned' instead
1130 of 'long unsigned' as argumpent.
1131 (error_integer): Take 'long long' instead of 'long'.
1132 (error_hwuint, error_hwint): New.
1133 (error_print): Update to handle 'll' and 'w'
1135 * simplify.c (substring_has_constant_len): Use '%wd'
1138 2021-08-20 Harald Anlauf <anlauf@gmx.de>
1141 * simplify.c (substring_has_constant_len): Fix format string of
1142 gfc_error, pass HOST_WIDE_INT bounds values via char buffer.
1144 2021-08-20 Tobias Burnus <tobias@codesourcery.com>
1146 * dump-parse-tree.c (show_omp_clauses): Handle 'at', 'severity'
1147 and 'message' clauses.
1148 (show_omp_node, show_code_node): Handle EXEC_OMP_ERROR.
1149 * gfortran.h (gfc_statement): Add ST_OMP_ERROR.
1150 (gfc_omp_severity_type, gfc_omp_at_type): New.
1151 (gfc_omp_clauses): Add 'at', 'severity' and 'message' clause;
1152 use more bitfields + ENUM_BITFIELD.
1153 (gfc_exec_op): Add EXEC_OMP_ERROR.
1154 * match.h (gfc_match_omp_error): New.
1155 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_(AT,SEVERITY,MESSAGE).
1156 (gfc_match_omp_clauses): Handle new clauses.
1157 (OMP_ERROR_CLAUSES, gfc_match_omp_error): New.
1158 (resolve_omp_clauses): Resolve new clauses.
1159 (omp_code_to_statement, gfc_resolve_omp_directive): Handle
1161 * parse.c (decode_omp_directive, next_statement,
1162 gfc_ascii_statement): Handle 'omp error'.
1163 * resolve.c (gfc_resolve_blocks): Likewise.
1164 * st.c (gfc_free_statement): Likewise.
1165 * trans-openmp.c (gfc_trans_omp_error): Likewise.
1166 (gfc_trans_omp_directive): Likewise.
1167 * trans.c (trans_code): Likewise.
1169 2021-08-20 Jakub Jelinek <jakub@redhat.com>
1171 * types.def (BT_FN_VOID_CONST_PTR_SIZE): New DEF_FUNCTION_TYPE_2.
1172 * f95-lang.c (ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST): Define.
1174 2021-08-19 Harald Anlauf <anlauf@gmx.de>
1177 * simplify.c (substring_has_constant_len): New.
1178 (gfc_simplify_len): Handle case of substrings with constant
1181 2021-08-18 Tobias Burnus <tobias@codesourcery.com>
1183 * match.h (gfc_match_omp_nothing): New.
1184 * openmp.c (gfc_match_omp_nothing): New.
1185 * parse.c (decode_omp_directive): Match 'nothing' directive.
1187 2021-08-17 Tobias Burnus <tobias@codesourcery.com>
1189 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
1191 * gfortran.h (enum gfc_statement): Add ST_OMP_(END_)SCOPE.
1192 (enum gfc_exec_op): Add EXEC_OMP_SCOPE.
1193 * match.h (gfc_match_omp_scope): New.
1194 * openmp.c (OMP_SCOPE_CLAUSES): Define
1195 (gfc_match_omp_scope): New.
1196 (gfc_match_omp_cancellation_point, gfc_match_omp_end_nowait):
1197 Improve error diagnostic.
1198 (omp_code_to_statement): Handle ST_OMP_SCOPE.
1199 (gfc_resolve_omp_directive): Handle EXEC_OMP_SCOPE.
1200 * parse.c (decode_omp_directive, next_statement,
1201 gfc_ascii_statement, parse_omp_structured_block,
1202 parse_executable): Handle OpenMP's scope construct.
1203 * resolve.c (gfc_resolve_blocks): Likewise
1204 * st.c (gfc_free_statement): Likewise
1205 * trans-openmp.c (gfc_trans_omp_scope): New.
1206 (gfc_trans_omp_directive): Call it.
1207 * trans.c (trans_code): handle EXEC_OMP_SCOPE.
1209 2021-08-16 Tobias Burnus <tobias@codesourcery.com>
1211 * dump-parse-tree.c (show_omp_clauses): Handle 'filter' clause.
1212 (show_omp_node, show_code_node): Handle (combined) omp masked construct.
1213 * frontend-passes.c (gfc_code_walker): Likewise.
1214 * gfortran.h (enum gfc_statement): Add ST_OMP_*_MASKED*.
1215 (enum gfc_exec_op): Add EXEC_OMP_*_MASKED*.
1216 * match.h (gfc_match_omp_masked, gfc_match_omp_masked_taskloop,
1217 gfc_match_omp_masked_taskloop_simd, gfc_match_omp_parallel_masked,
1218 gfc_match_omp_parallel_masked_taskloop,
1219 gfc_match_omp_parallel_masked_taskloop_simd): New prototypes.
1220 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_FILTER.
1221 (gfc_match_omp_clauses): Match it.
1222 (OMP_MASKED_CLAUSES, gfc_match_omp_parallel_masked,
1223 gfc_match_omp_parallel_masked_taskloop,
1224 gfc_match_omp_parallel_masked_taskloop_simd,
1225 gfc_match_omp_masked, gfc_match_omp_masked_taskloop,
1226 gfc_match_omp_masked_taskloop_simd): New.
1227 (resolve_omp_clauses): Resolve filter clause.
1228 (gfc_resolve_omp_parallel_blocks, resolve_omp_do,
1229 omp_code_to_statement, gfc_resolve_omp_directive): Handle
1230 omp masked constructs.
1231 * parse.c (decode_omp_directive, case_exec_markers,
1232 gfc_ascii_statement, parse_omp_do, parse_omp_structured_block,
1233 parse_executable): Likewise.
1234 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
1235 * st.c (gfc_free_statement): Likewise.
1236 * trans-openmp.c (gfc_trans_omp_clauses): Handle filter clause.
1237 (GFC_OMP_SPLIT_MASKED, GFC_OMP_MASK_MASKED): New enum values.
1238 (gfc_trans_omp_masked): New.
1239 (gfc_split_omp_clauses): Handle combined masked directives.
1240 (gfc_trans_omp_master_taskloop): Rename to ...
1241 (gfc_trans_omp_master_masked_taskloop): ... this; handle also
1242 combined masked directives.
1243 (gfc_trans_omp_parallel_master): Rename to ...
1244 (gfc_trans_omp_parallel_master_masked): ... this; handle
1245 combined masked directives.
1246 (gfc_trans_omp_directive): Handle EXEC_OMP_*_MASKED*.
1247 * trans.c (trans_code): Likewise.
1249 2021-08-15 Harald Anlauf <anlauf@gmx.de>
1252 * match.c (sync_statement): Replace %v code by %e in gfc_match to
1253 allow for function references as STAT and ERRMSG arguments.
1254 * resolve.c (resolve_sync): Adjust checks of STAT= and ERRMSG= to
1255 being definable arguments. Function references with a data
1256 pointer result are accepted.
1257 * trans-stmt.c (gfc_trans_sync): Adjust assertion.
1259 2021-08-12 Tobias Burnus <tobias@codesourcery.com>
1261 * gfortran.h (gfc_omp_proc_bind_kind): Add OMP_PROC_BIND_PRIMARY.
1262 * dump-parse-tree.c (show_omp_clauses): Add TODO comment to
1263 change 'master' to 'primary' in proc_bind for OpenMP 5.1.
1264 * intrinsic.texi (OMP_LIB): Mention OpenMP 5.1; add
1265 omp_proc_bind_primary.
1266 * openmp.c (gfc_match_omp_clauses): Accept
1267 'primary' as alias for 'master'.
1268 * trans-openmp.c (gfc_trans_omp_clauses): Handle
1269 OMP_PROC_BIND_PRIMARY.
1271 2021-08-11 Sandra Loosemore <sandra@codesourcery.com>
1273 * iso-c-binding.def (c_float128, c_float128_complex): Check
1274 float128_type_node instead of gfc_float128_type_node.
1275 * trans-types.c (gfc_init_kinds, gfc_build_real_type):
1276 Update comments re supported 128-bit floating-point types.
1278 2021-08-11 Richard Biener <rguenther@suse.de>
1280 * trans-common.c (create_common): Set TREE_THIS_VOLATILE on the
1281 COMPONENT_REF if the field is volatile.
1283 2021-08-07 Harald Anlauf <anlauf@gmx.de>
1286 * primary.c (gfc_expr_attr): Variable attribute can only be
1287 inquired when symtree is non-NULL.
1289 2021-07-28 Harald Anlauf <anlauf@gmx.de>
1292 * expr.c (gfc_check_vardef_context): Add check for KIND and LEN
1293 parameter inquiries.
1294 * match.c (gfc_match): Fix comment for %v code.
1295 (gfc_match_allocate, gfc_match_deallocate): Replace use of %v code
1296 by %e in gfc_match to allow for function references as STAT and
1298 * resolve.c (resolve_allocate_deallocate): Avoid NULL pointer
1299 dereferences and shortcut for bad STAT and ERRMSG argument to
1300 (DE)ALLOCATE. Remove bogus parts of checks for STAT and ERRMSG.
1302 2021-07-26 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1303 Tobias Burnus <tobias@codesourcery.com>
1310 * trans-decl.c (convert_CFI_desc): Only copy out the descriptor
1312 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Updated attribute
1313 handling which reflect a previous intermediate version of the
1314 standard. Only copy out the descriptor if necessary.
1316 2021-07-23 Harald Anlauf <anlauf@gmx.de>
1319 * check.c (array_check): Adjust check for the case of CLASS
1322 2021-07-21 Thomas Schwinge <thomas@codesourcery.com>
1323 Joseph Myers <joseph@codesourcery.com>
1324 Cesar Philippidis <cesar@codesourcery.com>
1326 * dump-parse-tree.c (show_attr): Update.
1327 * gfortran.h (symbol_attribute): Add 'oacc_routine_nohost' member.
1328 (gfc_omp_clauses): Add 'nohost' member.
1329 * module.c (ab_attribute): Add 'AB_OACC_ROUTINE_NOHOST'.
1330 (attr_bits, mio_symbol_attribute): Update.
1331 * openmp.c (omp_mask2): Add 'OMP_CLAUSE_NOHOST'.
1332 (gfc_match_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'.
1333 (OACC_ROUTINE_CLAUSES): Add 'OMP_CLAUSE_NOHOST'.
1334 (gfc_match_oacc_routine): Update.
1335 * trans-decl.c (add_attributes_to_decl): Update.
1336 * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
1338 2021-07-21 Harald Anlauf <anlauf@gmx.de>
1341 * target-memory.c (gfc_interpret_derived): Size of array component
1342 of derived type can only be computed here for explicit shape.
1343 * trans-types.c (gfc_get_nodesc_array_type): Do not dereference
1346 2021-07-21 Tobias Burnus <tobias@codesourcery.com>
1348 * decl.c (gfc_verify_c_interop_param): Update for F2008 + F2018
1349 changes; reject unsupported bits with 'Error: Sorry,'.
1350 * trans-expr.c (gfc_conv_procedure_call): Fix condition to
1351 For using CFI descriptor with characters.
1353 2021-07-18 Harald Anlauf <anlauf@gmx.de>
1356 * io.c (resolve_tag_format): Extend FORMAT check to unknown type.
1358 2021-07-14 Harald Anlauf <anlauf@gmx.de>
1361 * trans-expr.c (gfc_trans_class_init_assign): Call
1362 gfc_conv_expr_present only for dummy variables.
1364 2021-07-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1367 * frontend-passes.c (traverse_io_block): Adjust test for
1368 when a variable is eligible for the transformation to
1371 2021-06-28 Martin Sebor <msebor@redhat.com>
1373 * trans-array.c (trans_array_constructor): Replace direct uses
1374 of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning.
1375 * trans-decl.c (gfc_build_qualified_array): Same.
1376 (gfc_build_dummy_array_decl): Same.
1377 (generate_local_decl): Same.
1378 (gfc_generate_function_code): Same.
1379 * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
1380 (gfc_omp_clause_copy_ctor): Same.
1381 * trans-types.c (get_dtype_type_node): Same.
1382 (gfc_get_desc_dim_type): Same.
1383 (gfc_get_array_descriptor_base): Same.
1384 (gfc_get_caf_vector_type): Same.
1385 (gfc_get_caf_reference_type): Same.
1386 * trans.c (gfc_create_var_np): Same.
1388 2021-06-23 Tobias Burnus <tobias@codesourcery.com>
1390 * dump-parse-tree.c (show_omp_clauses): Fix enum type used
1391 for dumping gfc_omp_defaultmap_category.
1393 2021-06-23 Andre Vehreschild <vehre@gcc.gnu.org>
1396 * trans-intrinsic.c (conv_co_collective): Check stat for null ptr
1397 before dereferrencing.
1399 2021-06-18 Harald Anlauf <anlauf@gmx.de>
1403 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Unconditionally
1404 convert result of min/max to result type.
1406 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1410 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1412 * match.c (gfc_match_pointer_assignment): Likewise.
1413 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1416 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1419 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1423 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1425 * match.c (gfc_match_pointer_assignment): Likewise.
1426 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1429 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1433 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1435 * match.c (gfc_match_pointer_assignment): Likewise.
1436 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1439 2021-06-15 Tobias Burnus <tobias@codesourcery.com>
1442 * dump-parse-tree.c (show_omp_clauses): Update for defaultmap.
1443 * f95-lang.c (LANG_HOOKS_OMP_ALLOCATABLE_P,
1444 LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
1445 * gfortran.h (enum gfc_omp_defaultmap,
1446 enum gfc_omp_defaultmap_category): New.
1447 * openmp.c (gfc_match_omp_clauses): Update defaultmap matching.
1448 * trans-decl.c (gfc_finish_decl_attrs): Set GFC_DECL_SCALAR_TARGET.
1449 * trans-openmp.c (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New.
1450 (gfc_omp_scalar_p): Take 'ptr_alloc_ok' argument.
1451 (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for
1453 * trans.h (gfc_omp_scalar_p): Update prototype.
1454 (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New.
1455 (struct lang_decl): Add scalar_target.
1456 (GFC_DECL_SCALAR_TARGET, GFC_DECL_GET_SCALAR_TARGET): New.
1458 2021-06-14 Tobias Burnus <tobias@codesourcery.com>
1460 * resolve.c (resolve_variable): Remove *XCNEW used to
1461 nullify nullified memory.
1463 2021-06-09 Martin Liska <mliska@suse.cz>
1465 * intrinsic.texi: Add missing @headitem to tables with a header.
1467 2021-06-09 Jakub Jelinek <jakub@redhat.com>
1470 * trans-openmp.c (gfc_omp_finish_clause): Gimplify OMP_CLAUSE_SIZE.
1472 2021-06-08 Tobias Burnus <tobias@codesourcery.com>
1475 * trans-openmp.c (gfc_add_clause_implicitly): New.
1476 (gfc_split_omp_clauses): Use it.
1477 (gfc_free_split_omp_clauses): New.
1478 (gfc_trans_omp_do_simd, gfc_trans_omp_parallel_do,
1479 gfc_trans_omp_parallel_do_simd, gfc_trans_omp_distribute,
1480 gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_taskloop,
1481 gfc_trans_omp_master_taskloop, gfc_trans_omp_parallel_master): Use it.
1483 2021-06-08 Martin Liska <mliska@suse.cz>
1485 * intrinsic.texi: Fix typo.
1486 * trans-expr.c (gfc_trans_pointer_assignment): Likewise.
1488 2021-06-05 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1495 * trans-array.c (gfc_get_array_span): rework the way character
1496 array "span" was calculated.
1497 (gfc_conv_expr_descriptor): improve handling of character sections
1498 and unlimited polymorphic objects.
1499 * trans-expr.c (gfc_get_character_len): new function to calculate
1500 character string length.
1501 (gfc_get_character_len_in_bytes): new function to calculate
1502 character string length in bytes.
1503 (gfc_conv_scalar_to_descriptor): add call to set the "span".
1504 (gfc_trans_pointer_assignment): set "_len" and antecipate the
1505 initialization of the deferred character length hidden argument.
1506 * trans-intrinsic.c (gfc_conv_associated): set "force_no_tmp" to
1507 avoid the creation of a temporary.
1508 * trans-types.c (gfc_get_dtype_rank_type): rework type detection
1509 so that unlimited polymorphic objects get proper type infomation,
1510 also important for bind(c).
1511 (gfc_get_dtype): add argument to pass the rank if necessary.
1512 (gfc_get_array_type_bounds): cosmetic change to have character
1513 arrays called character instead of unknown.
1514 * trans-types.h (gfc_get_dtype): modify prototype.
1515 * trans.c (get_array_span): rework the way character array "span"
1517 * trans.h (gfc_get_character_len): new prototype.
1518 (gfc_get_character_len_in_bytes): new prototype.
1519 Add "unlimited_polymorphic" flag to "gfc_se" type to signal when
1520 expression carries an unlimited polymorphic object.
1522 2021-06-04 Harald Anlauf <anlauf@gmx.de>
1525 * frontend-passes.c (inline_matmul_assign): Do not inline matmul
1526 if the assignment to the resulting array if it is not of canonical
1527 type (real/integer/complex/logical).
1529 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1531 * dump-parse-tree.c (show_code_node): Handle
1532 EXEC_OMP_(TARGET_)(,PARALLEL_,TEAMS_)LOOP.
1534 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1536 * scanner.c (skip_fixed_omp_sentinel): Set openacc_flag if
1537 this is not an (OpenMP) continuation line.
1538 (skip_fixed_oacc_sentinel): Likewise for openmp_flag and OpenACC.
1539 (gfc_next_char_literal): gfc_error_now to force error for mixed OMP/ACC
1540 continuation once per location and return '\n'.
1542 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1545 * openmp.c (gfc_match_omp_clauses): Fix typo in error message.
1547 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1550 * dump-parse-tree.c (show_omp_clauses): Handle bind clause.
1551 (show_omp_node): Handle loop directive.
1552 * frontend-passes.c (gfc_code_walker): Likewise.
1553 * gfortran.h (enum gfc_statement): Add
1554 ST_OMP_(END_)(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
1555 (enum gfc_omp_bind_type): New.
1556 (gfc_omp_clauses): Use it.
1557 (enum gfc_exec_op): Add EXEC_OMP_(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
1558 * match.h (gfc_match_omp_loop, gfc_match_omp_parallel_loop,
1559 gfc_match_omp_target_parallel_loop, gfc_match_omp_target_teams_loop,
1560 gfc_match_omp_teams_loop): New.
1561 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_BIND.
1562 (gfc_match_omp_clauses): Handle it.
1563 (OMP_LOOP_CLAUSES, gfc_match_omp_loop, gfc_match_omp_teams_loop,
1564 gfc_match_omp_target_teams_loop, gfc_match_omp_parallel_loop,
1565 gfc_match_omp_target_parallel_loop): New.
1566 (resolve_omp_clauses, resolve_omp_do, omp_code_to_statement,
1567 gfc_resolve_omp_directive): Handle omp loop.
1568 * parse.c (decode_omp_directive case_exec_markers, gfc_ascii_statement,
1569 parse_omp_do, parse_executable): Likewise.
1570 (parse_omp_structured_block): Remove ST_ which use parse_omp_do.
1571 * resolve.c (gfc_resolve_blocks): Add omp loop.
1572 * st.c (gfc_free_statement): Likewise.
1573 * trans-openmp.c (gfc_trans_omp_clauses): Handle bind clause.
1574 (gfc_trans_omp_do, gfc_trans_omp_parallel_do, gfc_trans_omp_distribute,
1575 gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_directive):
1576 Handle loop directive.
1577 (gfc_split_omp_clauses): Likewise; fix firstprivate/lastprivate
1578 and (in_)reduction for taskloop.
1579 * trans.c (trans_code): Handle omp loop directive.
1581 2021-06-01 Tobias Burnus <tobias@codesourcery.com>
1584 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
1585 (parallel) master taskloop (simd).
1586 * frontend-passes.c (gfc_code_walker): Set in_omp_workshare
1587 to false for parallel master taskloop (simd).
1588 * gfortran.h (enum gfc_statement):
1589 Add ST_OMP_(END_)(PARALLEL_)MASTER_TASKLOOP(_SIMD).
1590 (enum gfc_exec_op): EXEC_OMP_(PARALLEL_)MASTER_TASKLOOP(_SIMD).
1591 * match.h (gfc_match_omp_master_taskloop,
1592 gfc_match_omp_master_taskloop_simd,
1593 gfc_match_omp_parallel_master_taskloop,
1594 gfc_match_omp_parallel_master_taskloop_simd): New prototype.
1595 * openmp.c (gfc_match_omp_parallel_master_taskloop,
1596 gfc_match_omp_parallel_master_taskloop_simd,
1597 gfc_match_omp_master_taskloop,
1598 gfc_match_omp_master_taskloop_simd): New.
1599 (gfc_match_omp_taskloop_simd): Permit 'reduction' clause.
1600 (resolve_omp_clauses): Handle new combined directives; remove
1601 inscan-reduction check to reduce multiple errors; add
1602 task-reduction error for 'taskloop simd'.
1603 (gfc_resolve_omp_parallel_blocks,
1604 resolve_omp_do, omp_code_to_statement,
1605 gfc_resolve_omp_directive): Handle new combined constructs.
1606 * parse.c (decode_omp_directive, next_statement,
1607 gfc_ascii_statement, parse_omp_do, parse_omp_structured_block,
1608 parse_executable): Likewise.
1609 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
1610 * st.c (gfc_free_statement): Likewise.
1611 * trans.c (trans_code): Likewise.
1612 * trans-openmp.c (gfc_split_omp_clauses,
1613 gfc_trans_omp_directive): Likewise.
1614 (gfc_trans_omp_parallel_master): Move after gfc_trans_omp_master_taskloop;
1615 handle parallel master taskloop (simd) as well.
1616 (gfc_trans_omp_taskloop): Take gfc_exec_op as arg.
1617 (gfc_trans_omp_master_taskloop): New.
1619 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
1621 * gfortran.texi (BOZ literal constants): Fix typo.
1623 2021-05-28 Tobias Burnus <tobias@codesourcery.com>
1625 * dump-parse-tree.c (show_iterator): New.
1626 (show_omp_namelist): Handle iterators.
1627 (show_omp_clauses): Handle affinity.
1628 * gfortran.h (gfc_free_omp_namelist): New union with 'udr' and new 'ns'.
1629 * match.c (gfc_free_omp_namelist): Add are to choose union element.
1630 * openmp.c (gfc_free_omp_clauses, gfc_match_omp_detach,
1631 gfc_match_omp_clause_reduction, gfc_match_omp_flush): Update
1632 call to gfc_free_omp_namelist.
1633 (gfc_match_omp_variable_list): Likewise; permit preceeding whitespace.
1634 (enum omp_mask1): Add OMP_CLAUSE_AFFINITY.
1635 (gfc_match_iterator): New.
1636 (gfc_match_omp_clauses): Use it; update call to gfc_free_omp_namelist.
1637 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_AFFINITY.
1638 (gfc_match_omp_taskwait): Match depend clause.
1639 (resolve_omp_clauses): Handle affinity; update for udr/union change.
1640 (gfc_resolve_omp_directive): Resolve clauses of taskwait.
1641 * st.c (gfc_free_statement): Update gfc_free_omp_namelist call.
1642 * trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Likewise
1643 (handle_iterator): New.
1644 (gfc_trans_omp_clauses): Handle iterators for depend/affinity clause.
1645 (gfc_trans_omp_taskwait): Handle depend clause.
1646 (gfc_trans_omp_directive): Update call.
1648 2021-05-27 Harald Anlauf <anlauf@gmx.de>
1651 * trans-intrinsic.c (gfc_conv_intrinsic_size): Use CLASS data
1652 attributes for CLASS arrays for generation of runtime error.
1654 2021-05-27 Harald Anlauf <anlauf@gmx.de>
1657 * trans-array.c (gfc_conv_ss_startstride): Do not call check for
1658 presence of a dummy argument when a symbol actually refers to a
1661 2021-05-25 Tobias Burnus <tobias@codesourcery.com>
1662 Johannes Nendwich <a08727063@unet.univie.ac.at>
1664 * intrinsic.texi (GERROR, GETARGS, GETLOG, NORM2, PARITY, RANDOM_INIT,
1665 RANDOM_NUMBER): Fix typos and copy'n'paste errors.
1667 2021-05-24 Tobias Burnus <tobias@codesourcery.com>
1670 * trans-expr.c (gfc_copy_class_to_class): Add unshare_expr.
1671 * trans-openmp.c (gfc_is_polymorphic_nonptr,
1672 gfc_is_unlimited_polymorphic_nonptr): New.
1673 (gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor): Handle
1674 polymorphic scalars.
1676 2021-05-23 Harald Anlauf <anlauf@gmx.de>
1679 * trans-expr.c (gfc_conv_procedure_call): Adjust check for
1680 implicit conversion of actual argument to an unlimited polymorphic
1683 2021-05-23 Tobias Burnus <tobias@codesourcery.com>
1685 * intrinsic.texi (ATOMIC_ADD, ATOMIC_FETCH_ADD): Use the
1686 proper variable name in the description.
1688 2021-05-22 Andre Vehreschild <vehre@gcc.gnu.org>
1689 Steve Kargl <kargl@gcc.gnu.org>
1692 * trans-decl.c (gfc_build_builtin_function_decls): Move decl.
1693 * trans-intrinsic.c (conv_intrinsic_random_init): Use bool for
1694 lib-call of caf_random_init instead of logical (4-byte).
1695 * trans.h: Add tree var for random_init.
1697 2021-05-20 Marcel Vollweiler <marcel@codesourcery.com>
1699 * openmp.c (gfc_match_omp_clauses): Support map-type-modifier 'close'.
1701 2021-05-18 Tobias Burnus <tobias@codesourcery.com>
1704 * openmp.c (omp_code_to_statement): Add missing EXEC_OMP_DEPOBJ.
1706 2021-05-17 Harald Anlauf <anlauf@gmx.de>
1709 * trans-decl.c (gfc_finish_var_decl): Add check for explicit SAVE
1712 2021-05-17 Tobias Burnus <tobias@codesourcery.com>
1715 * resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in
1718 2021-05-14 Tobias Burnus <tobias@codesourcery.com>
1720 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
1721 EXEC_OMP_PARALLEL_MASTER.
1722 * frontend-passes.c (gfc_code_walker): Likewise.
1723 * gfortran.h (enum gfc_statement): Add ST_OMP_PARALLEL_MASTER and
1724 ST_OMP_END_PARALLEL_MASTER.
1725 (enum gfc_exec_op): Add EXEC_OMP_PARALLEL_MASTER..
1726 * match.h (gfc_match_omp_parallel_master): Handle it.
1727 * openmp.c (gfc_match_omp_parallel_master, resolve_omp_clauses,
1728 omp_code_to_statement, gfc_resolve_omp_directive): Likewise.
1729 * parse.c (decode_omp_directive, case_exec_markers,
1730 gfc_ascii_statement, parse_omp_structured_block,
1731 parse_executable): Likewise.
1732 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
1733 * st.c (gfc_free_statement): Likewise.
1734 * trans-openmp.c (gfc_trans_omp_parallel_master,
1735 gfc_trans_omp_workshare, gfc_trans_omp_directive): Likewise.
1736 * trans.c (trans_code): Likewise.
1738 2021-05-14 Tobias Burnus <tobias@codesourcery.com>
1740 * resolve.c (resolve_symbol): Handle implicit SAVE of main-program
1741 for vars in 'omp threadprivate' and 'omp declare target'.
1743 2021-05-10 Martin Liska <mliska@suse.cz>
1745 * decl.c (variable_decl): Use startswith
1746 function instead of strncmp.
1747 (gfc_match_end): Likewise.
1748 * gfortran.h (gfc_str_startswith): Likewise.
1749 * module.c (load_omp_udrs): Likewise.
1750 (read_module): Likewise.
1751 * options.c (gfc_handle_runtime_check_option): Likewise.
1752 * primary.c (match_arg_list_function): Likewise.
1753 * trans-decl.c (gfc_get_symbol_decl): Likewise.
1754 * trans-expr.c (gfc_conv_procedure_call): Likewise.
1755 * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Likewise.
1757 2021-05-06 Paul Thomas <pault@gcc.gnu.org>
1761 * class.c (gfc_build_class_symbol): Remove the error that
1762 disables assumed size class arrays. Class array types that are
1763 not deferred shape or assumed rank are given a unique name and
1764 placed in the procedure namespace.
1765 * trans-array.c (gfc_trans_g77_array): Obtain the data pointer
1767 (gfc_trans_dummy_array_bias): Suppress the runtime error for
1768 extent violations in explicit shape class arrays because it
1770 * trans-expr.c (gfc_conv_procedure_call): Handle assumed size
1771 class actual arguments passed to non-descriptor formal args by
1772 using the data pointer, stored as the symbol's backend decl.
1774 2021-05-05 Harald Anlauf <anlauf@gmx.de>
1777 * interface.c (gfc_compare_actual_formal): Continue checks after
1778 emitting warning for argument length mismatch.
1779 * trans-expr.c (gfc_conv_procedure_call): Check for NULL pointer
1782 2021-05-04 Tobias Burnus <tobias@codesourcery.com>
1785 * trans-openmp.c (gfc_trans_omp_depobj): Fix pasto in enum values.
1787 2021-04-28 Tobias Burnus <tobias@codesourcery.com>
1789 * openmp.c (gfc_match_omp_variable_list): Gobble whitespace before
1790 checking whether a '%' or parenthesis-open follows as next character.
1792 2021-04-28 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1795 * trans-expr.c (gfc_conv_procedure_call): Evaluate function result
1796 and then pass a pointer.
1798 2021-04-26 Thomas Schwinge <thomas@codesourcery.com>
1799 Nathan Sidwell <nathan@codesourcery.com>
1800 Tom de Vries <vries@codesourcery.com>
1801 Julian Brown <julian@codesourcery.com>
1802 Kwok Cheung Yeung <kcy@codesourcery.com>
1804 * lang.opt (Wopenacc-parallelism): New.
1806 2021-04-24 Harald Anlauf <anlauf@gmx.de>
1809 * check.c (variable_check): Allow function reference having a data
1811 (arg_strlen_is_zero): New function.
1812 (gfc_check_fgetputc_sub): Add static check of character and status
1814 (gfc_check_fgetput_sub): Likewise.
1815 * intrinsic.c (add_subroutines): Fix argument name for the
1816 character argument to intrinsic subroutines fget[c], fput[c].
1818 2021-04-24 Harald Anlauf <anlauf@gmx.de>
1821 * expr.c (gfc_check_vardef_context): Extend check to allow pointer
1822 from a function reference.
1824 2021-04-22 Martin Liska <mliska@suse.cz>
1828 * frontend-passes.c (optimize_expr): Fix typos and missing comments.
1830 2021-04-22 Michael Meissner <meissner@linux.ibm.com>
1833 * trans-intrinsic.c (build_round_expr): If int type is larger than
1834 long long, do the round and convert to the integer type. Do not
1835 try to find a floating point type the exact size of the integer
1838 2021-04-21 Tobias Burnus <tobias@codesourcery.com>
1840 * dump-parse-tree.c (show_omp_namelist): Handle depobj + mutexinoutset
1841 in the depend clause.
1842 (show_omp_clauses, show_omp_node, show_code_node): Handle depobj.
1843 * gfortran.h (enum gfc_statement): Add ST_OMP_DEPOBJ.
1844 (enum gfc_omp_depend_op): Add OMP_DEPEND_UNSET,
1845 OMP_DEPEND_MUTEXINOUTSET and OMP_DEPEND_DEPOBJ.
1846 (gfc_omp_clauses): Add destroy, depobj_update and depobj.
1847 (enum gfc_exec_op): Add EXEC_OMP_DEPOBJ
1848 * match.h (gfc_match_omp_depobj): Match 'omp depobj'.
1849 * openmp.c (gfc_match_omp_clauses): Add depobj + mutexinoutset
1851 (gfc_match_omp_depobj, resolve_omp_clauses, gfc_resolve_omp_directive):
1852 Handle 'omp depobj'.
1853 * parse.c (decode_omp_directive, next_statement, gfc_ascii_statement):
1855 * resolve.c (gfc_resolve_code): Likewise.
1856 * st.c (gfc_free_statement): Likewise.
1857 * trans-openmp.c (gfc_trans_omp_clauses): Handle depobj + mutexinoutset
1858 in the depend clause.
1859 (gfc_trans_omp_depobj, gfc_trans_omp_directive): Handle EXEC_OMP_DEPOBJ.
1860 * trans.c (trans_code): Likewise.
1862 2021-04-20 Paul Thomas <pault@gcc.gnu.org>
1865 * trans-decl.c (gfc_get_symbol_decl): Replace test for host
1866 association with a check that the current and symbol namespaces
1869 2021-04-19 Thomas Schwinge <thomas@codesourcery.com>
1871 * lang.opt (fopenacc-kernels=): Remove.
1873 2021-04-16 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1876 * trans-array.c (gfc_trans_deferred_array): Add code to initialize
1877 pointers and allocatables with correct TKR parameters.
1879 2021-04-16 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1882 * resolve.c: Add association check before de-referencing pointer.
1884 2021-04-16 Harald Anlauf <anlauf@gmx.de>
1885 Paul Thomas <pault@gcc.gnu.org>
1888 * module.c (write_symtree): Do not write interface of intrinsic
1889 procedure to module file for F2003 and newer.
1891 2021-04-15 Paul Thomas <pault@gcc.gnu.org>
1894 * symbol.c: Remove trailing white space.
1895 * trans-array.c (gfc_trans_create_temp_array): Create a class
1896 temporary for class expressions and assign the new descriptor
1898 (build_class_array_ref): If the class expr can be extracted,
1899 then use that for 'decl'. Class function results are reliably
1900 handled this way. Call gfc_find_and_cut_at_last_class_ref to
1901 eliminate largely redundant code. Remove dead code and recast
1902 the rest of the code to extract 'decl' for remaining cases.
1903 Call gfc_build_spanned_array_ref.
1904 (gfc_alloc_allocatable_for_assignment): Use class descriptor
1905 element length for 'elemsize1'. Eliminate repeat set of dtype
1906 for class expressions.
1907 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Include
1908 additional code from build_class_array_ref, and use optional
1909 gfc_typespec pointer argument.
1910 (gfc_trans_scalar_assign): Make use of pre and post blocks for
1911 all class expressions.
1912 * trans.c (get_array_span): For unlimited polymorphic exprs
1913 multiply the span by the value of the _len field.
1914 (gfc_build_spanned_array_ref): New function.
1915 (gfc_build_array_ref): Call gfc_build_spanned_array_ref and
1916 eliminate repeated code.
1917 * trans.h: Add arg to gfc_find_and_cut_at_last_class_ref and
1918 add prototype for gfc_build_spanned_array_ref.
1920 2021-04-14 Martin Liska <mliska@suse.cz>
1922 * intrinsic.texi: The table has first column empty and it makes
1923 trouble when processing makeinfo --xml output.
1925 2021-04-09 Tobias Burnus <tobias@codesourcery.com>
1928 * trans-types.c (gfc_get_function_type): Also generate hidden
1929 coarray argument for character arguments.
1931 2021-04-03 Paul Thomas <pault@gcc.gnu.org>
1934 * interface.c (compare_parameter): The codimension attribute is
1935 applied to the _data field of class formal arguments.
1937 2021-04-01 Harald Anlauf <anlauf@gmx.de>
1940 * simplify.c (gfc_simplify_transpose): Properly initialize
1943 2021-03-28 Paul Thomas <pault@gcc.gnu.org>
1946 * trans-expr.c (gfc_conv_procedure_call): Use the _data attrs
1947 for class expressions and detect proc pointer evaluations by
1948 the non-null actual argument list.
1950 2021-03-27 Steve Kargl <kargl@gcc.gnu.org>
1952 * misc.c (gfc_typename): Fix off-by-one in buffer sizes.
1954 2021-03-26 Tobias Burnus <tobias@codesourcery.com>
1957 * intrinsic.c (gfc_intrinsic_func_interface): Set
1958 attr.proc = PROC_INTRINSIC if FL_PROCEDURE.
1960 2021-03-24 Tobias Burnus <tobias@codesourcery.com>
1963 * resolve.c (resolve_operator): Make 'msg' buffer larger
1966 2021-03-23 Tobias Burnus <tobias@codesourcery.com>
1969 * trans-decl.c (build_function_decl): Add comment;
1970 increment hidden_typelist for caf_token/caf_offset.
1971 * trans-types.c (gfc_get_function_type): Add comment;
1972 add missing caf_token/caf_offset args.
1974 2021-03-22 Tobias Burnus <tobias@codesourcery.com>
1977 * match.c (select_type_set_tmp, gfc_match_select_type,
1978 gfc_match_select_rank): Fix 'name' buffersize to avoid out of bounds.
1979 * resolve.c (resolve_select_type): Likewise.
1981 2021-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1983 * frontend-passes.c (inline_limit_check): Add rank_a
1984 argument. If a is rank 1, set the second dimension to 1.
1985 (inline_matmul_assign): Pass rank_a argument to inline_limit_check.
1986 (call_external_blas): Likewise.
1988 2021-03-15 Thomas Koenig <tkoenig@gcc.gnu.org>
1991 * frontend-passes.c (doloop_contained_procedure_code):
1992 Properly handle EXEC_IOLENGTH.
1994 2021-03-15 Paul Thomas <pault@gcc.gnu.org>
1997 * trans-stmt.c (gfc_trans_allocate): Mark the initialization
1998 assignment by setting init_flag.
2000 2021-03-14 Harald Anlauf <anlauf@gmx.de>
2001 Paul Thomas <pault@gcc.gnu.org>
2003 * trans-expr.c (gfc_conv_procedure_call): Fix runtime checks for
2005 * trans-intrinsic.c (gfc_conv_intrinsic_size): Likewise.
2007 2021-03-13 Paul Thomas <pault@gcc.gnu.org>
2010 * trans-array.c (gfc_conv_expr_descriptor): For deferred length
2011 length components use the ss_info string length instead of
2012 gfc_get_expr_charlen. Make sure that the deferred string length
2013 is a variable before assigning to it. Otherwise use the expr.
2014 * trans-expr.c (gfc_conv_string_length): Make sure that the
2015 deferred string length is a variable before assigning to it.
2017 2021-03-12 Tobias Burnus <tobias@codesourcery.com>
2020 * resolve.c (resolve_symbol): Accept vars which are in DATA
2021 and hence (either) implicit SAVE (or in common).
2023 2021-03-10 Harald Anlauf <anlauf@gmx.de>
2026 * data.c (gfc_assign_data_value): Reject non-constant character
2028 * trans-array.c (gfc_conv_array_initializer): Restrict loop to
2029 elements which are defined to avoid NULL pointer dereference.
2031 2021-03-10 Tobias Burnus <tobias@codesourcery.com>
2033 * intrinsic.texi (MIN): Correct 'maximum' to 'minimum'.
2035 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
2038 * trans-intrinsic.c (build_round_expr): Do not implicitly assume
2039 that __float128 is the 128-bit floating-point type.
2041 2021-03-08 Harald Anlauf <anlauf@gmx.de>
2044 * data.c (gfc_assign_data_value): Reject variable with PARAMETER
2045 attribute in DATA statement.
2047 2021-03-05 Tobias Burnus <tobias@codesourcery.com>
2051 * invoke.texi (-freal{4,8}-real-*): Extend description.
2052 * primary.c (match_real_constant): Also promote real literals
2053 with '_kind' number.
2055 2021-03-04 Tobias Burnus <tobias@codesourcery.com>
2058 * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Avoid
2059 redoing kind conversions.
2060 * primary.c (match_real_constant): Likewise.
2062 2021-02-28 Jakub Jelinek <jakub@redhat.com>
2065 * openmp.c (gfc_omp_requires_add_clause): Fix up diagnostic message
2067 (resolve_omp_clauses): Likewise.
2069 2021-02-28 Jakub Jelinek <jakub@redhat.com>
2072 * frontend-passes.c (doloop_code): Replace double space in diagnostics
2073 with a single space.
2075 2021-02-24 Paul Thomas <pault@gcc.gnu.org>
2078 * trans-expr.c (gfc_conv_derived_to_class): Add optional arg.
2079 'derived_array' to hold the fixed, parmse expr in the case of
2080 assumed rank formal arguments. Deal with optional arguments.
2081 (gfc_conv_procedure_call): Null 'derived' array for each actual
2082 argument. Add its address to the call to gfc_conv_derived_to_
2083 class. Access the 'data' field of scalar descriptors before
2084 deallocating allocatable components. Also strip NOPs before the
2085 calls to gfc_deallocate_alloc_comp. Use 'derived' array as the
2086 input to gfc_deallocate_alloc_comp if it is available.
2087 * trans.h : Include the optional argument 'derived_array' to
2088 the prototype of gfc_conv_derived_to_class. The default value
2091 2021-02-23 Paul Thomas <pault@gcc.gnu.org>
2094 * resolve.c (resolve_fl_procedure): Include class results in
2095 the test for F2018, C15100.
2096 * trans-array.c (get_class_info_from_ss): Do not use the saved
2097 descriptor to obtain the class expression for variables. Use
2098 gfc_get_class_from_expr instead.
2100 2021-02-23 Harald Anlauf <anlauf@gmx.de>
2103 * simplify.c (gfc_simplify_reshape): Set string length for
2104 character arguments.
2106 2021-02-22 Tobias Burnus <tobias@codesourcery.com>
2109 * trans-openmp.c (gfc_omp_is_optional_argument): Regard optional
2110 dummy procs as nonoptional as no special treatment is needed.
2112 2021-02-21 Harald Anlauf <anlauf@gmx.de>
2114 * trans-expr.c (gfc_conv_procedure_call): Do not add clobber to
2115 allocatable intent(out) argument.
2117 2021-02-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2120 * match.c (gfc_match_namelist): If BT_UNKNOWN, check for
2121 IMPLICIT NONE and and issue an error, otherwise set the type
2122 to its IMPLICIT type so that any subsequent use of objects will
2123 will confirm their types.
2125 2021-02-19 Harald Anlauf <anlauf@gmx.de>
2127 * symbol.c (gfc_add_flavor): Reverse order of conditions.
2129 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
2132 * dependency.c (gfc_dep_resolver): Fix coarray handling.
2134 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
2139 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
2142 * simplify.c (simplify_bound_dim): Honor DIMEN_ELEMENT
2145 2021-02-17 Julian Brown <julian@codesourcery.com>
2147 * openmp.c (resolve_omp_clauses): Disallow selecting components
2148 of arrays of derived type.
2150 2021-02-17 Julian Brown <julian@codesourcery.com>
2152 * trans-openmp.c (gfc_trans_omp_clauses): Handle element selection
2153 for arrays of derived types.
2155 2021-02-16 Tobias Burnus <tobias@codesourcery.com>
2157 * expr.c (gfc_is_simplify_contiguous): Handle REF_INQUIRY, i.e.
2158 %im and %re which are EXPR_VARIABLE.
2159 * openmp.c (resolve_omp_clauses): Diagnose %re/%im explicitly.
2161 2021-02-16 Tobias Burnus <tobias@codesourcery.com>
2164 * io.c (resolve_tag_format): Reject BT_DERIVED/CLASS/VOID
2165 as (array-valued) FORMAT tag.
2167 2021-02-12 Tobias Burnus <tobias@codesourcery.com>
2170 * trans-expr.c (gfc_conv_procedure_call): Don't reset
2171 rank of assumed-rank array.
2173 2021-02-11 Paul Thomas <pault@gcc.gnu.org>
2176 * match.c (gfc_match_call): Include associate names as possible
2177 entities with typebound subroutines. The target needs to be
2178 resolved for the type.
2180 2021-02-11 Paul Thomas <pault@gcc.gnu.org>
2183 * primary.c (gfc_match_varspec): Test for non-null 'previous'
2184 before using its name in the error message.
2186 2021-02-11 Tobias Burnus <tobias@codesourcery.com>
2188 * intrinsic.texi (FINDLOC): Add 'MASK' to argument table.
2189 (MAXLOC, MAXVAL, MINLOC, MINVAL): For 'MASK', remove 'an
2190 array' as scalars are also permitted.
2192 2021-02-10 Julian Brown <julian@codesourcery.com>
2195 * openmp.c (resolve_omp_clauses): Omit OpenACC update in
2196 contiguity check and stride-specified error.
2198 2021-02-04 Julian Brown <julian@codesourcery.com>
2200 * openmp.c (resolve_omp_clauses): Omit OpenACC update in
2201 contiguity check and stride-specified error.
2203 2021-02-04 Julian Brown <julian@codesourcery.com>
2205 * trans-openmp.c (gfc_trans_omp_clauses): Use class_pointer attribute
2208 2021-02-04 Julian Brown <julian@codesourcery.com>
2210 * trans-openmp.c (gfc_trans_omp_clauses): Fix dereferencing for
2213 2021-02-04 Tobias Burnus <tobias@codesourcery.com>
2215 * openmp.c (resolve_omp_clauses): Explicitly diagnose
2216 substrings as not permitted.
2218 2021-02-03 Jeff Law <law@redhat.com>
2220 * intrinsic.texi (ANINT): Fix typo.
2222 2021-02-03 Tobias Burnus <tobias@codesourcery.com>
2225 * dependency.c (gfc_dep_resolver): Treat local access
2226 to coarrays like any array access in dependency analysis.
2228 2021-01-28 Harald Anlauf <anlauf@gmx.de>
2231 * trans.c (gfc_call_malloc): Allocate area of size 1 if passed
2232 size is NULL (as documented).
2234 2021-01-27 Paul Thomas <pault@gcc.gnu.org>
2238 * trans-expr.c (gfc_conv_procedure_call): Suppress the call to
2239 gfc_conv_intrinsic_to_class for unlimited polymorphic procedure
2241 (gfc_trans_assignment_1): Similarly suppress class assignment
2242 for class valued procedure pointers.
2244 2021-01-27 Paul Thomas <pault@gcc.gnu.org>
2247 * trans-array.c (gfc_conv_expr_descriptor): Include elemental
2248 procedure pointers in the assert under the comment 'elemental
2249 function' and eliminate the second, spurious assert.
2251 2021-01-25 Harald Anlauf <anlauf@gmx.de>
2254 * data.c (create_character_initializer): Check substring indices
2256 (gfc_assign_data_value): Catch error returned from
2257 create_character_initializer.
2259 2021-01-25 Tobias Burnus <tobias@codesourcery.com>
2261 * intrinsic.texi (CO_BROADCAST, CO_MIN, CO_REDUCE, CO_SUM): Fix typos.
2263 2021-01-25 Steve Kargl <kargl@gcc.gnu.org>
2266 * resolve.c (resolve_charlen): Check that length expression is
2267 present before testing for scalar/integer..
2269 2021-01-22 Paul Thomas <pault@gcc.gnu.org>
2272 * trans-intrinsic.c (gfc_conv_associated): Do not add a _data
2273 component for scalar class function targets. Instead, fix the
2274 function result and access the _data from that.
2276 2021-01-21 Jorge D'Elia <jdelia@cimec.unl.edu.ar>
2278 * intrinsic.texi (CO_MAX): Fix typo.
2280 2021-01-21 Paul Thomas <pault@gcc.gnu.org>
2283 * decl.c (gfc_match_modproc): It is not an error to find a
2284 module procedure declaration within a contains block.
2285 * expr.c (gfc_check_vardef_context): Pure procedure result is
2286 assignable. Change 'own_scope' accordingly.
2287 * resolve.c (resolve_typebound_procedure): A procedure that
2288 has the module procedure attribute is almost certainly a
2289 module procedure, whatever its interface.
2291 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
2294 * openmp.c (resolve_omp_clauses): Change use_device_ptr
2295 to use_device_addr for unless type(c_ptr); check all
2296 list item for is_device_ptr.
2298 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
2300 * dump-parse-tree.c (show_omp_clauses): Handle detach clause.
2301 * frontend-passes.c (gfc_code_walker): Walk detach expression.
2302 * gfortran.h (struct gfc_omp_clauses): Add detach field.
2303 (gfc_c_intptr_kind): New.
2304 * openmp.c (gfc_free_omp_clauses): Free detach clause.
2305 (gfc_match_omp_detach): New.
2306 (enum omp_mask1): Add OMP_CLAUSE_DETACH.
2307 (enum omp_mask2): Remove OMP_CLAUSE_DETACH.
2308 (gfc_match_omp_clauses): Handle OMP_CLAUSE_DETACH for OpenMP.
2309 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DETACH.
2310 (resolve_omp_clauses): Prevent use of detach with mergeable and
2311 overriding the data sharing mode of the event handle.
2312 * trans-openmp.c (gfc_trans_omp_clauses): Handle detach clause.
2313 * trans-types.c (gfc_c_intptr_kind): New.
2314 (gfc_init_kinds): Initialize gfc_c_intptr_kind.
2316 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
2318 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
2319 ...this. Add extra argument.
2321 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2323 * gfortran.h (gfc_resolve_substring): Add prototype.
2324 * primary.c (match_string_constant): Simplify substrings with
2325 constant starting and ending points.
2326 * resolve.c: Rename resolve_substring to gfc_resolve_substring.
2327 (gfc_resolve_ref): Use renamed function gfc_resolve_substring.
2329 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2332 * resolve.c (resolve_component): Derived type components with
2333 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2335 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2338 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2341 * resolve.c (resolve_component): Derived type components with
2342 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2344 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2347 * resolve.c (resolve_component): Derived type components with
2348 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2350 2021-01-08 Paul Thomas <pault@gcc.gnu.org>
2353 * trans-expr.c (gfc_conv_component_ref): Remove the condition
2354 that deferred character length components only be allocatable.
2356 2021-01-08 Paul Thomas <pault@gcc.gnu.org>
2359 * simplify.c (is_constant_array_expr): If an array constructor
2360 expression has elements other than constants or structures, try
2361 fixing the expression with gfc_reduce_init_expr. Also, if shape
2362 is NULL, obtain the array size and set it.
2364 2021-01-07 Paul Thomas <pault@gcc.gnu.org>
2367 * resolve.c (find_array_spec): Put static prototype for
2368 resolve_assoc_var before this function and call for associate
2371 2021-01-06 Harald Anlauf <anlauf@gmx.de>
2373 * resolve.c (resolve_component): Add check for valid CLASS
2374 reference before trying to access CLASS data.
2376 2021-01-04 Martin Liska <mliska@suse.cz>
2378 * ChangeLog-2018: Remove duplicate ChangeLog entries.
2380 2021-01-01 Harald Anlauf <anlauf@gmx.de>
2382 * class.c (gfc_find_vtab): Add check on attribute is_class.
2384 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2386 * gfortranspec.c (lang_specific_driver): Update copyright notice
2388 * gfc-internals.texi: Bump @copying's copyright year.
2389 * gfortran.texi: Ditto.
2390 * intrinsic.texi: Ditto.
2391 * invoke.texi: Ditto.
2393 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2395 * ChangeLog-2020: Rotate ChangeLog. New file.
2398 Copyright (C) 2021 Free Software Foundation, Inc.
2400 Copying and distribution of this file, with or without modification,
2401 are permitted in any medium without royalty provided the copyright
2402 notice and this notice are preserved.