1 2021-11-07 Thomas Koenig <tkoenig@gcc.gnu.org>
3 * intrinsic.c (add_subroutines): Change keyword "operator"
4 to the correct one, "operation".
5 * check.c (gfc_check_co_reduce): Change OPERATOR to
6 OPERATION in error messages.
7 * intrinsic.texi: Change OPERATOR to OPERATION in
10 2021-11-07 Sandra Loosemore <sandra@codesourcery.com>
12 * interface.c (gfc_compare_actual_formal): Continue checking
13 all arguments after encountering an error.
14 * intrinsic.c (do_ts29113_check): Likewise.
15 * resolve.c (resolve_operator): Continue resolving on op2 error.
17 2021-11-06 Harald Anlauf <anlauf@gmx.de>
20 * decl.c (add_init_expr_to_sym): Reject rank mismatch between
21 array and its initializer.
23 2021-11-05 Harald Anlauf <anlauf@gmx.de>
26 * expr.c (simplify_parameter_variable): Copy shape of referenced
27 subobject when simplifying.
29 2021-11-05 Harald Anlauf <anlauf@gmx.de>
32 * match.c (gfc_match_common): Check array spec of a symbol in a
33 COMMON object list and reject it if it is a coarray.
35 2021-11-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
38 * decl.c (gfc_match_implicit_none): Fix typo in warning.
39 * resolve.c (resolve_unknown_f): Reject external procedures
40 without explicit EXTERNAL attribute whe IMPLICIT none (external)
43 2021-11-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
45 * decl.c (gfc_insert_kind_parameter_exprs): Make static.
46 * expr.c (gfc_build_init_expr): Make static
47 (gfc_build_default_init_expr): Move below its static helper.
48 * gfortran.h (gfc_insert_kind_parameter_exprs, gfc_add_saved_common,
49 gfc_add_common, gfc_use_derived_tree, gfc_free_charlen,
50 gfc_get_ultimate_derived_super_type,
51 gfc_resolve_oacc_parallel_loop_blocks, gfc_build_init_expr,
52 gfc_iso_c_sub_interface): Delete.
53 * symbol.c (gfc_new_charlen, gfc_get_derived_super_type): Make
56 2021-11-05 Sandra Loosemore <sandra@codesourcery.com>
59 * gfortran.texi (Mixed-Language Programming): Talk about C++,
62 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
64 * gfortran.texi (Projects): Add bullet for helping with
65 incomplete standards compliance.
66 (Proposed Extensions): Delete section.
68 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
70 * intrinsic.texi (Introduction to Intrinsics): Genericize
71 references to standard versions.
72 * invoke.texi (-fall-intrinsics): Likewise.
73 (-fmax-identifier-length=): Likewise.
75 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
77 * gfortran.texi (Interoperability with C): Copy-editing. Add
79 (Intrinsic Types): Likewise.
80 (Derived Types and struct): Likewise.
81 (Interoperable Global Variables): Likewise.
82 (Interoperable Subroutines and Functions): Likewise.
83 (Working with C Pointers): Likewise.
84 (Further Interoperability of Fortran with C): Likewise. Rewrite
85 to reflect that this is now fully supported by gfortran.
87 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
89 * gfortran.texi (About GNU Fortran): Consolidate material
90 formerly in other sections. Copy-editing.
91 (Preprocessing and conditional compilation): Delete, moving
92 most material to invoke.texi.
93 (GNU Fortran and G77): Delete.
94 (Project Status): Delete.
96 (Fortran 95 status): Mention conditional compilation here.
97 (Fortran 2003 status): Rewrite to mention the 1 missing feature
98 instead of all the ones implemented.
99 (Fortran 2008 status): Similarly for the 2 missing features.
100 (Fortran 2018 status): Rewrite to reflect completion of TS29113
102 * invoke.texi (Preprocessing Options): Move material formerly
103 in introductory chapter here.
105 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
107 * gfortran.texi (Standards): Move discussion of specific
108 standard versions here....
109 (Fortran standards status): ...from here, and delete this node.
111 2021-10-31 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
113 * symbol.c (gfc_get_typebound_proc): Revert memcpy.
115 2021-10-31 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
117 * resolve.c (resolve_fl_procedure): Initialize
118 allocatable_or_pointer.
120 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
122 * intrinsic.texi: Remove entries for SHORT and LONG intrinsics.
124 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
126 * check.c (gfc_check_intconv): Change error message.
128 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
130 * intrinsic.texi (REAL): Fix entries in Specific names table.
132 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
134 * intrinsic.texi: Adjust @columnfractions commands to improve
135 appearance for narrow 80 character terminals.
137 2021-10-30 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
139 * parse.c (clean_up_modules): Free gsym.
141 2021-10-30 Harald Anlauf <anlauf@gmx.de>
143 * gfortran.texi (bug reports): credit Gerhard Steinmetz for
144 numerous bug reports.
146 2021-10-30 Steve Kargl <kargl@gcc.gnu.org>
149 * resolve.c (resolve_select): Generate regular gfc_error on
150 invalid conversions instead of an gfc_internal_error.
152 2021-10-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
154 * symbol.c (free_tb_tree): Free type-bound procedure struct.
155 (gfc_get_typebound_proc): Use explicit memcpy for clarity.
157 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
159 * intrinsic.h (gfc_check_sum, gfc_resolve_atan2d, gfc_resolve_kill,
160 gfc_resolve_kill_sub): Delete declaration.
162 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
164 * trans-types.h (gfc_convert_function_code): Delete.
166 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
168 * trans-stmt.h (gfc_trans_deallocate_array): Delete.
170 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
172 * trans-array.c (gfc_trans_scalarized_loop_end): Make static.
173 * trans-array.h (gfc_trans_scalarized_loop_end,
174 gfc_conv_tmp_ref, gfc_conv_array_transpose): Delete declaration.
176 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
178 * constructor.c (gfc_constructor_get_base): Make static.
179 (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete.
180 * constructor.h (gfc_constructor_get_base): Remove declaration.
181 (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete.
183 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
185 * decl.c (gfc_match_old_kind_spec, set_com_block_bind_c,
186 set_verify_bind_c_sym, set_verify_bind_c_com_block,
187 get_bind_c_idents, gfc_match_suffix, gfc_get_type_attr_spec,
188 check_extended_derived_type): Make static.
189 (gfc_match_gcc_unroll): Add comment.
190 * match.c (gfc_match_small_int_expr): Delete definition.
191 * match.h (gfc_match_small_int_expr): Delete declaration.
192 (gfc_match_name_C, gfc_match_old_kind_spec, set_com_block_bind_c,
193 set_verify_bind_c_sym, set_verify_bind_c_com_block,
194 get_bind_c_idents, gfc_match_suffix,
195 gfc_get_type_attr_spec): Delete declaration.
197 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
199 * expr.c (is_non_empty_structure_constructor): Make static.
200 * gfortran.h (gfc_check_any_c_kind): Delete.
201 * match.c (gfc_match_label): Make static.
202 * match.h (gfc_match_label): Delete declaration.
203 * scanner.c (file_changes_cur, file_changes_count,
204 file_changes_allocated): Make static.
205 * trans-expr.c (gfc_get_character_len): Make static.
206 (gfc_class_len_or_zero_get): Make static.
207 (VTAB_GET_FIELD_GEN): Undefine.
208 (gfc_get_class_array_ref): Make static.
209 (gfc_finish_interface_mapping): Make static.
210 * trans-types.c (gfc_check_any_c_kind): Delete.
211 (pfunc_type_node, dtype_type_node, gfc_get_ppc_type): Make static.
212 * trans-types.h (gfc_get_ppc_type): Delete declaration.
213 * trans.c (gfc_msg_wrong_return): Delete.
214 * trans.h (gfc_class_len_or_zero_get, gfc_class_vtab_extends_get,
215 gfc_vptr_extends_get, gfc_get_class_array_ref, gfc_get_character_len,
216 gfc_finish_interface_mapping, gfc_msg_wrong_return,
217 gfc_get_function_decl): Delete declaration.
219 2021-10-27 Tobias Burnus <tobias@codesourcery.com>
221 * trans-stmt.c (gfc_trans_select_rank_cases): Fix condition
222 for allocatables/pointers.
224 2021-10-26 Harald Anlauf <anlauf@gmx.de>
227 * symbol.c (gfc_check_conflict): Add conflict check for PDT KIND
228 and LEN type parameters.
230 2021-10-26 Harald Anlauf <anlauf@gmx.de>
233 * decl.c (match_attr_spec): Remove invalid integer kind checks on
234 KIND and LEN attributes of PDTs.
236 2021-10-26 Harald Anlauf <anlauf@gmx.de>
239 * resolve.c (resolve_structure_cons): Reject invalid array spec of
240 a DT component referenced in a structure constructor.
242 2021-10-26 Tobias Burnus <tobias@codesourcery.com>
245 * trans-decl.c (gfc_conv_cfi_to_gfc): Properly handle nonconstant
248 2021-10-25 Andrew MacLeod <amacleod@redhat.com>
250 * trans-decl.c (gfc_conv_cfi_to_gfc): Initialize rank to NULL_TREE.
252 2021-10-22 Eric Gallager <egallager@gcc.gnu.org>
255 * Make-lang.in: Allow dvi-formatted documentation
258 2021-10-22 Tobias Burnus <tobias@codesourcery.com>
261 * trans-expr.c (gfc_trans_assignment_1): Add STRIP_NOPS.
263 2021-10-21 Chung-Lin Tang <cltang@codesourcery.com>
265 * decl.c (gfc_match_end): Add COMP_OMP_STRICTLY_STRUCTURED_BLOCK case
266 together with COMP_BLOCK.
267 * parse.c (parse_omp_structured_block): Change return type to
268 'gfc_statement', add handling for strictly-structured block case, adjust
269 recursive calls to parse_omp_structured_block.
270 (parse_executable): Adjust calls to parse_omp_structured_block.
271 * parse.h (enum gfc_compile_state): Add
272 COMP_OMP_STRICTLY_STRUCTURED_BLOCK.
273 * trans-openmp.c (gfc_trans_omp_workshare): Add EXEC_BLOCK case
276 2021-10-21 Sandra Loosemore <sandra@codesourcery.com>
279 * expr.c (gfc_simplify_expr): Handle GFC_ISYM_SHAPE along with
280 GFC_ISYM_LBOUND and GFC_ISYM_UBOUND.
281 * trans-array.c (gfc_conv_ss_startstride): Likewise.
282 (set_loop_bounds): Likewise.
283 * trans-intrinsic.c (gfc_trans_intrinsic_bound): Extend to
284 handle SHAPE. Correct logic for zero-size special cases and
285 detecting assumed-rank arrays associated with an assumed-size
287 (gfc_conv_intrinsic_shape): Deleted.
288 (gfc_conv_intrinsic_function): Handle GFC_ISYM_SHAPE like
289 GFC_ISYM_LBOUND and GFC_ISYM_UBOUND.
290 (gfc_add_intrinsic_ss_code): Likewise.
291 (gfc_walk_intrinsic_bound): Likewise.
293 2021-10-20 Chung-Lin Tang <cltang@codesourcery.com>
295 * openmp.c (gfc_match_omp_clause_reduction): Add 'openmp_target' default
296 false parameter. Add 'always,tofrom' map for OMP_LIST_IN_REDUCTION case.
297 (gfc_match_omp_clauses): Add 'openmp_target' default false parameter,
298 adjust call to gfc_match_omp_clause_reduction.
299 (match_omp): Adjust call to gfc_match_omp_clauses
300 * trans-openmp.c (gfc_trans_omp_taskgroup): Add call to
301 gfc_match_omp_clause, create and return block.
303 2021-10-19 Tobias Burnus <tobias@codesourcery.com>
305 * trans-types.c (create_fn_spec): For allocatable/pointer
306 character(len=:), use 'w' not 'R' as fn spec for the length dummy
309 2021-10-19 Tobias Burnus <tobias@codesourcery.com>
312 * trans-expr.c (gfc_conv_procedure_call): Use TREE_OPERAND not
313 build_fold_indirect_ref_loc to undo an ADDR_EXPR.
315 2021-10-18 Tobias Burnus <tobias@codesourcery.com>
324 * decl.c (gfc_verify_c_interop_param): Remove 'sorry' for
325 scalar allocatable/pointer and len=*.
326 * expr.c (is_CFI_desc): Return true for for those.
327 * gfortran.h (CFI_type_kind_shift, CFI_type_mask,
328 CFI_type_from_type_kind, CFI_VERSION, CFI_MAX_RANK,
329 CFI_attribute_pointer, CFI_attribute_allocatable,
330 CFI_attribute_other, CFI_type_Integer, CFI_type_Logical,
331 CFI_type_Real, CFI_type_Complex, CFI_type_Character,
332 CFI_type_ucs4_char, CFI_type_struct, CFI_type_cptr,
333 CFI_type_cfunptr, CFI_type_other): New #define.
334 * trans-array.c (CFI_FIELD_BASE_ADDR, CFI_FIELD_ELEM_LEN,
335 CFI_FIELD_VERSION, CFI_FIELD_RANK, CFI_FIELD_ATTRIBUTE,
336 CFI_FIELD_TYPE, CFI_FIELD_DIM, CFI_DIM_FIELD_LOWER_BOUND,
337 CFI_DIM_FIELD_EXTENT, CFI_DIM_FIELD_SM,
338 gfc_get_cfi_descriptor_field, gfc_get_cfi_desc_base_addr,
339 gfc_get_cfi_desc_elem_len, gfc_get_cfi_desc_version,
340 gfc_get_cfi_desc_rank, gfc_get_cfi_desc_type,
341 gfc_get_cfi_desc_attribute, gfc_get_cfi_dim_item,
342 gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm):
343 New define/functions to access the CFI array descriptor.
344 (gfc_conv_descriptor_type): New function for the GFC descriptor.
345 (gfc_get_array_span): Handle expr of CFI descriptors and
346 assumed-type descriptors.
347 (gfc_trans_array_bounds): Remove 'static'.
348 (gfc_conv_expr_descriptor): For assumed type, use the dtype of
350 (structure_alloc_comps): Remove ' ' inside tabs.
351 * trans-array.h (gfc_trans_array_bounds, gfc_conv_descriptor_type,
352 gfc_get_cfi_desc_base_addr, gfc_get_cfi_desc_elem_len,
353 gfc_get_cfi_desc_version, gfc_get_cfi_desc_rank,
354 gfc_get_cfi_desc_type, gfc_get_cfi_desc_attribute,
355 gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm):
357 * trans-decl.c (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi):
359 (gfc_build_builtin_function_decls): Remove their initialization.
360 (gfc_get_symbol_decl, create_function_arglist,
361 gfc_trans_deferred_vars): Update for CFI.
362 (convert_CFI_desc): Remove and replace by ...
363 (gfc_conv_cfi_to_gfc): ... this function
364 (gfc_generate_function_code): Call it; create local GFC var for CFI.
365 * trans-expr.c (gfc_maybe_dereference_var): Handle CFI.
366 (gfc_conv_subref_array_arg): Handle the if-noncontigous-only copy in
367 when the result should be a descriptor.
368 (gfc_conv_gfc_desc_to_cfi_desc): Completely rewritten.
369 (gfc_conv_procedure_call): CFI fixes.
370 * trans-openmp.c (gfc_omp_is_optional_argument,
371 gfc_omp_check_optional_argument): Handle optional
373 * trans-stmt.c (gfc_trans_select_rank_cases): Cleanup, avoid invalid
374 code for allocatable/pointer dummies, which cannot be assumed size.
375 * trans-types.c (gfc_cfi_descriptor_base): New global var.
376 (gfc_get_dtype_rank_type): Skip rank init for rank < 0.
377 (gfc_sym_type): Handle CFI dummies.
378 (gfc_get_function_type): Update call.
379 (gfc_get_cfi_dim_type, gfc_get_cfi_type): New.
380 * trans-types.h (gfc_sym_type): Update prototype.
381 (gfc_get_cfi_type): New prototype.
382 * trans.c (gfc_trans_runtime_check): Make conditions more consistent
383 to avoid '<logical> AND_THEN <long int>' in conditions.
384 * trans.h (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi): Remove
385 global-var declaration.
387 2021-10-18 Tobias Burnus <tobias@codesourcery.com>
390 * intrinsic.c (gfc_convert_type_warn): Fix checks by checking CLASS
391 and do typcheck in correct order for type extension.
392 * misc.c (gfc_typename): Print proper not internal CLASS type name.
394 2021-10-15 Harald Anlauf <anlauf@gmx.de>
395 Tobias Burnus <tobias@codesourcery.com>
398 * decl.c (match_clist_expr): Set rank/shape of clist initializer
400 * resolve.c (resolve_structure_cons): In a structure constructor,
401 compare shapes of array components against declared shape.
403 2021-10-14 Harald Anlauf <anlauf@gmx.de>
406 * simplify.c (gfc_simplify_reshape): Replace assert by error
407 message for negative elements in SHAPE array.
409 2021-10-14 Harald Anlauf <anlauf@gmx.de>
412 * check.c (gfc_check_shape): Reorder checks so that invalid KIND
413 arguments can be detected.
415 2021-10-14 Kwok Cheung Yeung <kcy@codesourcery.com>
417 * gfortran.h (enum gfc_statement): Add ST_OMP_DECLARE_VARIANT.
418 (enum gfc_omp_trait_property_kind): New.
419 (struct gfc_omp_trait_property): New.
420 (gfc_get_omp_trait_property): New macro.
421 (struct gfc_omp_selector): New.
422 (gfc_get_omp_selector): New macro.
423 (struct gfc_omp_set_selector): New.
424 (gfc_get_omp_set_selector): New macro.
425 (struct gfc_omp_declare_variant): New.
426 (gfc_get_omp_declare_variant): New macro.
427 (struct gfc_namespace): Add omp_declare_variant field.
428 (gfc_free_omp_declare_variant_list): New prototype.
429 * match.h (gfc_match_omp_declare_variant): New prototype.
430 * openmp.c (gfc_free_omp_trait_property_list): New.
431 (gfc_free_omp_selector_list): New.
432 (gfc_free_omp_set_selector_list): New.
433 (gfc_free_omp_declare_variant_list): New.
434 (gfc_match_omp_clauses): Add extra optional argument. Handle end of
435 clauses for context selectors.
436 (omp_construct_selectors, omp_device_selectors,
437 omp_implementation_selectors, omp_user_selectors): New.
438 (gfc_match_omp_context_selector): New.
439 (gfc_match_omp_context_selector_specification): New.
440 (gfc_match_omp_declare_variant): New.
441 * parse.c: Include tree-core.h and omp-general.h.
442 (decode_omp_directive): Handle 'declare variant'.
443 (case_omp_decl): Include ST_OMP_DECLARE_VARIANT.
444 (gfc_ascii_statement): Handle ST_OMP_DECLARE_VARIANT.
445 (gfc_parse_file): Initialize omp_requires_mask.
446 * symbol.c (gfc_free_namespace): Call
447 gfc_free_omp_declare_variant_list.
448 * trans-decl.c (gfc_get_extern_function_decl): Call
449 gfc_trans_omp_declare_variant.
450 (gfc_create_function_decl): Call gfc_trans_omp_declare_variant.
451 * trans-openmp.c (gfc_trans_omp_declare_variant): New.
452 * trans-stmt.h (gfc_trans_omp_declare_variant): New prototype.
454 2021-10-13 Tobias Burnus <tobias@codesourcery.com>
456 * dump-parse-tree.c (show_omp_clauses): Handle ancestor modifier,
457 avoid ICE for GFC_OMP_ATOMIC_SWAP.
458 * gfortran.h (gfc_omp_clauses): Change 'anecestor' into a bitfield.
460 2021-10-12 Tobias Burnus <tobias@codesourcery.com>
463 * check.c (gfc_check_present): Handle optional CLASS.
464 * interface.c (gfc_compare_actual_formal): Likewise.
465 * trans-array.c (gfc_trans_g77_array): Likewise.
466 * trans-decl.c (gfc_build_dummy_array_decl): Likewise.
467 * trans-types.c (gfc_sym_type): Likewise.
468 * primary.c (gfc_variable_attr): Fixes for dummy and
469 pointer when 'class%_data' is passed.
470 * trans-expr.c (set_dtype_for_unallocated, gfc_conv_procedure_call):
471 For assumed-rank dummy, fix setting rank for dealloc/notassoc actual
472 and setting ubound to -1 for assumed-size actuals.
474 2021-10-10 Harald Anlauf <anlauf@gmx.de>
478 * decl.c (add_init_expr_to_sym): Extend initialization of
479 parameter arrays from scalars to handle derived types.
481 2021-10-09 Harald Anlauf <anlauf@gmx.de>
484 * module.c (read_module): Handle old and new-style relational
485 operators when used in USE module, ONLY: OPERATOR(op).
487 2021-10-08 Sandra Loosemore <sandra@codesourcery.com>
490 * interface.c (gfc_compare_actual_formal): Add diagnostic
491 for F2018:C839. Refactor shared code and fix bugs with class
492 array info lookup, and extend similar diagnostic from PR94110
493 to also cover class types.
495 2021-10-08 Martin Liska <mliska@suse.cz>
497 * options.c (gfc_post_options): Use new macro
500 2021-10-06 Tobias Burnus <tobias@codesourcery.com>
502 * resolve.c (resolve_values): Only show
503 deprecated warning if attr.referenced.
505 2021-10-04 Tobias Burnus <tobias@codesourcery.com>
508 * resolve.c (can_generate_init, resolve_fl_variable_derived,
509 resolve_symbol): Only do initialization with intent(out) if not
510 inside of an interface block.
512 2021-10-01 Martin Sebor <msebor@redhat.com>
515 * array.c: Remove an unnecessary test.
516 * trans-array.c: Same.
518 2021-10-01 Jakub Jelinek <jakub@redhat.com>
520 * gfortran.h (gfc_omp_clauses): Add order_reproducible bitfield.
521 * dump-parse-tree.c (show_omp_clauses): Print REPRODUCIBLE: for it.
522 * openmp.c (gfc_match_omp_clauses): Set order_reproducible for
523 explicit reproducible: modifier.
524 * trans-openmp.c (gfc_trans_omp_clauses): Set
525 OMP_CLAUSE_ORDER_REPRODUCIBLE for order_reproducible.
526 (gfc_split_omp_clauses): Also copy order_reproducible.
528 2021-09-30 Harald Anlauf <anlauf@gmx.de>
531 * simplify.c (simplify_size): Resolve expressions used in array
532 specifications so that SIZE can be simplified.
534 2021-09-30 Harald Anlauf <anlauf@gmx.de>
536 * expr.c: The correct reference to Fortran standard is: F2018:10.1.12.
538 2021-09-30 Tobias Burnus <tobias@codesourcery.com>
542 * trans-intrinsic.c (gfc_conv_same_type_as): Fix handling
544 * trans.h (gfc_vtpr_hash_get): Renamed prototype to ...
545 (gfc_vptr_hash_get): ... this to match function name.
547 2021-09-29 Harald Anlauf <anlauf@gmx.de>
550 * array.c (expand_constructor): Do not dereference NULL pointer.
552 2021-09-27 Tobias Burnus <tobias@codesourcery.com>
555 * trans-array.c (gfc_tree_array_size): New function to
556 find size inline (whole array or one dimension).
557 (array_parameter_size): Use it, take stmt_block as arg.
558 (gfc_conv_array_parameter): Update call.
559 * trans-array.h (gfc_tree_array_size): Add prototype.
560 * trans-decl.c (gfor_fndecl_size0, gfor_fndecl_size1): Remove
562 (gfc_build_intrinsic_function_decls): Remove their initialization.
563 * trans-expr.c (gfc_conv_procedure_call): Update
564 bounds of pointer/allocatable actual args to nonallocatable/nonpointer
565 dummies to be one based.
566 * trans-intrinsic.c (gfc_conv_intrinsic_shape): Fix case for
567 assumed rank with allocatable/pointer dummy.
568 (gfc_conv_intrinsic_size): Update to use inline function.
569 * trans.h (gfor_fndecl_size0, gfor_fndecl_size1): Remove var decl.
571 2021-09-26 Tobias Burnus <tobias@codesourcery.com>
574 * trans-intrinsic.c (gfc_conv_associated): Support assumed-rank
575 'pointer' with scalar/array 'target' argument.
577 2021-09-24 Harald Anlauf <anlauf@gmx.de>
580 * expr.c (is_non_constant_intrinsic): Check for intrinsics
581 excluded in constant expressions (F2018:10.1.2).
582 (gfc_is_constant_expr): Use that check.
584 2021-09-24 Sandra Loosemore <sandra@codesourcery.com>
587 * interface.c (compare_parameter): Enforce F2018 C711.
589 2021-09-24 Tobias Burnus <tobias@codesourcery.com>
592 * scanner.c (load_file): Return void, call (gfc_)fatal_error for
594 (include_line, include_stmt, gfc_new_file): Remove exit call
595 for failed load_file run.
597 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
600 * decl.c (gfc_verify_c_interop_param): Handle F2018 C1557,
603 2021-09-23 Harald Anlauf <anlauf@gmx.de>
604 Tobias Burnus <tobias@codesourcery.com>
607 * trans-intrinsic.c (gfc_conv_allocated): Cleanup. Handle
608 coindexed scalar coarrays.
610 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
613 * interface.c (gfc_compare_actual_formal): Extend existing
614 assumed-type diagnostic to also check for argument with type
617 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
620 * check.c (gfc_check_associated): Allow an assumed-rank
621 array for the pointer argument.
622 * interface.c (compare_parameter): Also give rank mismatch
623 error on assumed-rank array.
625 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
627 * trans-stmt.c (trans_associate_var): Check that result of
628 GFC_DECL_SAVED_DESCRIPTOR is not null before using it.
630 2021-09-22 Tobias Burnus <tobias@codesourcery.com>
633 * cpp.c (gfc_cpp_register_include_paths, gfc_cpp_post_options):
634 Add new bool verbose_missing_dir_warn argument.
635 * cpp.h (gfc_cpp_post_options): Update prototype.
636 * f95-lang.c (gfc_init): Remove duplicated file-not found diag.
637 * gfortran.h (gfc_check_include_dirs): Takes bool
638 verbose_missing_dir_warn arg.
639 (gfc_new_file): Returns now void.
640 * options.c (gfc_post_options): Update to warn for -I and -J,
641 only, by default but for all when user requested.
642 * scanner.c (gfc_do_check_include_dir):
643 (gfc_do_check_include_dirs, gfc_check_include_dirs): Take bool
644 verbose warn arg and update to avoid printing the same message
646 (load_file): Fix indent.
647 (gfc_new_file): Return void and exit when load_file failed
648 as all other load_file users do.
650 2021-09-22 Tobias Burnus <tobias@codesourcery.com>
652 * trans-expr.c (gfc_simple_for_loop): New.
653 * trans.h (gfc_simple_for_loop): New prototype.
655 2021-09-21 Tobias Burnus <tobias@codesourcery.com>
658 * cpp.c: Define GCC_C_COMMON_C for #include "options.h" to make
659 cpp_reason_option_codes available.
660 (gfc_cpp_register_include_paths): Make static, set pfile's
661 warn_missing_include_dirs and move before caller.
662 (gfc_cpp_init_cb): New, cb code moved from ...
663 (gfc_cpp_init_0): ... here.
664 (gfc_cpp_post_options): Call gfc_cpp_init_cb.
665 (cb_cpp_diagnostic_cpp_option): New. As implemented in c-family
666 to match CppReason flags to -W... names.
667 (cb_cpp_diagnostic): Use it to replace single special case.
668 * cpp.h (gfc_cpp_register_include_paths): Remove as now static.
669 * gfortran.h (gfc_check_include_dirs): New prototype.
670 (gfc_add_include_path): Add new bool arg.
671 * options.c (gfc_init_options): Don't set -Wmissing-include-dirs.
672 (gfc_post_options): Set it here after commandline processing. Call
673 gfc_add_include_path with defer_warn=false.
674 (gfc_handle_option): Call it with defer_warn=true.
675 * scanner.c (gfc_do_check_include_dir, gfc_do_check_include_dirs,
676 gfc_check_include_dirs): New. Diagnostic moved from ...
677 (add_path_to_list): ... here, which came before cmdline processing.
678 Take additional bool defer_warn argument.
679 (gfc_add_include_path): Take additional defer_warn arg.
680 * scanner.h (struct gfc_directorylist): Reorder for alignment issues,
683 2021-09-20 Tobias Burnus <tobias@codesourcery.com>
685 * gfortran.h (gfc_omp_clauses): Add order_unconstrained.
686 * dump-parse-tree.c (show_omp_clauses): Dump it.
687 * openmp.c (gfc_match_omp_clauses): Match unconstrained/reproducible
688 modifiers to ordered(concurrent).
689 (OMP_DISTRIBUTE_CLAUSES): Accept ordered clause.
690 (resolve_omp_clauses): Reject ordered + order on same directive.
691 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): Pass
692 on unconstrained modifier of ordered(concurrent).
694 2021-09-17 Harald Anlauf <anlauf@gmx.de>
697 * trans-decl.c (gfc_finish_var_decl): Disable the warning message
698 for variables moved from stack to static storange if they are
699 declared in the main, but allow the move to happen.
701 2021-09-17 Sandra Loosemore <sandra@codesourcery.com>
703 * intrinsic.texi (ISO_C_BINDING): Change C_FLOAT128 to correspond
704 to _Float128 rather than __float128.
705 * iso-c-binding.def (c_float128): Update comments.
706 * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Likewise.
707 (build_round_expr): Likewise.
708 (gfc_build_intrinsic_lib_fndcecls): Likewise.
709 * trans-types.h (gfc_real16_is_float128): Likewise.
711 2021-09-16 Harald Anlauf <anlauf@gmx.de>
714 * trans-expr.c (gfc_conv_procedure_call): Wrap deallocation of
715 allocatable components of optional allocatable derived type
716 procedure arguments with INTENT(OUT) into a presence check.
718 2021-09-14 Harald Anlauf <anlauf@gmx.de>
721 * resolve.c (resolve_entries): Attempt to recover cleanly after
722 rejecting mismatched function entries.
724 2021-09-14 Tobias Burnus <tobias@codesourcery.com>
727 * parse.c (gfc_ascii_statement): Add missing ST_OMP_END_SCOPE.
729 2021-09-13 Harald Anlauf <anlauf@gmx.de>
732 * decl.c (add_init_expr_to_sym): For proper initialization of
733 array-valued named constants the array bounds need to be
734 simplified before adding the initializer.
736 2021-09-13 Harald Anlauf <anlauf@gmx.de>
739 * expr.c (find_substring_ref): Handle given substring start and
740 end indices as signed integers, not unsigned.
742 2021-09-09 Harald Anlauf <anlauf@gmx.de>
745 * trans-expr.c (gfc_conv_substring): Do not generate substring
746 bounds check for implied do loop index variable before it actually
749 2021-09-08 liuhongt <hongtao.liu@intel.com>
751 * options.c (gfc_post_options): Issue an error for
752 -fexcess-precision=16.
754 2021-09-07 Harald Anlauf <anlauf@gmx.de>
757 * expr.c (find_array_element): When bounds cannot be determined as
758 constant, return error instead of aborting.
760 2021-09-07 Marcel Vollweiler <marcel@codesourcery.com>
762 * openmp.c (gfc_match_omp_flush): Parse 'seq_cst' clause on 'flush'
764 * trans-openmp.c (gfc_trans_omp_flush): Handle OMP_MEMORDER_SEQ_CST.
766 2021-09-03 Tobias Burnus <tobias@codesourcery.com>
768 * decl.c (gfc_verify_c_interop_param): Reject pointer with
769 CONTIGUOUS attributes as dummy arg. Reject character len > 1
770 when passed as byte stream.
772 2021-09-01 Harald Anlauf <anlauf@gmx.de>
775 * resolve.c (resolve_common_vars): Fix grammar and improve wording
776 of error message rejecting an unlimited polymorphic in COMMON.
778 2021-08-31 Harald Anlauf <anlauf@gmx.de>
781 * simplify.c (substring_has_constant_len): Minimize checks for
782 substring expressions being allowed.
784 2021-08-31 Marcel Vollweiler <marcel@codesourcery.com>
786 * gfortran.h: Add variable for 'ancestor' in struct gfc_omp_clauses.
787 * openmp.c (gfc_match_omp_clauses): Parse device-modifiers 'device_num'
788 and 'ancestor' in 'target device' clauses.
789 * trans-openmp.c (gfc_trans_omp_clauses): Set OMP_CLAUSE_DEVICE_ANCESTOR.
791 2021-08-30 Harald Anlauf <anlauf@gmx.de>
794 * match.c (gfc_match_goto): Allow for whitespace in parsing list
797 2021-08-30 Harald Anlauf <anlauf@gmx.de>
800 * resolve.c (resolve_allocate_expr): An unlimited polymorphic
801 argument to ALLOCATE must be ALLOCATABLE or a POINTER. Fix the
804 2021-08-28 Harald Anlauf <anlauf@gmx.de>
807 * resolve.c (resolve_entries): For functions of type CHARACTER
808 tighten the checks for matching characteristics.
810 2021-08-25 Lewis Hyatt <lhyatt@gmail.com>
813 * cpp.c (gfc_cpp_post_options): Call new function
814 diagnostic_initialize_input_context().
816 2021-08-24 Harald Anlauf <anlauf@gmx.de>
819 * trans-decl.c (gfc_finish_var_decl): Adjust check to handle
820 implicit SAVE as well as variables in the main program. Improve
821 warning message text.
823 2021-08-23 Tobias Burnus <tobias@codesourcery.com>
825 * openmp.c (gfc_match_dupl_check, gfc_match_dupl_memorder,
826 gfc_match_dupl_atomic): New.
827 (gfc_match_omp_clauses): Use them; remove duplicate
828 'release'/'relaxed' clause matching; improve error dignostic
831 2021-08-23 Tobias Burnus <tobias@codesourcery.com>
833 * dump-parse-tree.c (show_omp_clauses): Handle 'strict' modifier
834 on grainsize/num_tasks
835 * gfortran.h (gfc_omp_clauses): Add grainsize_strict
836 and num_tasks_strict.
837 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
838 Handle 'strict' modifier on grainsize/num_tasks.
839 * openmp.c (gfc_match_omp_clauses): Likewise.
841 2021-08-20 Tobias Burnus <tobias@codesourcery.com>
844 (error_uinteger): Take 'long long unsigned' instead
845 of 'long unsigned' as argumpent.
846 (error_integer): Take 'long long' instead of 'long'.
847 (error_hwuint, error_hwint): New.
848 (error_print): Update to handle 'll' and 'w'
850 * simplify.c (substring_has_constant_len): Use '%wd'
853 2021-08-20 Harald Anlauf <anlauf@gmx.de>
856 * simplify.c (substring_has_constant_len): Fix format string of
857 gfc_error, pass HOST_WIDE_INT bounds values via char buffer.
859 2021-08-20 Tobias Burnus <tobias@codesourcery.com>
861 * dump-parse-tree.c (show_omp_clauses): Handle 'at', 'severity'
862 and 'message' clauses.
863 (show_omp_node, show_code_node): Handle EXEC_OMP_ERROR.
864 * gfortran.h (gfc_statement): Add ST_OMP_ERROR.
865 (gfc_omp_severity_type, gfc_omp_at_type): New.
866 (gfc_omp_clauses): Add 'at', 'severity' and 'message' clause;
867 use more bitfields + ENUM_BITFIELD.
868 (gfc_exec_op): Add EXEC_OMP_ERROR.
869 * match.h (gfc_match_omp_error): New.
870 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_(AT,SEVERITY,MESSAGE).
871 (gfc_match_omp_clauses): Handle new clauses.
872 (OMP_ERROR_CLAUSES, gfc_match_omp_error): New.
873 (resolve_omp_clauses): Resolve new clauses.
874 (omp_code_to_statement, gfc_resolve_omp_directive): Handle
876 * parse.c (decode_omp_directive, next_statement,
877 gfc_ascii_statement): Handle 'omp error'.
878 * resolve.c (gfc_resolve_blocks): Likewise.
879 * st.c (gfc_free_statement): Likewise.
880 * trans-openmp.c (gfc_trans_omp_error): Likewise.
881 (gfc_trans_omp_directive): Likewise.
882 * trans.c (trans_code): Likewise.
884 2021-08-20 Jakub Jelinek <jakub@redhat.com>
886 * types.def (BT_FN_VOID_CONST_PTR_SIZE): New DEF_FUNCTION_TYPE_2.
887 * f95-lang.c (ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST): Define.
889 2021-08-19 Harald Anlauf <anlauf@gmx.de>
892 * simplify.c (substring_has_constant_len): New.
893 (gfc_simplify_len): Handle case of substrings with constant
896 2021-08-18 Tobias Burnus <tobias@codesourcery.com>
898 * match.h (gfc_match_omp_nothing): New.
899 * openmp.c (gfc_match_omp_nothing): New.
900 * parse.c (decode_omp_directive): Match 'nothing' directive.
902 2021-08-17 Tobias Burnus <tobias@codesourcery.com>
904 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
906 * gfortran.h (enum gfc_statement): Add ST_OMP_(END_)SCOPE.
907 (enum gfc_exec_op): Add EXEC_OMP_SCOPE.
908 * match.h (gfc_match_omp_scope): New.
909 * openmp.c (OMP_SCOPE_CLAUSES): Define
910 (gfc_match_omp_scope): New.
911 (gfc_match_omp_cancellation_point, gfc_match_omp_end_nowait):
912 Improve error diagnostic.
913 (omp_code_to_statement): Handle ST_OMP_SCOPE.
914 (gfc_resolve_omp_directive): Handle EXEC_OMP_SCOPE.
915 * parse.c (decode_omp_directive, next_statement,
916 gfc_ascii_statement, parse_omp_structured_block,
917 parse_executable): Handle OpenMP's scope construct.
918 * resolve.c (gfc_resolve_blocks): Likewise
919 * st.c (gfc_free_statement): Likewise
920 * trans-openmp.c (gfc_trans_omp_scope): New.
921 (gfc_trans_omp_directive): Call it.
922 * trans.c (trans_code): handle EXEC_OMP_SCOPE.
924 2021-08-16 Tobias Burnus <tobias@codesourcery.com>
926 * dump-parse-tree.c (show_omp_clauses): Handle 'filter' clause.
927 (show_omp_node, show_code_node): Handle (combined) omp masked construct.
928 * frontend-passes.c (gfc_code_walker): Likewise.
929 * gfortran.h (enum gfc_statement): Add ST_OMP_*_MASKED*.
930 (enum gfc_exec_op): Add EXEC_OMP_*_MASKED*.
931 * match.h (gfc_match_omp_masked, gfc_match_omp_masked_taskloop,
932 gfc_match_omp_masked_taskloop_simd, gfc_match_omp_parallel_masked,
933 gfc_match_omp_parallel_masked_taskloop,
934 gfc_match_omp_parallel_masked_taskloop_simd): New prototypes.
935 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_FILTER.
936 (gfc_match_omp_clauses): Match it.
937 (OMP_MASKED_CLAUSES, gfc_match_omp_parallel_masked,
938 gfc_match_omp_parallel_masked_taskloop,
939 gfc_match_omp_parallel_masked_taskloop_simd,
940 gfc_match_omp_masked, gfc_match_omp_masked_taskloop,
941 gfc_match_omp_masked_taskloop_simd): New.
942 (resolve_omp_clauses): Resolve filter clause.
943 (gfc_resolve_omp_parallel_blocks, resolve_omp_do,
944 omp_code_to_statement, gfc_resolve_omp_directive): Handle
945 omp masked constructs.
946 * parse.c (decode_omp_directive, case_exec_markers,
947 gfc_ascii_statement, parse_omp_do, parse_omp_structured_block,
948 parse_executable): Likewise.
949 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
950 * st.c (gfc_free_statement): Likewise.
951 * trans-openmp.c (gfc_trans_omp_clauses): Handle filter clause.
952 (GFC_OMP_SPLIT_MASKED, GFC_OMP_MASK_MASKED): New enum values.
953 (gfc_trans_omp_masked): New.
954 (gfc_split_omp_clauses): Handle combined masked directives.
955 (gfc_trans_omp_master_taskloop): Rename to ...
956 (gfc_trans_omp_master_masked_taskloop): ... this; handle also
957 combined masked directives.
958 (gfc_trans_omp_parallel_master): Rename to ...
959 (gfc_trans_omp_parallel_master_masked): ... this; handle
960 combined masked directives.
961 (gfc_trans_omp_directive): Handle EXEC_OMP_*_MASKED*.
962 * trans.c (trans_code): Likewise.
964 2021-08-15 Harald Anlauf <anlauf@gmx.de>
967 * match.c (sync_statement): Replace %v code by %e in gfc_match to
968 allow for function references as STAT and ERRMSG arguments.
969 * resolve.c (resolve_sync): Adjust checks of STAT= and ERRMSG= to
970 being definable arguments. Function references with a data
971 pointer result are accepted.
972 * trans-stmt.c (gfc_trans_sync): Adjust assertion.
974 2021-08-12 Tobias Burnus <tobias@codesourcery.com>
976 * gfortran.h (gfc_omp_proc_bind_kind): Add OMP_PROC_BIND_PRIMARY.
977 * dump-parse-tree.c (show_omp_clauses): Add TODO comment to
978 change 'master' to 'primary' in proc_bind for OpenMP 5.1.
979 * intrinsic.texi (OMP_LIB): Mention OpenMP 5.1; add
980 omp_proc_bind_primary.
981 * openmp.c (gfc_match_omp_clauses): Accept
982 'primary' as alias for 'master'.
983 * trans-openmp.c (gfc_trans_omp_clauses): Handle
984 OMP_PROC_BIND_PRIMARY.
986 2021-08-11 Sandra Loosemore <sandra@codesourcery.com>
988 * iso-c-binding.def (c_float128, c_float128_complex): Check
989 float128_type_node instead of gfc_float128_type_node.
990 * trans-types.c (gfc_init_kinds, gfc_build_real_type):
991 Update comments re supported 128-bit floating-point types.
993 2021-08-11 Richard Biener <rguenther@suse.de>
995 * trans-common.c (create_common): Set TREE_THIS_VOLATILE on the
996 COMPONENT_REF if the field is volatile.
998 2021-08-07 Harald Anlauf <anlauf@gmx.de>
1001 * primary.c (gfc_expr_attr): Variable attribute can only be
1002 inquired when symtree is non-NULL.
1004 2021-07-28 Harald Anlauf <anlauf@gmx.de>
1007 * expr.c (gfc_check_vardef_context): Add check for KIND and LEN
1008 parameter inquiries.
1009 * match.c (gfc_match): Fix comment for %v code.
1010 (gfc_match_allocate, gfc_match_deallocate): Replace use of %v code
1011 by %e in gfc_match to allow for function references as STAT and
1013 * resolve.c (resolve_allocate_deallocate): Avoid NULL pointer
1014 dereferences and shortcut for bad STAT and ERRMSG argument to
1015 (DE)ALLOCATE. Remove bogus parts of checks for STAT and ERRMSG.
1017 2021-07-26 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1018 Tobias Burnus <tobias@codesourcery.com>
1025 * trans-decl.c (convert_CFI_desc): Only copy out the descriptor
1027 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Updated attribute
1028 handling which reflect a previous intermediate version of the
1029 standard. Only copy out the descriptor if necessary.
1031 2021-07-23 Harald Anlauf <anlauf@gmx.de>
1034 * check.c (array_check): Adjust check for the case of CLASS
1037 2021-07-21 Thomas Schwinge <thomas@codesourcery.com>
1038 Joseph Myers <joseph@codesourcery.com>
1039 Cesar Philippidis <cesar@codesourcery.com>
1041 * dump-parse-tree.c (show_attr): Update.
1042 * gfortran.h (symbol_attribute): Add 'oacc_routine_nohost' member.
1043 (gfc_omp_clauses): Add 'nohost' member.
1044 * module.c (ab_attribute): Add 'AB_OACC_ROUTINE_NOHOST'.
1045 (attr_bits, mio_symbol_attribute): Update.
1046 * openmp.c (omp_mask2): Add 'OMP_CLAUSE_NOHOST'.
1047 (gfc_match_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'.
1048 (OACC_ROUTINE_CLAUSES): Add 'OMP_CLAUSE_NOHOST'.
1049 (gfc_match_oacc_routine): Update.
1050 * trans-decl.c (add_attributes_to_decl): Update.
1051 * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
1053 2021-07-21 Harald Anlauf <anlauf@gmx.de>
1056 * target-memory.c (gfc_interpret_derived): Size of array component
1057 of derived type can only be computed here for explicit shape.
1058 * trans-types.c (gfc_get_nodesc_array_type): Do not dereference
1061 2021-07-21 Tobias Burnus <tobias@codesourcery.com>
1063 * decl.c (gfc_verify_c_interop_param): Update for F2008 + F2018
1064 changes; reject unsupported bits with 'Error: Sorry,'.
1065 * trans-expr.c (gfc_conv_procedure_call): Fix condition to
1066 For using CFI descriptor with characters.
1068 2021-07-18 Harald Anlauf <anlauf@gmx.de>
1071 * io.c (resolve_tag_format): Extend FORMAT check to unknown type.
1073 2021-07-14 Harald Anlauf <anlauf@gmx.de>
1076 * trans-expr.c (gfc_trans_class_init_assign): Call
1077 gfc_conv_expr_present only for dummy variables.
1079 2021-07-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1082 * frontend-passes.c (traverse_io_block): Adjust test for
1083 when a variable is eligible for the transformation to
1086 2021-06-28 Martin Sebor <msebor@redhat.com>
1088 * trans-array.c (trans_array_constructor): Replace direct uses
1089 of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning.
1090 * trans-decl.c (gfc_build_qualified_array): Same.
1091 (gfc_build_dummy_array_decl): Same.
1092 (generate_local_decl): Same.
1093 (gfc_generate_function_code): Same.
1094 * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
1095 (gfc_omp_clause_copy_ctor): Same.
1096 * trans-types.c (get_dtype_type_node): Same.
1097 (gfc_get_desc_dim_type): Same.
1098 (gfc_get_array_descriptor_base): Same.
1099 (gfc_get_caf_vector_type): Same.
1100 (gfc_get_caf_reference_type): Same.
1101 * trans.c (gfc_create_var_np): Same.
1103 2021-06-23 Tobias Burnus <tobias@codesourcery.com>
1105 * dump-parse-tree.c (show_omp_clauses): Fix enum type used
1106 for dumping gfc_omp_defaultmap_category.
1108 2021-06-23 Andre Vehreschild <vehre@gcc.gnu.org>
1111 * trans-intrinsic.c (conv_co_collective): Check stat for null ptr
1112 before dereferrencing.
1114 2021-06-18 Harald Anlauf <anlauf@gmx.de>
1118 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Unconditionally
1119 convert result of min/max to result type.
1121 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1125 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1127 * match.c (gfc_match_pointer_assignment): Likewise.
1128 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1131 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1134 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1138 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1140 * match.c (gfc_match_pointer_assignment): Likewise.
1141 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1144 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1148 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1150 * match.c (gfc_match_pointer_assignment): Likewise.
1151 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1154 2021-06-15 Tobias Burnus <tobias@codesourcery.com>
1157 * dump-parse-tree.c (show_omp_clauses): Update for defaultmap.
1158 * f95-lang.c (LANG_HOOKS_OMP_ALLOCATABLE_P,
1159 LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
1160 * gfortran.h (enum gfc_omp_defaultmap,
1161 enum gfc_omp_defaultmap_category): New.
1162 * openmp.c (gfc_match_omp_clauses): Update defaultmap matching.
1163 * trans-decl.c (gfc_finish_decl_attrs): Set GFC_DECL_SCALAR_TARGET.
1164 * trans-openmp.c (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New.
1165 (gfc_omp_scalar_p): Take 'ptr_alloc_ok' argument.
1166 (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for
1168 * trans.h (gfc_omp_scalar_p): Update prototype.
1169 (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New.
1170 (struct lang_decl): Add scalar_target.
1171 (GFC_DECL_SCALAR_TARGET, GFC_DECL_GET_SCALAR_TARGET): New.
1173 2021-06-14 Tobias Burnus <tobias@codesourcery.com>
1175 * resolve.c (resolve_variable): Remove *XCNEW used to
1176 nullify nullified memory.
1178 2021-06-09 Martin Liska <mliska@suse.cz>
1180 * intrinsic.texi: Add missing @headitem to tables with a header.
1182 2021-06-09 Jakub Jelinek <jakub@redhat.com>
1185 * trans-openmp.c (gfc_omp_finish_clause): Gimplify OMP_CLAUSE_SIZE.
1187 2021-06-08 Tobias Burnus <tobias@codesourcery.com>
1190 * trans-openmp.c (gfc_add_clause_implicitly): New.
1191 (gfc_split_omp_clauses): Use it.
1192 (gfc_free_split_omp_clauses): New.
1193 (gfc_trans_omp_do_simd, gfc_trans_omp_parallel_do,
1194 gfc_trans_omp_parallel_do_simd, gfc_trans_omp_distribute,
1195 gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_taskloop,
1196 gfc_trans_omp_master_taskloop, gfc_trans_omp_parallel_master): Use it.
1198 2021-06-08 Martin Liska <mliska@suse.cz>
1200 * intrinsic.texi: Fix typo.
1201 * trans-expr.c (gfc_trans_pointer_assignment): Likewise.
1203 2021-06-05 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1210 * trans-array.c (gfc_get_array_span): rework the way character
1211 array "span" was calculated.
1212 (gfc_conv_expr_descriptor): improve handling of character sections
1213 and unlimited polymorphic objects.
1214 * trans-expr.c (gfc_get_character_len): new function to calculate
1215 character string length.
1216 (gfc_get_character_len_in_bytes): new function to calculate
1217 character string length in bytes.
1218 (gfc_conv_scalar_to_descriptor): add call to set the "span".
1219 (gfc_trans_pointer_assignment): set "_len" and antecipate the
1220 initialization of the deferred character length hidden argument.
1221 * trans-intrinsic.c (gfc_conv_associated): set "force_no_tmp" to
1222 avoid the creation of a temporary.
1223 * trans-types.c (gfc_get_dtype_rank_type): rework type detection
1224 so that unlimited polymorphic objects get proper type infomation,
1225 also important for bind(c).
1226 (gfc_get_dtype): add argument to pass the rank if necessary.
1227 (gfc_get_array_type_bounds): cosmetic change to have character
1228 arrays called character instead of unknown.
1229 * trans-types.h (gfc_get_dtype): modify prototype.
1230 * trans.c (get_array_span): rework the way character array "span"
1232 * trans.h (gfc_get_character_len): new prototype.
1233 (gfc_get_character_len_in_bytes): new prototype.
1234 Add "unlimited_polymorphic" flag to "gfc_se" type to signal when
1235 expression carries an unlimited polymorphic object.
1237 2021-06-04 Harald Anlauf <anlauf@gmx.de>
1240 * frontend-passes.c (inline_matmul_assign): Do not inline matmul
1241 if the assignment to the resulting array if it is not of canonical
1242 type (real/integer/complex/logical).
1244 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1246 * dump-parse-tree.c (show_code_node): Handle
1247 EXEC_OMP_(TARGET_)(,PARALLEL_,TEAMS_)LOOP.
1249 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1251 * scanner.c (skip_fixed_omp_sentinel): Set openacc_flag if
1252 this is not an (OpenMP) continuation line.
1253 (skip_fixed_oacc_sentinel): Likewise for openmp_flag and OpenACC.
1254 (gfc_next_char_literal): gfc_error_now to force error for mixed OMP/ACC
1255 continuation once per location and return '\n'.
1257 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1260 * openmp.c (gfc_match_omp_clauses): Fix typo in error message.
1262 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1265 * dump-parse-tree.c (show_omp_clauses): Handle bind clause.
1266 (show_omp_node): Handle loop directive.
1267 * frontend-passes.c (gfc_code_walker): Likewise.
1268 * gfortran.h (enum gfc_statement): Add
1269 ST_OMP_(END_)(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
1270 (enum gfc_omp_bind_type): New.
1271 (gfc_omp_clauses): Use it.
1272 (enum gfc_exec_op): Add EXEC_OMP_(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
1273 * match.h (gfc_match_omp_loop, gfc_match_omp_parallel_loop,
1274 gfc_match_omp_target_parallel_loop, gfc_match_omp_target_teams_loop,
1275 gfc_match_omp_teams_loop): New.
1276 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_BIND.
1277 (gfc_match_omp_clauses): Handle it.
1278 (OMP_LOOP_CLAUSES, gfc_match_omp_loop, gfc_match_omp_teams_loop,
1279 gfc_match_omp_target_teams_loop, gfc_match_omp_parallel_loop,
1280 gfc_match_omp_target_parallel_loop): New.
1281 (resolve_omp_clauses, resolve_omp_do, omp_code_to_statement,
1282 gfc_resolve_omp_directive): Handle omp loop.
1283 * parse.c (decode_omp_directive case_exec_markers, gfc_ascii_statement,
1284 parse_omp_do, parse_executable): Likewise.
1285 (parse_omp_structured_block): Remove ST_ which use parse_omp_do.
1286 * resolve.c (gfc_resolve_blocks): Add omp loop.
1287 * st.c (gfc_free_statement): Likewise.
1288 * trans-openmp.c (gfc_trans_omp_clauses): Handle bind clause.
1289 (gfc_trans_omp_do, gfc_trans_omp_parallel_do, gfc_trans_omp_distribute,
1290 gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_directive):
1291 Handle loop directive.
1292 (gfc_split_omp_clauses): Likewise; fix firstprivate/lastprivate
1293 and (in_)reduction for taskloop.
1294 * trans.c (trans_code): Handle omp loop directive.
1296 2021-06-01 Tobias Burnus <tobias@codesourcery.com>
1299 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
1300 (parallel) master taskloop (simd).
1301 * frontend-passes.c (gfc_code_walker): Set in_omp_workshare
1302 to false for parallel master taskloop (simd).
1303 * gfortran.h (enum gfc_statement):
1304 Add ST_OMP_(END_)(PARALLEL_)MASTER_TASKLOOP(_SIMD).
1305 (enum gfc_exec_op): EXEC_OMP_(PARALLEL_)MASTER_TASKLOOP(_SIMD).
1306 * match.h (gfc_match_omp_master_taskloop,
1307 gfc_match_omp_master_taskloop_simd,
1308 gfc_match_omp_parallel_master_taskloop,
1309 gfc_match_omp_parallel_master_taskloop_simd): New prototype.
1310 * openmp.c (gfc_match_omp_parallel_master_taskloop,
1311 gfc_match_omp_parallel_master_taskloop_simd,
1312 gfc_match_omp_master_taskloop,
1313 gfc_match_omp_master_taskloop_simd): New.
1314 (gfc_match_omp_taskloop_simd): Permit 'reduction' clause.
1315 (resolve_omp_clauses): Handle new combined directives; remove
1316 inscan-reduction check to reduce multiple errors; add
1317 task-reduction error for 'taskloop simd'.
1318 (gfc_resolve_omp_parallel_blocks,
1319 resolve_omp_do, omp_code_to_statement,
1320 gfc_resolve_omp_directive): Handle new combined constructs.
1321 * parse.c (decode_omp_directive, next_statement,
1322 gfc_ascii_statement, parse_omp_do, parse_omp_structured_block,
1323 parse_executable): Likewise.
1324 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
1325 * st.c (gfc_free_statement): Likewise.
1326 * trans.c (trans_code): Likewise.
1327 * trans-openmp.c (gfc_split_omp_clauses,
1328 gfc_trans_omp_directive): Likewise.
1329 (gfc_trans_omp_parallel_master): Move after gfc_trans_omp_master_taskloop;
1330 handle parallel master taskloop (simd) as well.
1331 (gfc_trans_omp_taskloop): Take gfc_exec_op as arg.
1332 (gfc_trans_omp_master_taskloop): New.
1334 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
1336 * gfortran.texi (BOZ literal constants): Fix typo.
1338 2021-05-28 Tobias Burnus <tobias@codesourcery.com>
1340 * dump-parse-tree.c (show_iterator): New.
1341 (show_omp_namelist): Handle iterators.
1342 (show_omp_clauses): Handle affinity.
1343 * gfortran.h (gfc_free_omp_namelist): New union with 'udr' and new 'ns'.
1344 * match.c (gfc_free_omp_namelist): Add are to choose union element.
1345 * openmp.c (gfc_free_omp_clauses, gfc_match_omp_detach,
1346 gfc_match_omp_clause_reduction, gfc_match_omp_flush): Update
1347 call to gfc_free_omp_namelist.
1348 (gfc_match_omp_variable_list): Likewise; permit preceeding whitespace.
1349 (enum omp_mask1): Add OMP_CLAUSE_AFFINITY.
1350 (gfc_match_iterator): New.
1351 (gfc_match_omp_clauses): Use it; update call to gfc_free_omp_namelist.
1352 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_AFFINITY.
1353 (gfc_match_omp_taskwait): Match depend clause.
1354 (resolve_omp_clauses): Handle affinity; update for udr/union change.
1355 (gfc_resolve_omp_directive): Resolve clauses of taskwait.
1356 * st.c (gfc_free_statement): Update gfc_free_omp_namelist call.
1357 * trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Likewise
1358 (handle_iterator): New.
1359 (gfc_trans_omp_clauses): Handle iterators for depend/affinity clause.
1360 (gfc_trans_omp_taskwait): Handle depend clause.
1361 (gfc_trans_omp_directive): Update call.
1363 2021-05-27 Harald Anlauf <anlauf@gmx.de>
1366 * trans-intrinsic.c (gfc_conv_intrinsic_size): Use CLASS data
1367 attributes for CLASS arrays for generation of runtime error.
1369 2021-05-27 Harald Anlauf <anlauf@gmx.de>
1372 * trans-array.c (gfc_conv_ss_startstride): Do not call check for
1373 presence of a dummy argument when a symbol actually refers to a
1376 2021-05-25 Tobias Burnus <tobias@codesourcery.com>
1377 Johannes Nendwich <a08727063@unet.univie.ac.at>
1379 * intrinsic.texi (GERROR, GETARGS, GETLOG, NORM2, PARITY, RANDOM_INIT,
1380 RANDOM_NUMBER): Fix typos and copy'n'paste errors.
1382 2021-05-24 Tobias Burnus <tobias@codesourcery.com>
1385 * trans-expr.c (gfc_copy_class_to_class): Add unshare_expr.
1386 * trans-openmp.c (gfc_is_polymorphic_nonptr,
1387 gfc_is_unlimited_polymorphic_nonptr): New.
1388 (gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor): Handle
1389 polymorphic scalars.
1391 2021-05-23 Harald Anlauf <anlauf@gmx.de>
1394 * trans-expr.c (gfc_conv_procedure_call): Adjust check for
1395 implicit conversion of actual argument to an unlimited polymorphic
1398 2021-05-23 Tobias Burnus <tobias@codesourcery.com>
1400 * intrinsic.texi (ATOMIC_ADD, ATOMIC_FETCH_ADD): Use the
1401 proper variable name in the description.
1403 2021-05-22 Andre Vehreschild <vehre@gcc.gnu.org>
1404 Steve Kargl <kargl@gcc.gnu.org>
1407 * trans-decl.c (gfc_build_builtin_function_decls): Move decl.
1408 * trans-intrinsic.c (conv_intrinsic_random_init): Use bool for
1409 lib-call of caf_random_init instead of logical (4-byte).
1410 * trans.h: Add tree var for random_init.
1412 2021-05-20 Marcel Vollweiler <marcel@codesourcery.com>
1414 * openmp.c (gfc_match_omp_clauses): Support map-type-modifier 'close'.
1416 2021-05-18 Tobias Burnus <tobias@codesourcery.com>
1419 * openmp.c (omp_code_to_statement): Add missing EXEC_OMP_DEPOBJ.
1421 2021-05-17 Harald Anlauf <anlauf@gmx.de>
1424 * trans-decl.c (gfc_finish_var_decl): Add check for explicit SAVE
1427 2021-05-17 Tobias Burnus <tobias@codesourcery.com>
1430 * resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in
1433 2021-05-14 Tobias Burnus <tobias@codesourcery.com>
1435 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
1436 EXEC_OMP_PARALLEL_MASTER.
1437 * frontend-passes.c (gfc_code_walker): Likewise.
1438 * gfortran.h (enum gfc_statement): Add ST_OMP_PARALLEL_MASTER and
1439 ST_OMP_END_PARALLEL_MASTER.
1440 (enum gfc_exec_op): Add EXEC_OMP_PARALLEL_MASTER..
1441 * match.h (gfc_match_omp_parallel_master): Handle it.
1442 * openmp.c (gfc_match_omp_parallel_master, resolve_omp_clauses,
1443 omp_code_to_statement, gfc_resolve_omp_directive): Likewise.
1444 * parse.c (decode_omp_directive, case_exec_markers,
1445 gfc_ascii_statement, parse_omp_structured_block,
1446 parse_executable): Likewise.
1447 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
1448 * st.c (gfc_free_statement): Likewise.
1449 * trans-openmp.c (gfc_trans_omp_parallel_master,
1450 gfc_trans_omp_workshare, gfc_trans_omp_directive): Likewise.
1451 * trans.c (trans_code): Likewise.
1453 2021-05-14 Tobias Burnus <tobias@codesourcery.com>
1455 * resolve.c (resolve_symbol): Handle implicit SAVE of main-program
1456 for vars in 'omp threadprivate' and 'omp declare target'.
1458 2021-05-10 Martin Liska <mliska@suse.cz>
1460 * decl.c (variable_decl): Use startswith
1461 function instead of strncmp.
1462 (gfc_match_end): Likewise.
1463 * gfortran.h (gfc_str_startswith): Likewise.
1464 * module.c (load_omp_udrs): Likewise.
1465 (read_module): Likewise.
1466 * options.c (gfc_handle_runtime_check_option): Likewise.
1467 * primary.c (match_arg_list_function): Likewise.
1468 * trans-decl.c (gfc_get_symbol_decl): Likewise.
1469 * trans-expr.c (gfc_conv_procedure_call): Likewise.
1470 * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Likewise.
1472 2021-05-06 Paul Thomas <pault@gcc.gnu.org>
1476 * class.c (gfc_build_class_symbol): Remove the error that
1477 disables assumed size class arrays. Class array types that are
1478 not deferred shape or assumed rank are given a unique name and
1479 placed in the procedure namespace.
1480 * trans-array.c (gfc_trans_g77_array): Obtain the data pointer
1482 (gfc_trans_dummy_array_bias): Suppress the runtime error for
1483 extent violations in explicit shape class arrays because it
1485 * trans-expr.c (gfc_conv_procedure_call): Handle assumed size
1486 class actual arguments passed to non-descriptor formal args by
1487 using the data pointer, stored as the symbol's backend decl.
1489 2021-05-05 Harald Anlauf <anlauf@gmx.de>
1492 * interface.c (gfc_compare_actual_formal): Continue checks after
1493 emitting warning for argument length mismatch.
1494 * trans-expr.c (gfc_conv_procedure_call): Check for NULL pointer
1497 2021-05-04 Tobias Burnus <tobias@codesourcery.com>
1500 * trans-openmp.c (gfc_trans_omp_depobj): Fix pasto in enum values.
1502 2021-04-28 Tobias Burnus <tobias@codesourcery.com>
1504 * openmp.c (gfc_match_omp_variable_list): Gobble whitespace before
1505 checking whether a '%' or parenthesis-open follows as next character.
1507 2021-04-28 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1510 * trans-expr.c (gfc_conv_procedure_call): Evaluate function result
1511 and then pass a pointer.
1513 2021-04-26 Thomas Schwinge <thomas@codesourcery.com>
1514 Nathan Sidwell <nathan@codesourcery.com>
1515 Tom de Vries <vries@codesourcery.com>
1516 Julian Brown <julian@codesourcery.com>
1517 Kwok Cheung Yeung <kcy@codesourcery.com>
1519 * lang.opt (Wopenacc-parallelism): New.
1521 2021-04-24 Harald Anlauf <anlauf@gmx.de>
1524 * check.c (variable_check): Allow function reference having a data
1526 (arg_strlen_is_zero): New function.
1527 (gfc_check_fgetputc_sub): Add static check of character and status
1529 (gfc_check_fgetput_sub): Likewise.
1530 * intrinsic.c (add_subroutines): Fix argument name for the
1531 character argument to intrinsic subroutines fget[c], fput[c].
1533 2021-04-24 Harald Anlauf <anlauf@gmx.de>
1536 * expr.c (gfc_check_vardef_context): Extend check to allow pointer
1537 from a function reference.
1539 2021-04-22 Martin Liska <mliska@suse.cz>
1543 * frontend-passes.c (optimize_expr): Fix typos and missing comments.
1545 2021-04-22 Michael Meissner <meissner@linux.ibm.com>
1548 * trans-intrinsic.c (build_round_expr): If int type is larger than
1549 long long, do the round and convert to the integer type. Do not
1550 try to find a floating point type the exact size of the integer
1553 2021-04-21 Tobias Burnus <tobias@codesourcery.com>
1555 * dump-parse-tree.c (show_omp_namelist): Handle depobj + mutexinoutset
1556 in the depend clause.
1557 (show_omp_clauses, show_omp_node, show_code_node): Handle depobj.
1558 * gfortran.h (enum gfc_statement): Add ST_OMP_DEPOBJ.
1559 (enum gfc_omp_depend_op): Add OMP_DEPEND_UNSET,
1560 OMP_DEPEND_MUTEXINOUTSET and OMP_DEPEND_DEPOBJ.
1561 (gfc_omp_clauses): Add destroy, depobj_update and depobj.
1562 (enum gfc_exec_op): Add EXEC_OMP_DEPOBJ
1563 * match.h (gfc_match_omp_depobj): Match 'omp depobj'.
1564 * openmp.c (gfc_match_omp_clauses): Add depobj + mutexinoutset
1566 (gfc_match_omp_depobj, resolve_omp_clauses, gfc_resolve_omp_directive):
1567 Handle 'omp depobj'.
1568 * parse.c (decode_omp_directive, next_statement, gfc_ascii_statement):
1570 * resolve.c (gfc_resolve_code): Likewise.
1571 * st.c (gfc_free_statement): Likewise.
1572 * trans-openmp.c (gfc_trans_omp_clauses): Handle depobj + mutexinoutset
1573 in the depend clause.
1574 (gfc_trans_omp_depobj, gfc_trans_omp_directive): Handle EXEC_OMP_DEPOBJ.
1575 * trans.c (trans_code): Likewise.
1577 2021-04-20 Paul Thomas <pault@gcc.gnu.org>
1580 * trans-decl.c (gfc_get_symbol_decl): Replace test for host
1581 association with a check that the current and symbol namespaces
1584 2021-04-19 Thomas Schwinge <thomas@codesourcery.com>
1586 * lang.opt (fopenacc-kernels=): Remove.
1588 2021-04-16 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1591 * trans-array.c (gfc_trans_deferred_array): Add code to initialize
1592 pointers and allocatables with correct TKR parameters.
1594 2021-04-16 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1597 * resolve.c: Add association check before de-referencing pointer.
1599 2021-04-16 Harald Anlauf <anlauf@gmx.de>
1600 Paul Thomas <pault@gcc.gnu.org>
1603 * module.c (write_symtree): Do not write interface of intrinsic
1604 procedure to module file for F2003 and newer.
1606 2021-04-15 Paul Thomas <pault@gcc.gnu.org>
1609 * symbol.c: Remove trailing white space.
1610 * trans-array.c (gfc_trans_create_temp_array): Create a class
1611 temporary for class expressions and assign the new descriptor
1613 (build_class_array_ref): If the class expr can be extracted,
1614 then use that for 'decl'. Class function results are reliably
1615 handled this way. Call gfc_find_and_cut_at_last_class_ref to
1616 eliminate largely redundant code. Remove dead code and recast
1617 the rest of the code to extract 'decl' for remaining cases.
1618 Call gfc_build_spanned_array_ref.
1619 (gfc_alloc_allocatable_for_assignment): Use class descriptor
1620 element length for 'elemsize1'. Eliminate repeat set of dtype
1621 for class expressions.
1622 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Include
1623 additional code from build_class_array_ref, and use optional
1624 gfc_typespec pointer argument.
1625 (gfc_trans_scalar_assign): Make use of pre and post blocks for
1626 all class expressions.
1627 * trans.c (get_array_span): For unlimited polymorphic exprs
1628 multiply the span by the value of the _len field.
1629 (gfc_build_spanned_array_ref): New function.
1630 (gfc_build_array_ref): Call gfc_build_spanned_array_ref and
1631 eliminate repeated code.
1632 * trans.h: Add arg to gfc_find_and_cut_at_last_class_ref and
1633 add prototype for gfc_build_spanned_array_ref.
1635 2021-04-14 Martin Liska <mliska@suse.cz>
1637 * intrinsic.texi: The table has first column empty and it makes
1638 trouble when processing makeinfo --xml output.
1640 2021-04-09 Tobias Burnus <tobias@codesourcery.com>
1643 * trans-types.c (gfc_get_function_type): Also generate hidden
1644 coarray argument for character arguments.
1646 2021-04-03 Paul Thomas <pault@gcc.gnu.org>
1649 * interface.c (compare_parameter): The codimension attribute is
1650 applied to the _data field of class formal arguments.
1652 2021-04-01 Harald Anlauf <anlauf@gmx.de>
1655 * simplify.c (gfc_simplify_transpose): Properly initialize
1658 2021-03-28 Paul Thomas <pault@gcc.gnu.org>
1661 * trans-expr.c (gfc_conv_procedure_call): Use the _data attrs
1662 for class expressions and detect proc pointer evaluations by
1663 the non-null actual argument list.
1665 2021-03-27 Steve Kargl <kargl@gcc.gnu.org>
1667 * misc.c (gfc_typename): Fix off-by-one in buffer sizes.
1669 2021-03-26 Tobias Burnus <tobias@codesourcery.com>
1672 * intrinsic.c (gfc_intrinsic_func_interface): Set
1673 attr.proc = PROC_INTRINSIC if FL_PROCEDURE.
1675 2021-03-24 Tobias Burnus <tobias@codesourcery.com>
1678 * resolve.c (resolve_operator): Make 'msg' buffer larger
1681 2021-03-23 Tobias Burnus <tobias@codesourcery.com>
1684 * trans-decl.c (build_function_decl): Add comment;
1685 increment hidden_typelist for caf_token/caf_offset.
1686 * trans-types.c (gfc_get_function_type): Add comment;
1687 add missing caf_token/caf_offset args.
1689 2021-03-22 Tobias Burnus <tobias@codesourcery.com>
1692 * match.c (select_type_set_tmp, gfc_match_select_type,
1693 gfc_match_select_rank): Fix 'name' buffersize to avoid out of bounds.
1694 * resolve.c (resolve_select_type): Likewise.
1696 2021-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1698 * frontend-passes.c (inline_limit_check): Add rank_a
1699 argument. If a is rank 1, set the second dimension to 1.
1700 (inline_matmul_assign): Pass rank_a argument to inline_limit_check.
1701 (call_external_blas): Likewise.
1703 2021-03-15 Thomas Koenig <tkoenig@gcc.gnu.org>
1706 * frontend-passes.c (doloop_contained_procedure_code):
1707 Properly handle EXEC_IOLENGTH.
1709 2021-03-15 Paul Thomas <pault@gcc.gnu.org>
1712 * trans-stmt.c (gfc_trans_allocate): Mark the initialization
1713 assignment by setting init_flag.
1715 2021-03-14 Harald Anlauf <anlauf@gmx.de>
1716 Paul Thomas <pault@gcc.gnu.org>
1718 * trans-expr.c (gfc_conv_procedure_call): Fix runtime checks for
1720 * trans-intrinsic.c (gfc_conv_intrinsic_size): Likewise.
1722 2021-03-13 Paul Thomas <pault@gcc.gnu.org>
1725 * trans-array.c (gfc_conv_expr_descriptor): For deferred length
1726 length components use the ss_info string length instead of
1727 gfc_get_expr_charlen. Make sure that the deferred string length
1728 is a variable before assigning to it. Otherwise use the expr.
1729 * trans-expr.c (gfc_conv_string_length): Make sure that the
1730 deferred string length is a variable before assigning to it.
1732 2021-03-12 Tobias Burnus <tobias@codesourcery.com>
1735 * resolve.c (resolve_symbol): Accept vars which are in DATA
1736 and hence (either) implicit SAVE (or in common).
1738 2021-03-10 Harald Anlauf <anlauf@gmx.de>
1741 * data.c (gfc_assign_data_value): Reject non-constant character
1743 * trans-array.c (gfc_conv_array_initializer): Restrict loop to
1744 elements which are defined to avoid NULL pointer dereference.
1746 2021-03-10 Tobias Burnus <tobias@codesourcery.com>
1748 * intrinsic.texi (MIN): Correct 'maximum' to 'minimum'.
1750 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
1753 * trans-intrinsic.c (build_round_expr): Do not implicitly assume
1754 that __float128 is the 128-bit floating-point type.
1756 2021-03-08 Harald Anlauf <anlauf@gmx.de>
1759 * data.c (gfc_assign_data_value): Reject variable with PARAMETER
1760 attribute in DATA statement.
1762 2021-03-05 Tobias Burnus <tobias@codesourcery.com>
1766 * invoke.texi (-freal{4,8}-real-*): Extend description.
1767 * primary.c (match_real_constant): Also promote real literals
1768 with '_kind' number.
1770 2021-03-04 Tobias Burnus <tobias@codesourcery.com>
1773 * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Avoid
1774 redoing kind conversions.
1775 * primary.c (match_real_constant): Likewise.
1777 2021-02-28 Jakub Jelinek <jakub@redhat.com>
1780 * openmp.c (gfc_omp_requires_add_clause): Fix up diagnostic message
1782 (resolve_omp_clauses): Likewise.
1784 2021-02-28 Jakub Jelinek <jakub@redhat.com>
1787 * frontend-passes.c (doloop_code): Replace double space in diagnostics
1788 with a single space.
1790 2021-02-24 Paul Thomas <pault@gcc.gnu.org>
1793 * trans-expr.c (gfc_conv_derived_to_class): Add optional arg.
1794 'derived_array' to hold the fixed, parmse expr in the case of
1795 assumed rank formal arguments. Deal with optional arguments.
1796 (gfc_conv_procedure_call): Null 'derived' array for each actual
1797 argument. Add its address to the call to gfc_conv_derived_to_
1798 class. Access the 'data' field of scalar descriptors before
1799 deallocating allocatable components. Also strip NOPs before the
1800 calls to gfc_deallocate_alloc_comp. Use 'derived' array as the
1801 input to gfc_deallocate_alloc_comp if it is available.
1802 * trans.h : Include the optional argument 'derived_array' to
1803 the prototype of gfc_conv_derived_to_class. The default value
1806 2021-02-23 Paul Thomas <pault@gcc.gnu.org>
1809 * resolve.c (resolve_fl_procedure): Include class results in
1810 the test for F2018, C15100.
1811 * trans-array.c (get_class_info_from_ss): Do not use the saved
1812 descriptor to obtain the class expression for variables. Use
1813 gfc_get_class_from_expr instead.
1815 2021-02-23 Harald Anlauf <anlauf@gmx.de>
1818 * simplify.c (gfc_simplify_reshape): Set string length for
1819 character arguments.
1821 2021-02-22 Tobias Burnus <tobias@codesourcery.com>
1824 * trans-openmp.c (gfc_omp_is_optional_argument): Regard optional
1825 dummy procs as nonoptional as no special treatment is needed.
1827 2021-02-21 Harald Anlauf <anlauf@gmx.de>
1829 * trans-expr.c (gfc_conv_procedure_call): Do not add clobber to
1830 allocatable intent(out) argument.
1832 2021-02-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1835 * match.c (gfc_match_namelist): If BT_UNKNOWN, check for
1836 IMPLICIT NONE and and issue an error, otherwise set the type
1837 to its IMPLICIT type so that any subsequent use of objects will
1838 will confirm their types.
1840 2021-02-19 Harald Anlauf <anlauf@gmx.de>
1842 * symbol.c (gfc_add_flavor): Reverse order of conditions.
1844 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
1847 * dependency.c (gfc_dep_resolver): Fix coarray handling.
1849 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
1854 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
1857 * simplify.c (simplify_bound_dim): Honor DIMEN_ELEMENT
1860 2021-02-17 Julian Brown <julian@codesourcery.com>
1862 * openmp.c (resolve_omp_clauses): Disallow selecting components
1863 of arrays of derived type.
1865 2021-02-17 Julian Brown <julian@codesourcery.com>
1867 * trans-openmp.c (gfc_trans_omp_clauses): Handle element selection
1868 for arrays of derived types.
1870 2021-02-16 Tobias Burnus <tobias@codesourcery.com>
1872 * expr.c (gfc_is_simplify_contiguous): Handle REF_INQUIRY, i.e.
1873 %im and %re which are EXPR_VARIABLE.
1874 * openmp.c (resolve_omp_clauses): Diagnose %re/%im explicitly.
1876 2021-02-16 Tobias Burnus <tobias@codesourcery.com>
1879 * io.c (resolve_tag_format): Reject BT_DERIVED/CLASS/VOID
1880 as (array-valued) FORMAT tag.
1882 2021-02-12 Tobias Burnus <tobias@codesourcery.com>
1885 * trans-expr.c (gfc_conv_procedure_call): Don't reset
1886 rank of assumed-rank array.
1888 2021-02-11 Paul Thomas <pault@gcc.gnu.org>
1891 * match.c (gfc_match_call): Include associate names as possible
1892 entities with typebound subroutines. The target needs to be
1893 resolved for the type.
1895 2021-02-11 Paul Thomas <pault@gcc.gnu.org>
1898 * primary.c (gfc_match_varspec): Test for non-null 'previous'
1899 before using its name in the error message.
1901 2021-02-11 Tobias Burnus <tobias@codesourcery.com>
1903 * intrinsic.texi (FINDLOC): Add 'MASK' to argument table.
1904 (MAXLOC, MAXVAL, MINLOC, MINVAL): For 'MASK', remove 'an
1905 array' as scalars are also permitted.
1907 2021-02-10 Julian Brown <julian@codesourcery.com>
1910 * openmp.c (resolve_omp_clauses): Omit OpenACC update in
1911 contiguity check and stride-specified error.
1913 2021-02-04 Julian Brown <julian@codesourcery.com>
1915 * openmp.c (resolve_omp_clauses): Omit OpenACC update in
1916 contiguity check and stride-specified error.
1918 2021-02-04 Julian Brown <julian@codesourcery.com>
1920 * trans-openmp.c (gfc_trans_omp_clauses): Use class_pointer attribute
1923 2021-02-04 Julian Brown <julian@codesourcery.com>
1925 * trans-openmp.c (gfc_trans_omp_clauses): Fix dereferencing for
1928 2021-02-04 Tobias Burnus <tobias@codesourcery.com>
1930 * openmp.c (resolve_omp_clauses): Explicitly diagnose
1931 substrings as not permitted.
1933 2021-02-03 Jeff Law <law@redhat.com>
1935 * intrinsic.texi (ANINT): Fix typo.
1937 2021-02-03 Tobias Burnus <tobias@codesourcery.com>
1940 * dependency.c (gfc_dep_resolver): Treat local access
1941 to coarrays like any array access in dependency analysis.
1943 2021-01-28 Harald Anlauf <anlauf@gmx.de>
1946 * trans.c (gfc_call_malloc): Allocate area of size 1 if passed
1947 size is NULL (as documented).
1949 2021-01-27 Paul Thomas <pault@gcc.gnu.org>
1953 * trans-expr.c (gfc_conv_procedure_call): Suppress the call to
1954 gfc_conv_intrinsic_to_class for unlimited polymorphic procedure
1956 (gfc_trans_assignment_1): Similarly suppress class assignment
1957 for class valued procedure pointers.
1959 2021-01-27 Paul Thomas <pault@gcc.gnu.org>
1962 * trans-array.c (gfc_conv_expr_descriptor): Include elemental
1963 procedure pointers in the assert under the comment 'elemental
1964 function' and eliminate the second, spurious assert.
1966 2021-01-25 Harald Anlauf <anlauf@gmx.de>
1969 * data.c (create_character_initializer): Check substring indices
1971 (gfc_assign_data_value): Catch error returned from
1972 create_character_initializer.
1974 2021-01-25 Tobias Burnus <tobias@codesourcery.com>
1976 * intrinsic.texi (CO_BROADCAST, CO_MIN, CO_REDUCE, CO_SUM): Fix typos.
1978 2021-01-25 Steve Kargl <kargl@gcc.gnu.org>
1981 * resolve.c (resolve_charlen): Check that length expression is
1982 present before testing for scalar/integer..
1984 2021-01-22 Paul Thomas <pault@gcc.gnu.org>
1987 * trans-intrinsic.c (gfc_conv_associated): Do not add a _data
1988 component for scalar class function targets. Instead, fix the
1989 function result and access the _data from that.
1991 2021-01-21 Jorge D'Elia <jdelia@cimec.unl.edu.ar>
1993 * intrinsic.texi (CO_MAX): Fix typo.
1995 2021-01-21 Paul Thomas <pault@gcc.gnu.org>
1998 * decl.c (gfc_match_modproc): It is not an error to find a
1999 module procedure declaration within a contains block.
2000 * expr.c (gfc_check_vardef_context): Pure procedure result is
2001 assignable. Change 'own_scope' accordingly.
2002 * resolve.c (resolve_typebound_procedure): A procedure that
2003 has the module procedure attribute is almost certainly a
2004 module procedure, whatever its interface.
2006 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
2009 * openmp.c (resolve_omp_clauses): Change use_device_ptr
2010 to use_device_addr for unless type(c_ptr); check all
2011 list item for is_device_ptr.
2013 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
2015 * dump-parse-tree.c (show_omp_clauses): Handle detach clause.
2016 * frontend-passes.c (gfc_code_walker): Walk detach expression.
2017 * gfortran.h (struct gfc_omp_clauses): Add detach field.
2018 (gfc_c_intptr_kind): New.
2019 * openmp.c (gfc_free_omp_clauses): Free detach clause.
2020 (gfc_match_omp_detach): New.
2021 (enum omp_mask1): Add OMP_CLAUSE_DETACH.
2022 (enum omp_mask2): Remove OMP_CLAUSE_DETACH.
2023 (gfc_match_omp_clauses): Handle OMP_CLAUSE_DETACH for OpenMP.
2024 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DETACH.
2025 (resolve_omp_clauses): Prevent use of detach with mergeable and
2026 overriding the data sharing mode of the event handle.
2027 * trans-openmp.c (gfc_trans_omp_clauses): Handle detach clause.
2028 * trans-types.c (gfc_c_intptr_kind): New.
2029 (gfc_init_kinds): Initialize gfc_c_intptr_kind.
2031 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
2033 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
2034 ...this. Add extra argument.
2036 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2038 * gfortran.h (gfc_resolve_substring): Add prototype.
2039 * primary.c (match_string_constant): Simplify substrings with
2040 constant starting and ending points.
2041 * resolve.c: Rename resolve_substring to gfc_resolve_substring.
2042 (gfc_resolve_ref): Use renamed function gfc_resolve_substring.
2044 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2047 * resolve.c (resolve_component): Derived type components with
2048 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2050 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2053 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2056 * resolve.c (resolve_component): Derived type components with
2057 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2059 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2062 * resolve.c (resolve_component): Derived type components with
2063 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2065 2021-01-08 Paul Thomas <pault@gcc.gnu.org>
2068 * trans-expr.c (gfc_conv_component_ref): Remove the condition
2069 that deferred character length components only be allocatable.
2071 2021-01-08 Paul Thomas <pault@gcc.gnu.org>
2074 * simplify.c (is_constant_array_expr): If an array constructor
2075 expression has elements other than constants or structures, try
2076 fixing the expression with gfc_reduce_init_expr. Also, if shape
2077 is NULL, obtain the array size and set it.
2079 2021-01-07 Paul Thomas <pault@gcc.gnu.org>
2082 * resolve.c (find_array_spec): Put static prototype for
2083 resolve_assoc_var before this function and call for associate
2086 2021-01-06 Harald Anlauf <anlauf@gmx.de>
2088 * resolve.c (resolve_component): Add check for valid CLASS
2089 reference before trying to access CLASS data.
2091 2021-01-04 Martin Liska <mliska@suse.cz>
2093 * ChangeLog-2018: Remove duplicate ChangeLog entries.
2095 2021-01-01 Harald Anlauf <anlauf@gmx.de>
2097 * class.c (gfc_find_vtab): Add check on attribute is_class.
2099 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2101 * gfortranspec.c (lang_specific_driver): Update copyright notice
2103 * gfc-internals.texi: Bump @copying's copyright year.
2104 * gfortran.texi: Ditto.
2105 * intrinsic.texi: Ditto.
2106 * invoke.texi: Ditto.
2108 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2110 * ChangeLog-2020: Rotate ChangeLog. New file.
2113 Copyright (C) 2021 Free Software Foundation, Inc.
2115 Copying and distribution of this file, with or without modification,
2116 are permitted in any medium without royalty provided the copyright
2117 notice and this notice are preserved.