aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2025-01-02 11:06:31 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2025-01-02 11:06:31 +0100
commit2c08aca65a9ce66ca8cee665838a92684d4ddff3 (patch)
tree1735b7444359d4c34a80d0b4435bf878f6683169 /gcc/fortran
parent55f31c715f75c61b79b37e47e9d0429d062b29db (diff)
downloadgcc-2c08aca65a9ce66ca8cee665838a92684d4ddff3.zip
gcc-2c08aca65a9ce66ca8cee665838a92684d4ddff3.tar.gz
gcc-2c08aca65a9ce66ca8cee665838a92684d4ddff3.tar.bz2
Rotate ChangeLog files.
Rotate ChangeLog files for ChangeLogs with yearly cadence. Also remove empty lines before Form Feed line.
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog3036
-rw-r--r--gcc/fortran/ChangeLog-20021
-rw-r--r--gcc/fortran/ChangeLog-20031
-rw-r--r--gcc/fortran/ChangeLog-20041
-rw-r--r--gcc/fortran/ChangeLog-20051
-rw-r--r--gcc/fortran/ChangeLog-20061
-rw-r--r--gcc/fortran/ChangeLog-20071
-rw-r--r--gcc/fortran/ChangeLog-20081
-rw-r--r--gcc/fortran/ChangeLog-20091
-rw-r--r--gcc/fortran/ChangeLog-20101
-rw-r--r--gcc/fortran/ChangeLog-20111
-rw-r--r--gcc/fortran/ChangeLog-20221
-rw-r--r--gcc/fortran/ChangeLog-20231
-rw-r--r--gcc/fortran/ChangeLog-20243038
14 files changed, 3039 insertions, 3047 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 7683864..6b300a5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -13,3042 +13,8 @@
* intrinsic.texi: Grammar and markup fixes throughout
the file.
-
-2024-12-30 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/117643
- * check.cc (gfc_check_f_c_string): Check arguments of f_c_string().
- * gfortran.h (enum gfc_isym_id): New symbol GFC_ISYM_F_C_STRING.
- * intrinsic.cc (add_functions): Add the ISO C Binding routine f_c_string().
- Wrap nearby long line to less than 80 characters.
- * intrinsic.h (gfc_check_f_c_string): Prototype for gfc_check_f_c_string().
- * iso-c-binding.def (NAMED_FUNCTION): Declare for ISO C Binding
- routine f_c_string().
- * primary.cc (gfc_match_rvalue): Fix comment that has been untrue since 2011.
- Add ISOCBINDING_F_C_STRING to conditional.
- * trans-intrinsic.cc (conv_trim): Specialized version of trim() for
- f_c_string().
- (gfc_conv_intrinsic_function): Use GFC_ISYM_F_C_STRING to trigger in-lining.
-
-2024-12-23 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/118179
- * trans-expr.cc (conv_null_actual): Suppress copying back of
- pointer address for unspecified intent.
-
-2024-12-23 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/116254
- PR fortran/118059
- * trans-array.cc (gfc_trans_create_temp_array): Make sure that
- transformational intrinsics of class objects that change rank,
- most particularly spread, go through the correct code path. Re-
- factor so that changes to the dtype are done on the temporary
- before the class data of the result points to it.
- * trans-expr.cc (arrayfunc_assign_needs_temporary): Character
- array function expressions assigned to an unlimited polymorphic
- variable require a temporary.
-
-2024-12-22 Harald Anlauf <anlauf@gmx.de>
-
- * check.cc (gfc_check_random_seed): Clear gmp variables returned by
- gfc_array_size.
- * expr.cc (gfc_check_pointer_assign): Likewise.
-
-2024-12-22 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/107635
- * gfortran.h (gfc_add_caf_accessor): New function.
- * gfortran.texi: Document new API routines.
- * resolve.cc (get_arrayspec_from_expr): Synthesize the arrayspec
- resulting from an expression, i.e. not only the rank, but also
- the bounds.
- (remove_coarray_from_derived_type): Remove coarray ref from a
- derived type to access it in access routine.
- (convert_coarray_class_to_derived_type): Same but for classes.
- The result is a derived type.
- (split_expr_at_caf_ref): Split an expression at the coarray
- reference to move the reference after the coarray ref into the
- access routine.
- (check_add_new_component): Helper to add variables as
- components to derived type transfered to the access routine.
- (create_get_parameter_type): Create the derived type to transfer
- addressing data to the access routine.
- (create_get_callback): Create the access routine.
- (add_caf_get_intrinsic): Use access routine instead of old
- caf_get.
- * trans-decl.cc (gfc_build_builtin_function_decls): Register new
- API routines.
- (gfc_create_module_variable): Use renamed flag.
- (gfc_emit_parameter_debug_info):
- (struct caf_accessor): Linked list of hash-access routine pairs.
- (gfc_add_caf_accessor): Add a hash-access routine pair to above
- linked list.
- (create_caf_accessor_register): Add all registered hash-access
- routine pairs to the current caf_init.
- (generate_coarray_init): Use routine above.
- (gfc_generate_module_vars): Use renamed flag.
- (generate_local_decl): Same.
- (gfc_generate_function_code): Same.
- (gfc_process_block_locals): Same.
- * trans-intrinsic.cc (conv_shape_to_cst): Build the product of a
- shape.
- (gfc_conv_intrinsic_caf_get): Create call to access routine.
- (conv_caf_send): Adapt to caf_get using less arguments.
- (gfc_conv_intrinsic_function): Same.
- * trans.cc (gfc_trans_force_lval): Helper to ensure that an
- expression can be used as an lvalue-ref.
- * trans.h (gfc_trans_force_lval): See above.
-
-2024-12-22 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/107635
- * gfortran.h (gfc_comp_caf_token): Convenient macro for
- accessing caf_token's tree.
- * resolve.cc (gfc_resolve_ref): Backup caf_lhs when resolving
- expr in array_ref.
- (remove_caf_get_intrinsic): Removed.
- (resolve_variable): Set flag caf_lhs when resolving lhs of
- assignment to prevent insertion of caf_get.
- (resolve_lock_unlock_event): Same, but the lhs is the parameter.
- (resolve_ordinary_assign): Move conversion to caf_send to
- resolve_codes.
- (resolve_codes): Adress caf_get and caf_send here.
- (resolve_fl_derived0): Set component's caf_token when token is
- necessary.
- * trans-array.cc (gfc_conv_array_parameter): Get a coarray for
- expression that have a corank.
- (structure_alloc_comps): Use macro to get caf_token's tree.
- (gfc_alloc_allocatable_for_assignment): Same.
- * trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token):
- Same.
- (gfc_trans_structure_assign): Same.
- * trans-intrinsic.cc (conv_expr_ref_to_caf_ref): Same.
- (has_ref_after_cafref): New function to figure that after a
- reference of a coarray another reference is present.
- (conv_caf_send): Get rhs from correct place, when caf_get is
- not removed.
- * trans-types.cc (gfc_get_derived_type): Get caf_token from
- component and no longer guessing.
-
-2024-12-21 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/104819
- * interface.cc (compare_parameter): For the rank check, NULL()
- inherits the rank of a provided MOLD argument.
- (gfc_compare_actual_formal): Adjust check of NULL() actual argument
- against formal to accept F2008 enhancements (allocatable dummy).
- NULL() with MOLD argument retains a pointer/allocatable attribute.
- * trans-expr.cc (conv_null_actual): Implement passing NULL() to
- derived-type dummy with pointer/allocatable attribute, and ensure
- that the actual rank is passed to an assumed-rank dummy.
- (gfc_conv_procedure_call): Use it.
-
-2024-12-20 Sandra Loosemore <sloosemore@baylibre.com>
-
- * gfortran.texi: Get rid of some unnecessary hyphens throughout
- the file.
- * invoke.texi: Likewise.
-
-2024-12-20 Sandra Loosemore <sloosemore@baylibre.com>
-
- * gfortran.texi: Use the present tense throughout; fix some
- markup issues and awkward wording.
- * invoke.texi: Likewise.
-
-2024-12-20 Sandra Loosemore <sloosemore@baylibre.com>
-
- * gfortran.texi: Fix markup, typos, and indexing throughout the
- file.
- * invoke.texi: Likewise.
-
-2024-12-20 Sandra Loosemore <sloosemore@baylibre.com>
-
- PR fortran/51820
- PR fortran/89632
- PR fortran/109216
- * invoke.texi (Code Gen Options): Further cleanups of the discussion
- of what -funderscoring and -fsecond-underscore do.
-
-2024-12-20 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/118120
- PR fortran/113928
- * trans-array.cc (symbols_could_alias): If one symbol refers to a
- complex type and the other to a real type of the same kind, do not
- a priori exclude the possibility of aliasing.
-
-2024-12-17 Sandra Loosemore <sloosemore@baylibre.com>
-
- PR c/26154
- * gfortran.texi (Standards): Remove redundant info about
- OpenMP/OpenACC standard support.
- (OpenMP): Copy-editing and update version info.
- (OpenACC): Likewise.
- * lang.opt.urls: Regenerated.
-
-2024-12-17 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/117347
- * primary.cc (gfc_match_varspec): Add array constructors for
- guessing their type like with unresolved function calls.
-
-2024-12-16 David Malcolm <dmalcolm@redhat.com>
-
- PR sarif-replay/117943
- * error.cc (gfc_diagnostic_text_starter): Use source-printing
- options from text_output.
-
-2024-12-15 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/117897
- * trans-expr.cc (gfc_trans_assignment_1): RHS pointer function
- results must not be finalized.
-
-2024-12-12 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/117797
- * trans-array.cc (class_array_element_size): New function.
- (gfc_get_array_span): Refactor, using class_array_element_size
- to return the span for descriptors that are the _data component
- of a class expression and then class dummy references. Revert
- the conditions to those before r15-5083 tidying up using 'sym'.
-
-2024-12-11 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/117901
- * trans-stmt.cc (trans_associate_var): A variable character
- length array associate name must generate a DECL expression for
- the data pointer type.
-
-2024-12-09 Harald Anlauf <anlauf@gmx.de>
-
- * expr.cc (find_array_section): Do not initialize GMP variables
- twice.
-
-2024-12-09 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/116261
- * trans-array.cc (gfc_array_init_size): New arg 'explicit_ts',
- to suppress the use of the expr3 element size in the descriptor
- dtype.
- (gfc_array_allocate): New arg 'explicit_ts', used in call to
- gfc_array_init_size.
- * trans-array.h : Modify prototype for gfc_array_allocate for new
- bool argument.
- * trans-stmt.cc (gfc_trans_allocate): Set new argument if the
- typespec is explicit.
-
-2024-12-03 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/102689
- * trans-array.cc (get_array_ref_dim_for_loop_dim): Use the arg1
- class container carried in ss->info as the seed for a lhs in
- class valued transformational intrinsic calls that are not the
- rhs of an assignment. Otherwise, the lhs variable expression is
- taken from the loop chain. For this latter case, the _vptr and
- _len fields are set.
- (gfc_trans_create_temp_array): Use either the lhs expression
- seeds to build a class variable that will take the returned
- descriptor as its _data field. In the case that the arg1 expr.
- is used, 'atmp' must be marked as unused, a typespec built with
- the correct rank and the _vptr and _len fields set. The element
- size is provided for the temporary allocation and to set the
- descriptor span.
- (gfc_array_init_size): When an intrinsic type scalar expr3 is
- used in allocation of a class array, use its element size in
- the descriptor dtype.
- * trans-expr.cc (gfc_conv_class_to_class): Class valued
- transformational intrinsics return the pointer to the array
- descriptor as the _data field of a class temporary. Extract
- directly and return the address of the class temporary.
- (gfc_conv_procedure_call): store the expression for the first
- argument of a class valued transformational intrinsic function
- in the ss info class_container field. Later, use its type as
- the element type in the call to gfc_trans_create_temp_array.
- (fcncall_realloc_result): Add a dtype argument and use it in
- the descriptor, when available.
- (gfc_trans_arrayfunc_assign): For class lhs, build a dtype with
- the lhs rank and the rhs element size and use it in the call to
- fcncall_realloc_result.
-
-2024-12-03 Tobias Burnus <tburnus@baylibre.com>
-
- * trans-decl.cc (gfc_finish_var_decl): Remove setting the alignment.
-
-2024-11-29 Andrew Pinski <quic_apinski@quicinc.com>
-
- PR fortran/117843
- * trans-io.cc (gfc_trans_transfer): Add default case.
-
-2024-11-28 Steven G. Kargl <kargls@comcast.net>
-
- PR fortran/117765
- * resolve.cc (pure_subroutine): Check for an impure subroutine
- call in a BLOCK construct nested within a DO CONCURRENT block.
-
-2024-11-28 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/117791
- * trans-io.cc (gfc_trans_transfer): When an array index depends on
- a function evaluation or an expression, do not use optimized array
- I/O of an array section and fall back to normal scalarization.
-
-2024-11-28 David Malcolm <dmalcolm@redhat.com>
-
- PR c/104896
- * resolve.cc (resolve_operator): Replace "%<%s%>" with "%qs" in
- message wording.
-
-2024-11-27 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/84674
- PR fortran/117768
- * class.cc (add_proc_comp): If the component points to a tbp
- that is abstract, do not return since the new version is more
- likely to be usable.
- * resolve.cc (resolve_fl_derived): Remove the condition that
- rejected a completely empty derived type extension.
-
-2024-11-26 Harald Anlauf <anlauf@gmx.de>
-
- * expr.cc (find_inquiry_ref): Fix memleak introduced by scanning
- the reference chain to find and simplify inquiry references.
- * symbol.cc (gfc_copy_formal_args_intr): Free formal namespace
- when not needed to avoid a front-end memleak.
-
-2024-11-26 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/117774
- * trans-expr.cc (gfc_conv_procedure_call): When passing an array
- to an assumed-rank dummy, terminate search for array reference of
- actual argument before an inquiry reference (e.g. INQUIRY_RE,
- INQUIRY_IM) so that bounds update works properly.
-
-2024-11-26 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/117763
- * trans-array.cc (gfc_get_array_span): Guard against derefences
- of 'expr'. Clean up some typos. Use 'gfc_get_vptr_from_expr'
- for clarity and apply a functional reversion of last section
- that deals with class dummies.
-
-2024-11-25 Steve Kargl <kargls@comcast.net>
-
- PR fortran/117765
- * resolve.cc (check_pure_function): Check the stack to
- see if the function is in a nested BLOCK and, if that
- block is inside a DO_CONCURRENT, issue an error.
-
-2024-11-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/85869
- * trans-expr.cc (trans_class_vptr_len_assignment): To access
- the '_len' field, re must be unlimited polymorphic.
-
-2024-11-24 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/117730
- PR fortran/84674
- * class.cc (add_proc_comp): Only reject a non_overridable if it
- has no overridden procedure and the component is already
- present in the vtype.
- * resolve.cc (resolve_fl_derived): Do not build a vtable for a
- derived type extension that is completely empty.
-
-2024-11-22 Andrew Pinski <quic_apinski@quicinc.com>
-
- PR bootstrap/117737
- * arith.cc (INCLUDE_MEMORY): Remove.
- * array.cc (INCLUDE_MEMORY): Remove.
- * bbt.cc (INCLUDE_MEMORY): Remove.
- * check.cc (INCLUDE_MEMORY): Remove.
- * class.cc (INCLUDE_MEMORY): Remove.
- * constructor.cc (INCLUDE_MEMORY): Remove.
- * convert.cc (INCLUDE_MEMORY): Remove.
- * cpp.cc (INCLUDE_MEMORY): Remove.
- * data.cc (INCLUDE_MEMORY): Remove.
- * decl.cc (INCLUDE_MEMORY): Remove.
- * dependency.cc (INCLUDE_MEMORY): Remove.
- * dump-parse-tree.cc (INCLUDE_MEMORY): Remove.
- * error.cc (INCLUDE_MEMORY): Remove.
- * expr.cc (INCLUDE_MEMORY): Remove.
- * f95-lang.cc (INCLUDE_MEMORY): Remove.
- * frontend-passes.cc (INCLUDE_MEMORY): Remove.
- * interface.cc (INCLUDE_MEMORY): Remove.
- * intrinsic.cc (INCLUDE_MEMORY): Remove.
- * io.cc (INCLUDE_MEMORY): Remove.
- * iresolve.cc (INCLUDE_MEMORY): Remove.
- * match.cc (INCLUDE_MEMORY): Remove.
- * matchexp.cc (INCLUDE_MEMORY): Remove.
- * misc.cc (INCLUDE_MEMORY): Remove.
- * module.cc (INCLUDE_MEMORY): Remove.
- * openmp.cc (INCLUDE_MEMORY): Remove.
- * options.cc (INCLUDE_MEMORY): Remove.
- * parse.cc (INCLUDE_MEMORY): Remove.
- * primary.cc (INCLUDE_MEMORY): Remove.
- * resolve.cc (INCLUDE_MEMORY): Remove.
- * scanner.cc (INCLUDE_MEMORY): Remove.
- * simplify.cc (INCLUDE_MEMORY): Remove.
- * st.cc (INCLUDE_MEMORY): Remove.
- * symbol.cc (INCLUDE_MEMORY): Remove.
- * target-memory.cc (INCLUDE_MEMORY): Remove.
- * trans-array.cc (INCLUDE_MEMORY): Remove.
- * trans-common.cc (INCLUDE_MEMORY): Remove.
- * trans-const.cc (INCLUDE_MEMORY): Remove.
- * trans-decl.cc (INCLUDE_MEMORY): Remove.
- * trans-expr.cc (INCLUDE_MEMORY): Remove.
- * trans-intrinsic.cc (INCLUDE_MEMORY): Remove.
- * trans-io.cc (INCLUDE_MEMORY): Remove.
- * trans-openmp.cc (INCLUDE_MEMORY): Remove.
- * trans-stmt.cc (INCLUDE_MEMORY): Remove.
- * trans-types.cc (INCLUDE_MEMORY): Remove.
- * trans.cc (INCLUDE_MEMORY): Remove.
-
-2024-11-22 Tobias Burnus <tburnus@baylibre.com>
-
- * gfortran.h (gfc_omp_namelist): Cleanup interop internal
- representation.
- * dump-parse-tree.cc (show_omp_namelist): Update for changed
- internal representation.
- * match.cc (gfc_free_omp_namelist): Likewise.
- * openmp.cc (gfc_match_omp_prefer_type, gfc_match_omp_init):
- Likewise; also handle some corner cases better and update for
- newer 6.0 changes related to 'fr'.
- (resolve_omp_clauses): Add type-check for interop variables.
- * trans-openmp.cc (gfc_trans_omp_clauses): Handle init, use
- and destroy clauses.
- (gfc_trans_openmp_interop): New.
- (gfc_trans_omp_directive): Call it.
-
-2024-11-20 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/83135
- * expr.cc (sym_is_from_ancestor): New helper function.
- (gfc_check_vardef_context): Refine checking of PROTECTED attribute
- of symbols that are indirectly use-associated in a submodule.
-
-2024-11-20 Paul-Antoine Arras <parras@baylibre.com>
-
- * types.def (BT_FN_PTR_CONST_PTR_INT): Declare.
-
-2024-11-20 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-intrinsic.cc
- (walk_inline_intrinsic_minmaxloc): Add a scalar element for BACK as
- first item of the chain if BACK is present and there will be nested
- loops.
- (gfc_conv_intrinsic_minmaxloc): Evaluate BACK using an inherited
- scalarization chain if there is a nested loop.
-
-2024-11-20 Mikael Morin <mikael@gcc.gnu.org>
-
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Only get the size
- along DIM instead of the full size if DIM is present.
-
-2024-11-19 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return TRUE
- for MINLOC/MAXLOC with constant DIM and either REAL ARRAY or
- non-scalar MASK.
- (walk_inline_intrinsic_minmaxloc): Walk MASK and if it's an array
- add the chain obtained before that of ARRAY.
- (gfc_conv_intrinsic_minmaxloc): Use the nested loop if there is one.
- To evaluate MASK (respectively ARRAY in the second loop), inherit
- the scalarizer chain if in a nested loop, otherwise keep using the
- chain obtained by walking MASK (respectively ARRAY). If there is a
- nested loop, avoid advancing the parent scalarization chain a second
- time in the second loop.
-
-2024-11-19 Mikael Morin <mikael@gcc.gnu.org>
-
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Use
- conditionals based on the MASK expression rather than on its
- scalarization chains.
-
-2024-11-19 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return TRUE
- if MASK is scalar.
- (walk_inline_intrinsic_minmaxloc): Append to the scalarization chain
- a scalar element for MASK if it's present.
- (gfc_conv_intrinsic_minmaxloc): Use a local gfc_se struct to serve
- as base for all the expressions evaluated in the nested loop. To
- evaluate MASK when there is a nested loop, enable usage of the
- scalarizer and set the original passed in SE argument as current
- scalarization chain element to use. And use the nested loop from
- the scalarizer instead of the local loop in that case.
-
-2024-11-19 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return true
- if DIM is constant, ARRAY is integral and MASK is absent.
- (walk_inline_intrinsic_minmaxloc): If DIM is present, walk ARRAY and
- move the dimension corresponding to DIM to a nested chain, keeping
- the rest of the dimensions as the returned scalarization chain.
- (gfc_conv_intrinsic_minmaxloc): When inside the scalarization loops,
- proceed with inline code generation If DIM is present. If DIM is
- present, skip result array creation and final initialization from
- individual result local variables. If DIM is present and ARRAY has
- rank greater than 1, use the nested loop initialized by the
- scalarizer instead of the local one, use 1 as scalarization
- dimension, and evaluate ARRAY using the inherited scalarization
- chain instead of creating a local one by walking the expression.
-
-2024-11-18 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/53357
- * dependency.cc (gfc_dep_compare_expr): Return correct result if
- relationship of expressions could not be determined.
- * interface.cc (gfc_check_result_characteristics): Implement error
- messages if character function declations and references do not
- agree, else emit warning in cases where a mismatch is suspected.
- * trans-stmt.cc (gfc_trans_allocate): Implement a string length
- check for -fcheck=bounds.
-
-2024-11-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/109066
- * resolve.cc (generate_component_assignments): If the temporary
- for 'var' is a pointer and 'expr' is neither a constant or
- a variable, change its attribute from pointer to allocatable.
- This avoids assignment to a temporary point that has neither
- been allocated or associated.
-
-2024-11-16 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * gfortran.texi: Document that SELECT CASE works for UNSIGNED.
-
-2024-11-16 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * module.cc (mio_expr): Handle BT_UNSIGNED.
-
-2024-11-15 Jan Hubicka <hubicka@ucw.cz>
-
- * trans-expr.cc (gfc_trans_subcomponent_assign): Fix type of malloc
- parameter.
-
-2024-11-14 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/104819
- * trans-expr.cc (conv_null_actual): Helper function to handle
- passing of NULL() to non-optional dummy arguments of non-bind(c)
- procedures.
- (gfc_conv_procedure_call): Use it for character dummies.
-
-2024-11-13 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/105054
- * resolve.cc (get_temp_from_expr): If the pointer function has
- a deferred character length, generate a new deferred charlen
- for the temporary.
-
-2024-11-11 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/109345
- * trans-array.cc (gfc_get_array_span): Unlimited polymorphic
- expressions are now treated separately since the span need not
- be the same as the element size.
-
-2024-11-11 Tomas Trnka <trnka@scm.com>
- Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/116388
- * class.cc (finalize_component): Leading underscore in the name
- of 'byte_stride' to suppress invalid finalization.
-
-2024-11-11 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * check.cc (gfc_check_complex): Reject UNSIGNED.
- * gfortran.texi: Update example program. Note that
- CMPLX, INT and REAL also take unsigned arguments.
- * intrinsic.texi (CMPLX): Document UNSIGNED.
- (INT): Likewise.
- (REAL): Likewise.
-
-2024-11-06 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/117434
- * interface.cc (gfc_compare_actual_formal): Skip 'Expected a
- procedure pointer error' if the formal argument typespec has an
- interface and the type of the actual arg is BT_PROCEDURE.
-
-2024-11-05 David Malcolm <dmalcolm@redhat.com>
-
- PR fortran/117442
- * error.cc (error_buffer): Convert to a pointer so it can be
- heap-allocated.
- (gfc_error_now): Update for error_buffer being heap-allocated.
- (gfc_clear_error): Likewise.
- (gfc_error_flag_test): Likewise.
- (gfc_error_check): Likewise.
- (gfc_push_error): Likewise.
- (gfc_pop_error): Likewise.
- (gfc_diagnostics_init): Allocate error_buffer on the heap, rather
- than statically.
- (gfc_diagnostics_finish): Delete error_buffer.
-
-2024-11-02 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * check.cc (gfc_check_mask): Handle BT_INSIGNED.
- * gfortran.h (enum gfc_isym_id): Add GFC_ISYM_UMASKL and
- GFC_ISYM_UMASKR.
- * gfortran.texi: List UMASKL and UMASKR, remove unsigned future
- unsigned arguments for MASKL and MASKR.
- * intrinsic.cc (add_functions): Add UMASKL and UMASKR.
- * intrinsic.h (gfc_simplify_umaskl): New function.
- (gfc_simplify_umaskr): New function.
- (gfc_resolve_umasklr): New function.
- * intrinsic.texi: Document UMASKL and UMASKR.
- * iresolve.cc (gfc_resolve_umasklr): New function.
- * simplify.cc (gfc_simplify_umaskr): New function.
- (gfc_simplify_umaskl): New function.
-
-2024-11-01 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * resolve.cc (resolve_operator): Also handle BT_UNSIGNED.
-
-2024-11-01 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/115700
- * resolve.cc (resolve_assoc_var): Extract a substring reference
- with missing as well as non-constant start or end.
-
-2024-10-31 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/115700
- * resolve.cc (resolve_variable): The typespec of an expression,
- which is not a substring, can be shared with a deferred length
- associate name.
- (resolve_assoc_var): Extract a substring reference with non-
- constant start or end. Use it to flag up the need for array
- associate name to be a pointer.
- (resolve_block_construct): Change comment from past to future
- tense.
-
-2024-10-30 Harald Anlauf <anlauf@gmx.de>
-
- * trans-expr.cc (gfc_trans_class_init_assign): Free intermediate
- gfc_expr's.
- * trans.cc (get_final_proc_ref): Likewise.
- (get_elem_size): Likewise.
- (gfc_add_finalizer_call): Likewise.
-
-2024-10-29 David Malcolm <dmalcolm@redhat.com>
-
- PR other/116613
- * error.cc (gfc_diagnostic_build_kind_prefix): Update for
- global_dc's m_printer becoming reference printer.
- (gfc_diagnostics_init): Replace usage of diagnostic_format_decoder
- with global_dc->set_format_decoder.
-
-2024-10-27 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/115070
- PR fortran/115348
- * trans-expr.cc (gfc_trans_class_init_assign): If all the
- components of the default initializer are null for a scalar,
- build an empty statement to prevent prior declarations from
- disappearing.
-
-2024-10-26 Iain Sandoe <iain@sandoe.co.uk>
-
- * intrinsic.texi: Add menu item for UINT.
-
-2024-10-26 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * gfortran.texi: Correct reference to make clear that UNSIGNED
- will not be part of F202Y.
- Other clarifications.
- Extend table of intrinsics, add links.
- * intrinsic.texi: Add descriptions for UNSIGNED arguments.
- * invoke.texi: Add anchor for -funsigned.
-
-2024-10-25 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/79685
- * decl.cc (match_data_constant): Find the symtree instead of
- the symbol so the use renamed symbols are found. Pass this and
- the derived type to gfc_match_structure_constructor.
- * match.h: Update prototype of gfc_match_structure_contructor.
- * primary.cc (gfc_match_structure_constructor): Remove call to
- gfc_get_ha_sym_tree and use caller supplied symtree instead.
-
-2024-10-25 Jakub Jelinek <jakub@redhat.com>
-
- * trans-openmp.cc: Remove trailing whitespace.
- * trans-common.cc: Likewise.
- * match.h: Likewise.
- * scanner.cc: Likewise.
- * gfortranspec.cc: Likewise.
- * io.cc: Likewise.
- * iso-c-binding.def: Likewise.
- * iso-fortran-env.def: Likewise.
- * types.def: Likewise.
- * openmp.cc: Likewise.
- * f95-lang.cc: Likewise.
-
-2024-10-24 David Malcolm <dmalcolm@redhat.com>
- Gaius Mulley <gaiusmod2@gmail.com>
-
- PR other/116613
- * arith.cc: Add #define INCLUDE_MEMORY.
- * array.cc: Likewise.
- * bbt.cc: Likewise.
- * check.cc: Likewise.
- * class.cc: Likewise.
- * constructor.cc: Likewise.
- * convert.cc: Likewise.
- * cpp.cc: Likewise.
- * data.cc: Likewise.
- * decl.cc: Likewise.
- * dependency.cc: Likewise.
- * dump-parse-tree.cc: Likewise.
- * error.cc: Likewise.
- * expr.cc: Likewise.
- * f95-lang.cc: Likewise.
- * frontend-passes.cc: Likewise.
- * interface.cc: Likewise.
- * intrinsic.cc: Likewise.
- * io.cc: Likewise.
- * iresolve.cc: Likewise.
- * match.cc: Likewise.
- * matchexp.cc: Likewise.
- * misc.cc: Likewise.
- * module.cc: Likewise.
- * openmp.cc: Likewise.
- * options.cc: Likewise.
- * parse.cc: Likewise.
- * primary.cc: Likewise.
- * resolve.cc: Likewise.
- * scanner.cc: Likewise.
- * simplify.cc: Likewise.
- * st.cc: Likewise.
- * symbol.cc: Likewise.
- * target-memory.cc: Likewise.
- * trans-array.cc: Likewise.
- * trans-common.cc: Likewise.
- * trans-const.cc: Likewise.
- * trans-decl.cc: Likewise.
- * trans-expr.cc: Likewise.
- * trans-intrinsic.cc: Likewise.
- * trans-io.cc: Likewise.
- * trans-openmp.cc: Likewise.
- * trans-stmt.cc: Likewise.
- * trans-types.cc: Likewise.
- * trans.cc: Likewise.
-
-2024-10-23 David Malcolm <dmalcolm@redhat.com>
-
- PR fortran/105916
- * error.cc (pp_error_buffer, pp_warning_buffer): Convert from
- output_buffer * to diagnostic_buffer *.
- (warningcount_buffered, werrorcount_buffered): Eliminate.
- (gfc_error_buffer::gfc_error_buffer): Move constructor definition
- here, and initialize "buffer" using *global_dc.
- (gfc_output_buffer_empty_p): Delete in favor of
- diagnostic_buffer::empty_p.
- (gfc_clear_pp_buffer): Replace with...
- (gfc_clear_diagnostic_buffer): ...this, moving implementation
- details to diagnostic_context::clear_diagnostic_buffer.
- (gfc_warning): Replace buffering implementation with calls
- to global_dc->get_diagnostic_buffer and
- global_dc->set_diagnostic_buffer.
- (gfc_clear_warning): Update for renaming of gfc_clear_pp_buffer
- and elimination of warningcount_buffered and werrorcount_buffered.
- (gfc_warning_check): Replace buffering implementation with calls
- to pp_warning_buffer->empty_p and
- global_dc->flush_diagnostic_buffer.
- (gfc_error_opt): Replace buffering implementation with calls to
- global_dc->get_diagnostic_buffer and set_diagnostic_buffer.
- (gfc_clear_error): Update for renaming of gfc_clear_pp_buffer.
- (gfc_error_flag_test): Replace call to gfc_output_buffer_empty_p
- with call to diagnostic_buffer::empty_p.
- (gfc_error_check): Replace buffering implementation with calls
- to pp_error_buffer->empty_p and global_dc->flush_diagnostic_buffer.
- (gfc_move_error_buffer_from_to): Replace buffering implementation
- with usage of diagnostic_buffer.
- (gfc_free_error): Update for renaming of gfc_clear_pp_buffer.
- (gfc_diagnostics_init): Use "new" directly when creating
- pp_warning_buffer. Remove setting of m_flush_p on the two
- buffers, as this is handled by diagnostic_buffer and by
- diagnostic_text_format_buffer's constructor.
- * gfortran.h: Replace #include "pretty-print.h" for output_buffer
- with #include "diagnostic-buffer.h" for diagnostic_buffer.
- (struct gfc_error_buffer): Change type of field "buffer" from
- output_buffer to diagnostic_buffer. Move definition of constructor
- into error.cc so that it can use global_dc.
-
-2024-10-23 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/116733
- * array.cc : White space corrections.
- * expr.cc (gfc_check_pointer_assign): Permit assumed rank
- target with -std=f202y. Add constraints that the data pointer
- object must have rank remapping specified and the that the data
- target be contiguous.
- * gfortran.h : Add a gfc_array_ref field 'ar' to the structure
- 'gfc_association_list'.
- * interface.cc (gfc_compare_actual_formal): If -Wsurprising
- is set, emit a warning if an assumed size array is passed to an
- assumed rank dummy.
- * intrinsic.cc (do_ts29113_check): Permit an assumed rank arg.
- for reshape if -std=f202y and the argument is contiguous.
- * invoke.texi : Introduce -std=f202y. Whitespace errors.
- * lang.opt : Accept -std=f202y.
- * libgfortran.h : Define GFC_STD_F202Y.
- * match.cc (gfc_match_associate): If -std=f202y an assumed rank
- selector is allowed if it is contiguous and the associate name
- has rank remapping specified.
- * options.cc (gfc_init_options): -std=f202y is equivalent to
- -std=f2023 with experimental f202y features. White space issues
- * parse.cc (parse_associate): If the selector is assumed rank,
- use the 'ar' field of the association list to build an array
- specification.
- * primary.cc (gfc_match_varspec): Do not resolve the assumed
- rank selector of a class associate name at this stage to avoid
- the rank change.
- * resolve.cc (find_array_spec): If an array_ref dimension is -1
- reset it with the rank in the object's array_spec.
- (gfc_expression_rank): Do not check dimen types for an assumed
- rank variable expression.
- (resolve_variable): Do not emit the assumed rank context error
- if the context is pointer assignment and the variable is a
- target.
- (resolve_assoc_var): Resolve the bounds and check for missing
- bounds in the rank remap of an associate name with an assumed
- rank selector. Do not correct the rank of an associate name
- with an assumed rank selector.
- (resolve_symbol): Allow the reference to an assumed rank object
- if -std-f202y is enabled and the current operation is
- EXEC_BLOCK.
- * st.cc (gfc_free_association_list): Free bounds expressions
- of the 'ar' field, if present.
- * trans-array.cc (gfc_conv_ss_startstride): If -std=f202y and
- bounds checking activated, do not apply the assertion.
- * trans-expr.cc (gfc_trans_pointer_assignment): An assumed rank
- target has its offset set to zero.
- * trans-stmt.cc (trans_associate_var): If the selector is
- assumed rank, call gfc_trans_pointer_assignment using the 'ar'
- field in the association list as the array reference for expr1.
- The data target, expr2, is a copy of the selector expression.
-
-2024-10-23 Tobias Burnus <tburnus@baylibre.com>
-
- * error.cc (terminal_width, gfc_get_terminal_width): Remove.
- (gfc_error_init_1): Do not call one to set the other.
-
-2024-10-19 Tobias Burnus <tburnus@baylibre.com>
-
- * check.cc (is_c_interoperable): Use _(...) around to mark strings
- as translatable.
- * data.cc (gfc_assign_data_value): Move string literal to gfc_error
- to make it translatable.
- * resolve.cc (resolve_fl_variable, resolve_equivalence): Use G_(...)
- around string literals.
- * scanner.cc (skip_fixed_omp_sentinel): Replace '...' by %<...%>.
- * trans-openmp.cc (gfc_split_omp_clauses,
- gfc_trans_omp_declare_variant): Likewise.
-
-2024-10-19 Tobias Burnus <tburnus@baylibre.com>
-
- * data.cc (gfc_assign_data_value): Use linemap_location_before_p
- and GFC_LOCUS_IS_SET.
- * decl.cc (gfc_verify_c_interop_param): Make better translatable.
- (build_sym, variable_decl, gfc_match_formal_arglist,
- gfc_match_subroutine): Add range-based locations, use it in
- diagnostic and gobble whitespace for better locations.
- * error.cc (gfc_get_location_with_offset): Handle new format.
- (gfc_get_location_range): New.
- * expr.cc (gfc_check_assign): Use GFC_LOCUS_IS_SET.
- * frontend-passes.cc (check_locus_code, check_locus_expr):
- Likewise.
- (runtime_error_ne): Use GFC_LOCUS_IS_SET.
- * gfortran.h (locus): Change lb to union with lb and location.
- (GFC_LOCUS_IS_SET): Define.
- (gfc_get_location_range): New prototype.
- (gfc_new_symbol, gfc_get_symbol, gfc_get_sym_tree,
- gfc_get_ha_symbol, gfc_get_ha_sym_tree): Take optional locus
- argument.
- * io.cc (io_constraint): Use GFC_LOCUS_IS_SET.
- * match.cc (gfc_match_sym_tree): Use range locus.
- * openmp.cc (gfc_match_omp_variable_list,
- gfc_match_omp_doacross_sink): Likewise.
- * parse.cc (next_free): Update for locus struct change.
- * primary.cc (gfc_match_varspec): Likewise.
- (match_variable): Use range locus.
- * resolve.cc (find_array_spec): Use GFC_LOCUS_IS_SET.
- * scanner.cc (gfc_at_eof, gfc_at_bol, gfc_start_source_files,
- gfc_advance_line, gfc_define_undef_line, skip_fixed_comments,
- gfc_gobble_whitespace, include_stmt, gfc_new_file): Update
- for locus struct change.
- * symbol.cc (gfc_new_symbol, gfc_get_sym_tree, gfc_get_symbol,
- gfc_get_ha_sym_tree, gfc_get_ha_symbol): Take optional locus.
- * trans-array.cc (gfc_trans_array_constructor_value): Use %L not %C.
- (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
- gfc_trans_class_array, gfc_trans_deferred_array): Replace
- gfc_{save,set,restore}_backend_locus by directly using
- input_location.
- * trans-common.cc (build_equiv_decl, get_init_field): Likewise.
- * trans-decl.cc (gfc_get_extern_function_decl, build_function_decl,
- build_entry_thunks, gfc_null_and_pass_deferred_len,
- gfc_trans_deferred_vars, gfc_trans_use_stmts, finish_oacc_declare,
- gfc_generate_block_data): Likewise.
- * trans-expr.cc (gfc_copy_class_to_class, gfc_conv_expr): Changes
- to avoid gfc_current_locus.
- * trans-io.cc (set_error_locus): Likewise.
- * trans-openmp.cc (gfc_trans_omp_workshare): Use input_locus directly.
- * trans-stmt.cc (gfc_trans_if_1): Likewise and use GFC_LOCUS_IS_SET.
- * trans-types.cc (gfc_get_union_type, gfc_get_derived_type): Likewise.
- * trans.cc (gfc_locus_from_location): New.
- (trans_runtime_error_vararg, gfc_trans_runtime_check): Use location_t
- for file + line data.
- (gfc_current_backend_file, gfc_save_backend_locus,
- gfc_set_backend_locus, gfc_restore_backend_locus): Remove.
- (trans_code): Use input_location directly, don't set gfc_current_locus.
- * trans.h (gfc_save_backend_locus, gfc_set_backend_locus,
- gfc_restore_backend_locus): Remove prototypes.
- (gfc_locus_from_location): Add prototype.
-
-2024-10-19 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- PR fortran/117225
- * primary.cc (match_sym_complex_part): An UNSIGNED in
- a complex part is an error.
-
-2024-10-18 Alejandro Colomar <alx@kernel.org>
-
- * trans-array.cc (structure_alloc_comps)
- * trans-openmp.cc
- (gfc_walk_alloc_comps)
- (gfc_omp_clause_linear_ctor):
- Rename array_type_nelts => array_type_nelts_minus_one
-
-2024-10-18 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * error.cc (notify_std_msg): Handle GFC_STD_UNSIGNED.
-
-2024-10-17 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/80235
- * trans-decl.cc (gfc_build_qualified_array): Make sure the array
- is associated to the correct module and being marked as extern.
-
-2024-10-15 Thomas Schwinge <tschwinge@baylibre.com>
- Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/82250
- PR fortran/82251
- PR fortran/117136
- * trans-expr.cc (gfc_conv_procedure_call): Initialize
- 'is_builtin'.
- (conv_function_val): Clean up.
-
-2024-10-14 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/77871
- * trans-expr.cc (gfc_conv_derived_to_class): Assign token when
- converting a coarray to class.
- (gfc_get_tree_for_caf_expr): For classes get the caf decl from
- the saved descriptor.
- (gfc_get_caf_token_offset):Assert that coarray=lib is set and
- cover more cases where the tree having the coarray token can be.
- * trans-intrinsic.cc (gfc_conv_intrinsic_caf_get): Use unified
- test for pointers.
-
-2024-10-13 Tobias Burnus <tburnus@baylibre.com>
-
- * gfortran.h (gfc_option_t): Add disable_acc_on_device.
- * options.cc (gfc_handle_option): Handle -fno-builtin-acc_on_device.
- * trans-decl.cc (gfc_get_extern_function_decl): Move
- __builtin_omp_is_initial_device handling to ...
- * trans-expr.cc (get_builtin_fn): ... this new function.
- (conv_function_val): Call it.
- (update_builtin_function): New.
- (gfc_conv_procedure_call): Call it.
- * types.def (BT_BOOL): Fix type by using bool_type_node.
-
-2024-10-12 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * dump-parse-tree.cc (get_c_type_name): Also handle BT_UNSIGNED.
- * gfortran.h (NAMED_UINTCST): Define before inclusion
- of iso-c-binding.def and iso-fortran-env.def.
- (gfc_get_uint_kind_from_width_isofortranenv): Prototype.
- * gfortran.texi: Mention new constants in iso_c_binding and
- iso_fortran_env.
- * iso-c-binding.def: Handle NAMED_UINTCST. Add c_unsigned,
- c_unsigned_short,c_unsigned_char, c_unsigned_long,
- c_unsigned_long_long, c_uintmax_t, c_uint8_t, c_uint16_t,
- c_uint32_t, c_uint64_t, c_uint128_t, c_uint_least8_t,
- c_uint_least16_t, c_uint_least32_t, c_uint_least64_t,
- c_uint_least128_t, c_uint_fast8_t, c_uint_fast16_t,
- c_uint_fast32_t, c_uint_fast64_t and c_uint_fast128_t.
- * iso-fortran-env.def: Handle NAMED_UINTCST. Add uint8, uint16,
- uint32 and uint64.
- * module.cc (parse_integer): Whitespace fix.
- (write_module): Whitespace fix.
- (NAMED_UINTCST): Define before inclusion of iso-fortran-evn.def
- and iso-fortran-env.def.
- * symbol.cc: Likewise.
- * trans-types.cc (get_unsigned_kind_from_node): New function.
- (get_uint_kind_from_name): New function.
- (gfc_get_uint_kind_from_width_isofortranenv): New function.
- (get_uint_kind_from_width): New function.
- (gfc_init_kinds): Initialize gfc_c_uint_kind.
-
-2024-10-12 Tobias Burnus <tburnus@baylibre.com>
-
- * openmp.cc (resolve_omp_clauses): Diagnose polymorphic mapping.
- * trans-openmp.cc (gfc_omp_finish_clause): Warn when
- polymorphic variable is implicitly mapped.
-
-2024-10-12 Tobias Burnus <tburnus@baylibre.com>
-
- * array.cc (gfc_match_array_constructor): Only update the
- character length if the expression is of character type.
- * error.cc (gfc_get_location_with_offset): New; split off
- from ...
- (gfc_format_decoder): ... here; call it.
- * gfortran.h (gfc_get_location_with_offset): New prototype.
- (gfc_get_location): New inline function.
- * trans.cc (gfc_get_location): Remove function definition.
- * trans.h (gfc_get_location): Remove declaration.
-
-2024-10-11 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * intrinsic.cc (add_functions): Convert uint and
- selected_unsigned_kind to GFC_STD_UNSIGNED.
- (gfc_check_intrinsic_standard): Handle GFC_STD_UNSIGNED.
- * libgfortran.h (GFC_STD_UNSIGNED): Add.
- * options.cc (gfc_post_options): Set GFC_STD_UNSIGNED
- if -funsigned is set.
-
-2024-10-11 Tobias Burnus <tburnus@baylibre.com>
-
- * error.cc (error_char, error_string, error_uinteger, error_integer,
- error_hwuint, error_hwint, gfc_widechar_display_length,
- gfc_wide_display_length, error_printf, show_locus, show_loci):
- Remove unused static functions.
- (IBUF_LEN, MAX_ARGS): Remove now unused #define.
-
-2024-10-08 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/51815
- * array.cc (gfc_match_array_ref): Only parse coarray part of
- ref.
- * match.h (gfc_match_array_ref): Add flag.
- * primary.cc (gfc_match_varspec): Request only coarray ref
- parsing when no regular array is present. Report error on
- unexpected additional ref.
-
-2024-10-07 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * check.cc (gfc_check_minloc_maxloc): Handle BT_UNSIGNED.
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Likewise.
- * gfortran.texi: Document MAXLOC and MINLOC for UNSIGNED.
-
-2024-10-07 Tobias Burnus <tburnus@baylibre.com>
-
- * openmp.cc (is_predefined_allocator): Use gomp-constants.h consts.
- * trans-common.cc (translate_common): Reject OpenMP allocate directives.
- * trans-decl.cc (gfc_finish_var_decl): Handle allocate directive
- for static variables.
- (gfc_trans_deferred_vars): Update for the latter.
-
-2024-10-01 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * check.cc (int_or_real_or_char_or_unsigned_check_f2003): New function.
- (gfc_check_minval_maxval): Use it.
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxval): Handle
- initial values for UNSIGNED.
- * gfortran.texi: Document MINVAL and MAXVAL for unsigned.
-
-2024-09-30 David Malcolm <dmalcolm@redhat.com>
-
- PR other/116613
- * error.cc (gfc_diagnostic_build_locus_prefix): Convert first
- param from diagnostic_context * to
- const diagnostic_location_print_policy &. Add colorize param.
- Likewise for the "two expanded_locations" overload.
- (gfc_diagnostic_text_starter): Update for above changes.
- (gfc_diagnostic_start_span): Update for change to callback type.
-
-2024-09-30 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/81265
- * trans-expr.cc (gfc_conv_procedure_call): Ensure coarrays use a
- descriptor when passed.
-
-2024-09-28 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * check.cc (intrinsic_type_check): Handle unsigned.
- (gfc_check_findloc): Likewise.
- * gfortran.texi: Include FINDLOC in unsigned documentation.
- * iresolve.cc (gfc_resolve_findloc): Use INTEGER version
- for UNSIGNED.
-
-2024-09-28 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * check.cc (gfc_check_eoshift): Handle BT_UNSIGNED.
- * simplify.cc (gfc_simplify_eoshift): Likewise.
- * gfortran.texi: Document CSHIFT and EOSHIFT for UNSIGNED.
-
-2024-09-26 Mikael Morin <mikael@gcc.gnu.org>
-
- * invoke.texi (-M): Remove index reference to removed documentation.
-
-2024-09-25 Mikael Morin <mikael@gcc.gnu.org>
-
- PR other/116801
- * invoke.texi: Remove @code wrapping in arguments to @opindex.
- (std=): Remove spurious 'option' in index.
- (idirafter, imultilib, iprefix, isysroot, iquote, isystem,
- fintrinsic-modules-path): Remove variable from index.
- * lang.opt.urls: Regenerate.
-
-2024-09-25 Tobias Burnus <tburnus@baylibre.com>
-
- * parse.cc (decode_omp_directive): Set target-used bit of
- omp_requires_mask when encountering the declare_target or interop
- directive.
-
-2024-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * check.cc (gfc_check_random_number): Adjust for unsigned.
- * iresolve.cc (gfc_resolve_random_number): Handle unsigned.
- * trans-expr.cc (gfc_conv_expr_op): Handle BT_UNSIGNED for divide.
- * trans-types.cc (gfc_get_dtype_rank_type): Handle BT_UNSIGNED.
- * gfortran.texi: Add RANDOM_NUMBER for UNSIGNED.
-
-2024-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * check.cc (gfc_check_transf_bit_intrins): Handle unsigned.
- * gfortran.texi: Docment IANY, IALL and IPARITY for unsigned.
- * iresolve.cc (gfc_resolve_iall): Set flag to use integer
- if type is BT_UNSIGNED.
- (gfc_resolve_iany): Likewise.
- (gfc_resolve_iparity): Likewise.
- * simplify.cc (do_bit_and): Adjust asserts for BT_UNSIGNED.
- (do_bit_ior): Likewise.
- (do_bit_xor): Likewise
-
-2024-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * gfortran.texi: Document SUM and PRODUCT.
- * iresolve.cc (resolve_transformational): New argument,
- use_integer, to translate calls to unsigned to calls to
- integer.
- (gfc_resolve_product): Use it
- (gfc_resolve_sum): Use it.
- * simplify.cc (init_result_expr): Handle BT_UNSIGNED.
-
-2024-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * arith.cc (gfc_arith_uminus): Fix warning.
- (gfc_arith_minus): Correctly truncate unsigneds.
- * check.cc (gfc_check_dot_product): Handle unsigned arguments.
- (gfc_check_matmul): Likewise.
- * expr.cc (gfc_get_unsigned_expr): New function.
- * gfortran.h (gfc_get_unsigned_expr): Add prototype.
- * iresolve.cc (gfc_resolve_matmul): If using UNSIGNED, use the
- signed integer version.
- * gfortran.texi: Document MATMUL and DOT_PRODUCT for unsigned.
- * simplify.cc (compute_dot_product): Handle unsigneds.
-
-2024-09-24 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/101100
- * trans-expr.cc (trans_caf_token_assign): Take caf-token from
- decl for non ultimate coarray components.
-
-2024-09-24 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/84870
- * trans-array.cc (duplicate_allocatable_coarray): For scalar
- allocatable components the memory allocated is now assigned to
- the component's pointer.
-
-2024-09-24 Tobias Burnus <tburnus@baylibre.com>
-
- * gfortran.h (enum gfc_omp_requires_kind): Add OMP_REQ_SELF_MAPS.
- (gfc_namespace): Enlarge omp_requires bitfield.
- * module.cc (enum ab_attribute, attr_bits): Add AB_OMP_REQ_SELF_MAPS.
- (mio_symbol_attribute): Handle it.
- * openmp.cc (gfc_check_omp_requires, gfc_match_omp_requires): Handle
- self_maps clause.
- * parse.cc (gfc_parse_file): Handle self_maps clause.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * invoke.texi(finline-intrinsics): Document new flag.
- * lang.opt (finline-intrinsics, finline-intrinsics=,
- fno-inline-intrinsics): New flags.
- * options.cc (gfc_post_options): If the option variable controlling
- the inlining of MAXLOC (respectively MINLOC) has not been set, set
- it or clear it depending on the optimization option variables.
- * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return false
- if inlining for the intrinsic is disabled according to the option
- variable.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Generate a set
- of index variables. Set them using the loop indexes before leaving
- the first set of loops. Generate a new loop entry predicate.
- Initialize it. Set it before leaving the first set of loops. Clear
- it in the body of the second set of loops. For the second set of
- loops, update each loop lower bound to use the corresponding index
- variable if the predicate variable is set.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Initialize
- and update all the variables. Put the label and goto in the
- outermost scalarizer loop. Don't start the second loop where the
- first stopped.
- (gfc_inline_intrinsic_function_p): Also return TRUE for array MASK
- or for any REAL type.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Generate
- variable initialization for each dimension in the else branch of
- the toplevel condition.
- (gfc_inline_intrinsic_function_p): Return TRUE for scalar MASK.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-array.cc (gfc_conv_ss_startstride): Set the MINLOC/MAXLOC
- result upper bound using the rank of the ARRAY argument. Ajdust
- the error message for intrinsic result arrays. Only check array
- bounds for array references. Move bound check decision code...
- (bounds_check_needed): ... here as a new predicate. Allow bound
- check for MINLOC/MAXLOC intrinsic results.
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Change the
- result array upper bound to the rank of ARRAY. Update the NONEMPTY
- variable to depend on the non-empty extent of every dimension. Use
- one variable per dimension instead of a single variable for the
- position and the offset. Update their declaration, initialization,
- and update to affect the variable of each dimension. Use the first
- variable only in areas only accessed with rank 1 ARRAY argument.
- Set every element of the result using its corresponding variable.
- (gfc_inline_intrinsic_function_p): Return true for integral ARRAY
- and absent DIM and MASK.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- * trans-array.cc (gfc_conv_ss_startstride): Move array bound check
- generation code...
- (add_check_section_in_array_bounds): ... here as a new function.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- * frontend-passes.cc (optimize_minmaxloc): Remove.
- (optimize_expr): Remove dispatch to optimize_minmaxloc.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * trans-array.cc (gfc_conv_ss_startstride): Set the scalarization
- rank based on the MINLOC/MAXLOC rank if needed. Call the inline
- code generation and setup the scalarizer array descriptor info
- in the MINLOC and MAXLOC cases.
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Return the
- result array element if the scalarizer is setup and we are inside
- the loops. Restrict library function call dispatch to the case
- where inline expansion is not supported. Declare an array result
- if the expression isn't scalar. Initialize the array result single
- element and return the result variable if the expression isn't
- scalar.
- (walk_inline_intrinsic_minmaxloc): New function.
- (walk_inline_intrinsic_function): Add MINLOC and MAXLOC cases,
- dispatching to walk_inline_intrinsic_minmaxloc.
- (gfc_add_intrinsic_ss_code): Add MINLOC and MAXLOC cases.
- (gfc_inline_intrinsic_function_p): Return true if ARRAY has rank 1,
- regardless of DIM.
-
-2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/90608
- * frontend-passes.cc (optimize_minmaxloc): Skip if we can generate
- inline code for the unmodified expression.
- * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Add
- MINLOC and MAXLOC cases.
-
-2024-09-20 David Malcolm <dmalcolm@redhat.com>
-
- PR other/116613
- * error.cc: Include "diagnostic-format-text.h".
- (gfc_diagnostic_starter): Rename to...
- (gfc_diagnostic_text_starter): ...this. Convert first
- param from diagnostic_context * to diagnostic_text_output_format &
- and update accordingly.
- (gfc_diagnostic_finalizer, gfc_diagnostic_text_finalizer):
- Likewise.
- (gfc_diagnostics_init): Update for renamings.
- (gfc_diagnostics_finish): Likewise.
-
-2024-09-19 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/106606
- * trans-types.cc (gfc_get_derived_type): Only build non-pointer
- derived types as component's types when they are not yet built.
-
-2024-09-19 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/85002
- * trans-array.cc (duplicate_allocatable_coarray): Allow adding
- of deep copy code in the when-allocated case. Add bounds
- computation before condition, because coarrays need the bounds
- also when not allocated.
- (structure_alloc_comps): Duplication in the coarray case is done
- already, omit it. Add the deep-code when duplication a coarray.
- * trans-expr.cc (gfc_trans_structure_assign): Fix comment.
-
-2024-09-15 Mikael Morin <mikael@gcc.gnu.org>
-
- * trans-expr.cc (gfc_advance_se_ss_chain): Don't use an element
- from the parent scalarization chain when the current chain reaches
- its end.
-
-2024-09-13 Tobias Burnus <tburnus@baylibre.com>
-
- PR fortran/116661
- * gfortran.h (gfc_omp_namelist): Rename 'init' members for clarity.
- * match.cc (gfc_free_omp_namelist): Handle renaming.
- * dump-parse-tree.cc (show_omp_namelist): Update for new format
- and features.
- * openmp.cc (gfc_match_omp_prefer_type): Parse list to 'fr' and 'attr';
- store 'fr' values as integer.
- (gfc_match_omp_init): Rename variable names.
-
-2024-09-12 Steven G. Kargl <kargl@gcc.gnu.org>
-
- * module.cc (bt_types): Add BT_UNSIGNED.
-
-2024-09-11 Tobias Burnus <tburnus@baylibre.com>
-
- PR fortran/116661
- * openmp.cc (gfc_match_omp_prefer_type): NULL init a gfc_expr
- variable and use right locus in gfc_error.
-
-2024-09-09 David Malcolm <dmalcolm@redhat.com>
-
- * cpp.cc (cb_cpp_diagnostic_cpp_option): Convert return type from
- "int" to "diagnostic_option_id".
- (cb_cpp_diagnostic): Update for renaming of
- diagnostic_override_option_index to diagnostic_set_option_id.
- * error.cc (gfc_warning): Update for renaming of diagnostic_info
- field.
- (gfc_warning_now_at): Likewise.
- (gfc_warning_now): Likewise.
- (gfc_warning_internal): Likewise.
-
-2024-09-09 David Malcolm <dmalcolm@redhat.com>
-
- PR other/116613
- * error.cc (gfc_clear_pp_buffer): Rename diagnostic_context's
- "printer" field to "m_printer".
- (gfc_warning): Likewise.
- (gfc_diagnostic_build_kind_prefix): Likewise.
- (gfc_diagnostic_build_locus_prefix): Likewise.
- (gfc_diagnostic_starter): Likewise.
- (gfc_diagnostic_starter): Likewise.
- (gfc_diagnostic_start_span): Likewise.
- (gfc_diagnostic_finalizer): Likewise.
- (gfc_warning_check): Likewise.
- (gfc_error_opt): Likewise.
- (gfc_error_check): Likewise.
-
-2024-09-07 Thomas Koenig <tkoenig@gcc.gnu.org>
-
- * arith.cc (gfc_reduce_unsigned): New function.
- (gfc_arith_error): Add ARITH_UNSIGNED_TRUNCATED and
- ARITH_UNSIGNED_NEGATIVE.
- (gfc_arith_init_1): Initialize unsigned types.
- (gfc_check_unsigned_range): New function.
- (gfc_range_check): Handle unsigned types.
- (gfc_arith_uminus): Likewise.
- (gfc_arith_plus): Likewise.
- (gfc_arith_minus): Likewise.
- (gfc_arith_times): Likewise.
- (gfc_arith_divide): Likewise.
- (gfc_compare_expr): Likewise.
- (eval_intrinsic): Likewise.
- (gfc_int2int): Also convert unsigned.
- (gfc_uint2uint): New function.
- (gfc_int2uint): New function.
- (gfc_uint2int): New function.
- (gfc_uint2real): New function.
- (gfc_uint2complex): New function.
- (gfc_real2uint): New function.
- (gfc_complex2uint): New function.
- (gfc_log2uint): New function.
- (gfc_uint2log): New function.
- * arith.h (gfc_int2uint, gfc_uint2uint, gfc_uint2int, gfc_uint2real):
- Add prototypes.
- (gfc_uint2complex, gfc_real2uint, gfc_complex2uint, gfc_log2uint):
- Likewise.
- (gfc_uint2log): Likewise.
- * check.cc (gfc_boz2uint): New function
- (type_check2): New function.
- (int_or_real_or_unsigned_check): New function.
- (less_than_bitsizekind): Adjust for unsingeds.
- (less_than_bitsize2): Likewise.
- (gfc_check_allocated): Likewise.
- (gfc_check_mod): Likewise.
- (gfc_check_bge_bgt_ble_blt): Likewise.
- (gfc_check_bitfcn): Likewise.
- (gfc_check_digits): Likewise.
- (gfc_check_dshift): Likewise.
- (gfc_check_huge): Likewise.
- (gfc_check_iu): New function.
- (gfc_check_iand_ieor_ior): Adjust for unsigneds.
- (gfc_check_ibits): Likewise.
- (gfc_check_uint): New function.
- (gfc_check_ishft): Adjust for unsigneds.
- (gfc_check_ishftc): Likewise.
- (gfc_check_min_max): Likewise.
- (gfc_check_merge_bits): Likewise.
- (gfc_check_selected_int_kind): Likewise.
- (gfc_check_shift): Likewise.
- (gfc_check_mvbits): Likewise.
- (gfc_invalid_unsigned_ops): Likewise.
- * decl.cc (gfc_match_decl_type_spec): Likewise.
- * dump-parse-tree.cc (show_expr): Likewise.
- * expr.cc (gfc_get_constant_expr): Likewise.
- (gfc_copy_expr): Likewise.
- (gfc_extract_int): Likewise.
- (numeric_type): Likewise.
- * gfortran.h (enum arith): Extend with ARITH_UNSIGNED_TRUNCATED
- and ARITH_UNSIGNED_NEGATIVE.
- (enum gfc_isym_id): Extend with GFC_ISYM_SU_KIND and GFC_ISYM_UINT.
- (gfc_check_unsigned_range): New prototype-
- (gfc_arith_error): Likewise.
- (gfc_reduce_unsigned): Likewise.
- (gfc_boz2uint): Likewise.
- (gfc_invalid_unsigned_ops): Likewise.
- (gfc_convert_mpz_to_unsigned): Likewise.
- * gfortran.texi: Add some rudimentary documentation.
- * intrinsic.cc (gfc_type_letter): Adjust for unsigneds.
- (add_functions): Add uint and adjust functions to be called.
- (add_conversions): Add unsigned conversions.
- (gfc_convert_type_warn): Adjust for unsigned.
- * intrinsic.h (gfc_check_iu, gfc_check_uint, gfc_check_mod, gfc_simplify_uint,
- gfc_simplify_selected_unsigned_kind, gfc_resolve_uint): New prototypes.
- * invoke.texi: Add -funsigned.
- * iresolve.cc (gfc_resolve_dshift): Handle unsigneds.
- (gfc_resolve_iand): Handle unsigneds.
- (gfc_resolve_ibclr): Handle unsigneds.
- (gfc_resolve_ibits): Handle unsigneds.
- (gfc_resolve_ibset): Handle unsigneds.
- (gfc_resolve_ieor): Handle unsigneds.
- (gfc_resolve_ior): Handle unsigneds.
- (gfc_resolve_uint): Handle unsigneds.
- (gfc_resolve_merge_bits): Handle unsigneds.
- (gfc_resolve_not): Handle unsigneds.
- * lang.opt: Add -funsigned.
- * libgfortran.h: Add BT_UNSIGNED.
- * match.cc (gfc_match_type_spec): Match UNSIGNED.
- * misc.cc (gfc_basic_typename): Add UNSIGNED.
- (gfc_typename): Likewise.
- * primary.cc (convert_unsigned): New function.
- (match_unsigned_constant): New function.
- (gfc_match_literal_constant): Handle unsigned.
- * resolve.cc (resolve_operator): Handle unsigned.
- (resolve_ordinary_assign): Likewise.
- * simplify.cc (convert_mpz_to_unsigned): Renamed to...
- (gfc_convert_mpz_to_unsigned): and adjusted.
- (gfc_simplify_bit_size): Adjusted for unsigned.
- (compare_bitwise): Likewise.
- (gfc_simplify_bge): Likewise.
- (gfc_simplify_bgt): Likewise.
- (gfc_simplify_ble): Likewise.
- (gfc_simplify_blt): Likewise.
- (simplify_cmplx): Likewise.
- (gfc_simplify_digits): Likewise.
- (simplify_dshift): Likewise.
- (gfc_simplify_huge): Likewise.
- (gfc_simplify_iand): Likewise.
- (gfc_simplify_ibclr): Likewise.
- (gfc_simplify_ibits): Likewise.
- (gfc_simplify_ibset): Likewise.
- (gfc_simplify_ieor): Likewise.
- (gfc_simplify_uint): Likewise.
- (gfc_simplify_ior): Likewise.
- (simplify_shift): Likewise.
- (gfc_simplify_ishftc): Likewise.
- (gfc_simplify_merge_bits): Likewise.
- (min_max_choose): Likewise.
- (gfc_simplify_mod): Likewise.
- (gfc_simplify_modulo): Likewise.
- (gfc_simplify_popcnt): Likewise.
- (gfc_simplify_range): Likewise.
- (gfc_simplify_selected_unsigned_kind): Likewise.
- (gfc_convert_constant): Likewise.
- * target-memory.cc (size_unsigned): New function.
- (gfc_element_size): Adjust for unsigned.
- * trans-const.h (gfc_conv_mpz_unsigned_to_tree): Add prototype.
- * trans-const.cc (gfc_conv_mpz_unsigned_to_tree): Handle unsigneds.
- (gfc_conv_constant_to_tree): Likewise.
- * trans-decl.cc (gfc_conv_cfi_to_gfc): Put in "not yet implemented".
- * trans-expr.cc (gfc_conv_gfc_desc_to_cfi_desc): Likewise.
- * trans-stmt.cc (gfc_trans_integer_select): Handle unsigned.
- (gfc_trans_select): Likewise.
- * trans-intrinsic.cc (gfc_conv_intrinsic_mod): Handle unsigned.
- (gfc_conv_intrinsic_shift): Likewise.
- (gfc_conv_intrinsic_function): Add GFC_ISYM_UINT.
- * trans-io.cc (enum iocall): Add IOCALL_X_UNSIGNED and IOCALL_X_UNSIGNED_WRITE.
- (gfc_build_io_library_fndecls): Add transfer_unsigned and transfer_unsigned_write.
- (transfer_expr): Handle unsigneds.
- * trans-types.cc (gfc_unsinged_kinds): New array.
- (gfc_unsigned_types): Likewise.
- (gfc_init_kinds): Handle them.
- (validate_unsigned): New function.
- (gfc_validate_kind): Use it.
- (gfc_build_unsigned_type): New function.
- (gfc_init_types): Use it.
- (gfc_get_unsigned_type): New function.
- (gfc_typenode_for_spec): Handle unsigned.
- * trans-types.h (gfc_get_unsigned_type): New prototype.
-
-2024-09-06 Tobias Burnus <tburnus@baylibre.com>
-
- * dump-parse-tree.cc (show_omp_namelist): Handle OMP_LIST_INIT.
- (show_omp_clauses): Handle OMP_LIST_{INIT,USE,DESTORY}; move 'nowait'
- from end-directive to the directive dump.
- (show_omp_node, show_code_node): Handle EXEC_OMP_INTEROP.
- * gfortran.h (enum gfc_statement): Add ST_OMP_INTEROP.
- (OMP_LIST_INIT, OMP_LIST_USE, OMP_LIST_DESTROY): Add.
- (enum gfc_exec_op): Add EXEC_OMP_INTEROP.
- (struct gfc_omp_namelist): Add interop items to union.
- (gfc_free_omp_namelist): Add boolean arg.
- * match.cc (gfc_free_omp_namelist): Update to free
- interop union members.
- * match.h (gfc_match_omp_interop): New.
- * openmp.cc (gfc_omp_directives): Uncomment 'interop' entry.
- (gfc_free_omp_clauses, gfc_match_omp_allocate,
- gfc_match_omp_flush, gfc_match_omp_clause_reduction): Update
- call.
- (enum omp_mask2): Add OMP_CLAUSE_{INIT,USE,DESTROY}.
- (OMP_INTEROP_CLAUSES): Use it.
- (gfc_match_omp_clauses): Match those clauses.
- (gfc_match_omp_prefer_type, gfc_match_omp_init,
- gfc_match_omp_interop): New.
- (resolve_omp_clauses): Handle interop clauses.
- (omp_code_to_statement): Add ST_OMP_INTEROP.
- (gfc_resolve_omp_directive): Add EXEC_OMP_INTEROP.
- * parse.cc (decode_omp_directive): Parse 'interop' directive.
- (next_statement, gfc_ascii_statement): Handle ST_OMP_INTEROP.
- * st.cc (gfc_free_statement): Likewise
- * resolve.cc (gfc_resolve_code): Handle EXEC_OMP_INTEROP.
- * trans.cc (trans_code): Likewise.
- * trans-openmp.cc (gfc_trans_omp_directive): Print 'sorry'
- for EXEC_OMP_INTEROP.
-
-2024-09-05 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/100273
- * trans-decl.cc (gfc_create_module_variable): Handle module
- variable also when it is needed for the result specification
- of a contained function.
-
-2024-09-03 David Malcolm <dmalcolm@redhat.com>
-
- * error.cc (gfc_move_error_buffer_from_to): Prefix all
- output_buffer fields with "m_".
- (gfc_diagnostics_init): Likewise.
-
-2024-08-31 Harald Anlauf <anlauf@gmx.de>
-
- * match.cc (gfc_match_namelist): Downgrade feature from GNU to
- legacy extension.
-
-2024-08-30 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/98454
- * resolve.cc (resolve_symbol): Add default-initialization of
- non-allocatable, non-pointer derived-type function results.
-
-2024-08-29 David Malcolm <dmalcolm@redhat.com>
-
- * error.cc (gfc_format_decoder): Convert final param from
- const char **buffer_ptr to pp_token_list &formatted_token_list,
- and update call to default_tree_printer accordingly.
-
-2024-08-29 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/116530
- * trans-io.cc (transfer_namelist_element): Prevent NULL pointer
- dereference.
-
-2024-08-23 Paul Thomas <pault@gcc.gnu.org>
-
- Revert:
- 2024-08-06 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/102689
- * trans-array.cc (get_array_ref_dim_for_loop_dim): Use the arg1
- class container carried in ss->info as the seed for a lhs in
- class valued transformational intrinsic calls that are not the
- rhs of an assignment. Otherwise, the lhs variable expression is
- taken from the loop chain. For this latter case, the _vptr and
- _len fields are set.
- (gfc_trans_create_temp_array): Use either the lhs expression
- seeds to build a class variable that will take the returned
- descriptor as its _data field. In the case that the arg1 expr.
- is used, a class typespec must be built with the correct rank
- and the _vptr and _len fields set. The element size is provided
- for the temporary allocation and to set the descriptor span.
- (gfc_array_init_size): When an intrinsic type scalar expr3 is
- used in allocation of a class array, use its element size in
- the descriptor dtype.
- * trans-expr.cc (gfc_conv_class_to_class): Class valued
- transformational intrinsics return the pointer to the array
- descriptor as the _data field of a class temporary. Extract
- directly and return the address of the class temporary.
- (gfc_conv_procedure_call): store the expression for the first
- argument of a class valued transformational intrinsic function
- in the ss info class_container field. Later, use its type as
- the element type in the call to gfc_trans_create_temp_array.
- (fcncall_realloc_result): Add a dtype argument and use it in
- the descriptor, when available.
- (gfc_trans_arrayfunc_assign): For class lhs, build a dtype with
- the lhs rank and the rhs element size and use it in the call to
- fcncall_realloc_result.
-
-2024-08-23 Gerald Pfeifer <gerald@pfeifer.com>
-
- * invoke.texi (Code Gen Options): Add a missing word.
-
-2024-08-23 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/86468
- * trans-stmt.cc (trans_associate_var): Remove superfluous
- view_convert.
-
-2024-08-21 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/86468
- * trans-intrinsic.cc (conv_intrinsic_move_alloc): Correct
- comment.
- * trans-types.cc (gfc_sym_type): Pass coarray rank, not false.
- (gfc_get_derived_type): Only propagate codimension for coarrays
- and pointers to array components in derived typed coarrays.
-
-2024-08-21 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/77518
- * trans-intrinsic.cc (gfc_conv_intrinsic_sizeof): Use
- class_container of se when set.
-
-2024-08-20 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/84246
- * resolve.cc (caf_possible_reallocate): Detect arrays that may
- be reallocated by caf_send.
- (resolve_ordinary_assign): More reliably detect assignments
- where a rewrite to caf_send is needed.
- * trans-expr.cc (gfc_trans_assignment_1): Remove rewrite to
- caf_send, because this is done by resolve now.
- * trans-intrinsic.cc (conv_caf_send): Prevent unneeded temporary
- arrays.
-
-2024-08-19 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/46371
- PR fortran/56496
- * expr.cc (gfc_is_coindexed): Detect is coindexed also when
- rewritten to caf_get.
- * trans-stmt.cc (trans_associate_var): Always accept a
- descriptor for coarrays.
-
-2024-08-19 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/84244
- * trans-types.cc (gfc_get_derived_type): When a caf_sub_token is
- generated for a component, link it to the component it is
- generated for (the previous one).
-
-2024-08-16 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/114146
- * intrinsic.texi: Fix documentation of arguments of RANDOM_INIT,
- which is conforming to the F2018 standard.
-
-2024-08-15 Jakub Jelinek <jakub@redhat.com>
-
- PR bootstrap/116387
- * resolve.cc (resolve_operator): Use %L rather than %%L in format
- string.
-
-2024-08-15 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/110033
- * class.cc (gfc_is_class_scalar_expr): Coarray refs that ref
- only self, aka this image, are regarded as scalar, too.
- * resolve.cc (resolve_assoc_var): Ignore this image coarray refs
- and do not build a new class type.
- * trans-expr.cc (gfc_get_caf_token_offset): Get the caf token
- from the descriptor for associated variables.
- (gfc_conv_variable): Same.
- (gfc_trans_pointer_assignment): Assign token to temporary
- associate variable, too.
- (gfc_trans_scalar_assign): Add flag that assign is for associate
- and use it to assign the token.
- (is_assoc_assign): Detect that expressions are for associate
- assign.
- (gfc_trans_assignment_1): Treat associate assigns like pointer
- assignments where possible.
- * trans-stmt.cc (trans_associate_var): Set same_class only for
- class-targets.
- * trans.h (gfc_trans_scalar_assign): Add flag to
- trans_scalar_assign for marking associate assignments.
-
-2024-08-15 Andre Vehreschild <vehre@gcc.gnu.org>
-
- * arith.cc (reduce_unary): Use expr.corank.
- (reduce_binary_ac): Same.
- (reduce_binary_ca): Same.
- (reduce_binary_aa): Same.
- * array.cc (gfc_match_array_ref): Same.
- * check.cc (dim_corank_check): Same.
- (gfc_check_move_alloc): Same.
- (gfc_check_image_index): Same.
- * class.cc (gfc_add_class_array_ref): Same.
- (finalize_component): Same.
- * data.cc (gfc_assign_data_value): Same.
- * decl.cc (match_clist_expr): Same.
- (add_init_expr_to_sym): Same.
- * expr.cc (simplify_intrinsic_op): Same.
- (simplify_parameter_variable): Same.
- (gfc_check_assign_symbol): Same.
- (gfc_get_variable_expr): Same.
- (gfc_add_full_array_ref): Same.
- (gfc_lval_expr_from_sym): Same.
- (gfc_get_corank): Removed.
- * frontend-passes.cc (callback_reduction): Use expr.corank.
- (create_var): Same.
- (combine_array_constructor): Same.
- (optimize_minmaxloc): Same.
- * gfortran.h (gfc_get_corank): Add corank to gfc_expr.
- * intrinsic.cc (gfc_get_intrinsic_function_symbol): Use
- expr.corank.
- (gfc_convert_type_warn): Same.
- (gfc_convert_chartype): Same.
- * iresolve.cc (resolve_bound): Same.
- (gfc_resolve_cshift): Same.
- (gfc_resolve_eoshift): Same.
- (gfc_resolve_logical): Same.
- (gfc_resolve_matmul): Same.
- * match.cc (copy_ts_from_selector_to_associate): Same.
- * matchexp.cc (gfc_get_parentheses): Same.
- * parse.cc (parse_associate): Same.
- * primary.cc (gfc_match_rvalue): Same.
- * resolve.cc (resolve_structure_cons): Same.
- (resolve_actual_arglist): Same.
- (resolve_elemental_actual): Same.
- (resolve_generic_f0): Same.
- (resolve_unknown_f): Same.
- (resolve_operator): Same.
- (gfc_expression_rank): Same and set dimen_type for coarray to
- default.
- (gfc_op_rank_conformable): Use expr.corank.
- (add_caf_get_intrinsic): Same.
- (resolve_variable): Same.
- (gfc_fixup_inferred_type_refs): Same.
- (check_host_association): Same.
- (resolve_compcall): Same.
- (resolve_expr_ppc): Same.
- (resolve_assoc_var): Same.
- (fixup_array_ref): Same.
- (resolve_select_type): Same.
- (add_comp_ref): Same.
- (get_temp_from_expr): Same.
- (resolve_fl_var_and_proc): Same.
- (resolve_symbol): Same.
- * symbol.cc (gfc_is_associate_pointer): Same.
- * trans-array.cc (walk_coarray): Same.
- (gfc_conv_expr_descriptor): Same.
- (gfc_walk_array_ref): Same.
- * trans-array.h (gfc_walk_array_ref): Same.
- * trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token):
- Same.
- * trans-intrinsic.cc (trans_this_image): Same.
- (trans_image_index): Same.
- (conv_intrinsic_cobound): Same.
- (gfc_walk_intrinsic_function): Same.
- (conv_intrinsic_move_alloc): Same.
- * trans-stmt.cc (gfc_trans_lock_unlock): Same.
- (trans_associate_var): Same and adapt to slightly different
- behaviour of expr.corank and gfc_get_corank.
- (gfc_trans_allocate): Same.
- * trans.cc (gfc_add_finalizer_call): Same.
-
-2024-08-14 Harald Anlauf <anlauf@gmx.de>
-
- * simplify.cc (gfc_simplify_sizeof): Clear used gmp variable.
- * target-memory.cc (gfc_target_expr_size): Likewise.
-
-2024-08-14 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/102973
- * match.cc (gfc_match_associate): Reset proc_ptr parsing flag on
- error.
-
-2024-08-14 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/116292
- * trans-intrinsic.cc (conv_intrinsic_move_alloc): Get the vtab
- only for derived types and classes and adjust _len for class
- types.
-
-2024-08-13 Harald Anlauf <anlauf@gmx.de>
- Steven G. Kargl <kargl@gcc.gnu.org>
-
- PR fortran/114308
- * array.cc (resolve_array_list): Reject array constructor value if
- its declared type is abstract (F2018:C7114).
-
-2024-08-12 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/85510
- * resolve.cc (resolve_variable): Mark the variable as host
- associated only, when it is not in an associate block.
- * trans-decl.cc (generate_coarray_init): Remove incorrect unused
- flag on parameter.
-
-2024-08-11 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/116221
- * intrinsic.cc (gfc_get_intrinsic_sub_symbol): Initialize variable.
- * symbol.cc (gfc_get_ha_symbol): Likewise.
-
-2024-08-07 Julian Brown <julian@codesourcery.com>
- Tobias Burnus <tobias@baylibre.com>
-
- * gfortran.h (gfc_option_t): Add disable_omp_is_initial_device.
- * lang.opt (fbuiltin-): Add.
- * options.cc (gfc_handle_option): Handle
- -fno-builtin-omp_is_initial_device.
- * f95-lang.cc (gfc_init_builtin_functions): Handle
- DEF_GOMP_BUILTIN_COMPILER.
- * trans-decl.cc (gfc_get_extern_function_decl): Add code to use
- DEF_GOMP_BUILTIN_COMPILER for 'omp_is_initial_device'.
-
-2024-08-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
-
- PR fortran/109105
- * resolve.cc (CHECK_INTERFACES): New helper macro.
- (resolve_operator): Replace use of snprintf with
- gfc_error.
-
-2024-08-06 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/102689
- * trans-array.cc (get_array_ref_dim_for_loop_dim): Use the arg1
- class container carried in ss->info as the seed for a lhs in
- class valued transformational intrinsic calls that are not the
- rhs of an assignment. Otherwise, the lhs variable expression is
- taken from the loop chain. For this latter case, the _vptr and
- _len fields are set.
- (gfc_trans_create_temp_array): Use either the lhs expression
- seeds to build a class variable that will take the returned
- descriptor as its _data field. In the case that the arg1 expr.
- is used, a class typespec must be built with the correct rank
- and the _vptr and _len fields set. The element size is provided
- for the temporary allocation and to set the descriptor span.
- (gfc_array_init_size): When an intrinsic type scalar expr3 is
- used in allocation of a class array, use its element size in
- the descriptor dtype.
- * trans-expr.cc (gfc_conv_class_to_class): Class valued
- transformational intrinsics return the pointer to the array
- descriptor as the _data field of a class temporary. Extract
- directly and return the address of the class temporary.
- (gfc_conv_procedure_call): store the expression for the first
- argument of a class valued transformational intrinsic function
- in the ss info class_container field. Later, use its type as
- the element type in the call to gfc_trans_create_temp_array.
- (fcncall_realloc_result): Add a dtype argument and use it in
- the descriptor, when available.
- (gfc_trans_arrayfunc_assign): For class lhs, build a dtype with
- the lhs rank and the rhs element size and use it in the call to
- fcncall_realloc_result.
-
-2024-08-03 Steve Kargl <kargls@comcast.net>
-
- PR fortran/104626
- * symbol.cc (gfc_add_save): Add checks for SAVE attribute
- conflicts and duplicate SAVE attribute.
-
-2024-08-02 Mikael Morin <mikael@gcc.gnu.org>
-
- * trans-intrinsic.cc (maybe_absent_optional_variable): New function.
- (gfc_conv_intrinsic_minmaxloc): Remove BACK from scalarization and
- evaluate it before. Add a check that BACK is not null if the
- expression is an optional dummy. Save the resulting expression to a
- variable. Use the variable in the generated inline code.
-
-2024-08-01 Jakub Jelinek <jakub@redhat.com>
-
- * trans-types.cc (gfc_get_array_descr_info): Don't test if
- !integer_zerop (dtype_off), use fold_build_pointer_plus
- unconditionally.
-
-2024-07-29 Tobias Burnus <tburnus@baylibre.com>
-
- PR fortran/115559
- * trans-common.cc (build_common_decl): Add 'omp declare target' and
- 'omp declare target link' variables to offload_vars.
- * trans-decl.cc (add_attributes_to_decl): Likewise; update args and
- call decl_attributes.
- (get_proc_pointer_decl, gfc_get_extern_function_decl,
- build_function_decl): Update calls.
- (gfc_get_symbol_decl): Likewise; move after 'DECL_STATIC (t)=1'
- to avoid errors with symtab_node::get_create.
-
-2024-07-22 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/88624
- * trans-expr.cc (gfc_conv_procedure_call): Treat
- pointers/references (e.g. from parameters) correctly by derefing
- them.
-
-2024-07-21 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/59104
- * gfortran.h : Add decl_order to gfc_symbol.
- * symbol.cc : Add static next_decl_order..
- (gfc_set_sym_referenced): Set symbol decl_order.
- * trans-decl.cc : Include dependency.h.
- (decl_order): Replace symbol declared_at.lb->location with
- decl_order.
-
-2024-07-19 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/103115
- * trans-array.cc (gfc_trans_array_constructor_value): If the first
- element of an array constructor is deferred-length character and
- therefore does not have an element size known at compile time, do
- not try to collect subsequent constant elements into a constructor
- for optimization.
-
-2024-07-18 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/78466
- PR fortran/80774
- * array.cc (gfc_compare_array_spec): Take cotype into account.
- * class.cc (gfc_build_class_symbol): Coarrays are also arrays.
- * gfortran.h (IS_CLASS_COARRAY_OR_ARRAY): New macro to detect
- regular and coarray class arrays.
- * interface.cc (compare_components): Take codimension into
- account.
- * resolve.cc (resolve_symbol): Improve error message.
- * simplify.cc (simplify_bound_dim): Remove duplicate.
- * trans-array.cc (gfc_trans_array_cobounds): Coarrays are also
- arrays.
- (gfc_trans_array_bounds): Same.
- (gfc_trans_dummy_array_bias): Same.
- (get_coarray_as): Get the as having a non-zero codim.
- (is_explicit_coarray): Detect explicit coarrays.
- (gfc_conv_expr_descriptor): Create a new descriptor for explicit
- coarrays.
- * trans-decl.cc (gfc_build_qualified_array): Coarrays are also
- arrays.
- (gfc_build_dummy_array_decl): Same.
- (gfc_get_symbol_decl): Same.
- (gfc_trans_deferred_vars): Same.
- * trans-expr.cc (class_scalar_coarray_to_class): Get the
- descriptor from the correct location.
- (gfc_conv_variable): Pick up the descriptor when needed.
- * trans-types.cc (gfc_is_nodesc_array): Coarrays are also
- arrays.
- (gfc_get_nodesc_array_type): Indentation fix only.
- (cobounds_match_decl): Match a tree's bounds to the expr's
- bounds and return true, when they match.
- (gfc_get_derived_type): Create a new type tree/descriptor, when
- the cobounds of the existing declaration and expr to not
- match. This happends for class arrays in parameter list, when
- there are different cobound declarations.
-
-2024-07-18 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/108889
- * gfortran.h: Add bit field 'allocated_in_scope' to gfc_symbol.
- * trans-array.cc (gfc_array_allocate): Set 'allocated_in_scope'
- after allocation if not a component reference.
- (gfc_alloc_allocatable_for_assignment): If 'allocated_in_scope'
- not set, not a component ref and not allocated, set the array
- bounds and offset to give zero length in all dimensions. Then
- set allocated_in_scope.
-
-2024-07-18 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/82904
- * trans-types.cc (gfc_sym_type): Use type `char*` for saved
- deferred length char arrays.
- * trans.cc (get_array_span): Get `.span` also for `char*` typed
- arrays, i.e. for those that have INTEGER_TYPE instead of
- ARRAY_TYPE.
-
-2024-07-17 Kewen Lin <linkw@linux.ibm.com>
-
- PR target/112993
- * trans-types.cc (get_real_kind_from_node): Consider the case where
- more than one modes have the same precision.
-
-2024-07-16 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/84868
- * simplify.cc (gfc_simplify_len_trim): If the argument is an
- element of a parameter array, simplify all the elements and
- build a new parameter array to hold the result, after checking
- that it doesn't already exist.
- * trans-expr.cc (gfc_get_interface_mapping_array) if a string
- length is available, use it for the typespec.
- (gfc_add_interface_mapping): Supply the se string length.
-
-2024-07-16 Prathamesh Kulkarni <prathameshk@nvidia.com>
-
- * trans-expr.cc (gfc_trans_zero_assign): Handle allocatable arrays.
-
-2024-07-13 Mikael Morin <mikael@gcc.gnu.org>
-
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Add the
- preliminary code generated for MASK to the preliminary code of
- MINLOC/MAXLOC.
-
-2024-07-12 Mikael Morin <morin-mikael@orange.fr>
-
- * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Create a new
- scalar scalarization chain element if BACK is present. Add it to
- the loop. Set the scalarization chain before evaluating the
- argument.
-
-2024-07-11 Andre Vehreschild <vehre@gcc.gnu.org>
-
- * trans-array.cc (gfc_conv_array_parameter): Init variable to
- NULL_TREE to fix bootstrap.
-
-2024-07-11 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/96992
- * trans-array.cc (gfc_trans_array_bounds): Set a starting
- stride, when descriptor expects a variable for the stride.
- (gfc_trans_dummy_array_bias): Allow storage association for
- dummy class arrays, when they are not elemental.
- (gfc_conv_array_parameter): Add more general class support
- and packing for classes, too.
- * trans-array.h (gfc_conv_array_parameter): Add lbound shift
- for class arrays.
- * trans-decl.cc (gfc_build_builtin_function_decls): Add decls
- for internal_un-/pack_class.
- * trans-expr.cc (gfc_reset_vptr): Allow supplying a type-tree
- to generate the vtab from.
- (gfc_class_set_vptr): Allow supplying a class-tree to take the
- vptr from.
- (class_array_data_assign): Rename to gfc_class_array_data_assign
- and make usable from other compile units.
- (gfc_class_array_data_assign): Renamed from class_array_data_
- assign.
- (gfc_conv_derived_to_class): Remove assert to
- allow converting derived to class type arrays with assumed
- rank. Reduce code base and use gfc_conv_array_parameter also
- for classes.
- (gfc_conv_class_to_class): Use gfc_class_data_assign.
- (gfc_conv_procedure_call): Adapt to new signature of
- gfc_conv_derived_to_class.
- * trans-io.cc (transfer_expr): Same.
- * trans-stmt.cc (trans_associate_var): Same.
- * trans.h (gfc_conv_derived_to_class): Signature changed.
- (gfc_class_array_data_assign): Made public.
- (gfor_fndecl_in_pack_class): Added declaration.
- (gfor_fndecl_in_unpack_class): Same.
-
-2024-07-08 Mikael Morin <mikael@gcc.gnu.org>
-
- * trans-array.cc (gfc_trans_preloop_setup): Use a separate variable
- for iteration. Use directly the value of variable I if it is known.
- Move the definition of the variable to the branch where the
- remaining uses are.
-
-2024-07-03 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/115700
- * trans-stmt.cc (trans_associate_var): When the associate target
- is an array-valued character variable, the length is known at entry
- of the associate block. Move setting of string length of the
- selector to the initialization part of the block.
-
-2024-07-01 Andrew Stubbs <ams@baylibre.com>
- Thomas Schwinge <thomas@codesourcery.com>
-
- * openmp.cc (is_predefined_allocator): Update valid ranges to
- incorporate ompx_gnu_pinned_mem_alloc.
-
-2024-06-29 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/114019
- * trans-stmt.cc (gfc_trans_allocate): Fix handling of case of
- scalar character expression being used for SOURCE.
-
-2024-06-28 Andre Vehreschild <vehre@gcc.gnu.org>
-
- * trans-expr.cc (gfc_class_set_vptr): Add setting of _vptr
- member.
- * trans-intrinsic.cc (conv_intrinsic_move_alloc): First use
- of gfc_class_set_vptr and refactor very similar code.
- * trans.h (gfc_class_set_vptr): Declare the new function.
-
-2024-06-28 Andre Vehreschild <vehre@gcc.gnu.org>
-
- * trans-array.cc (structure_alloc_comps): Use reset_vptr.
- * trans-decl.cc (gfc_trans_deferred_vars): Same.
- (gfc_generate_function_code): Same.
- * trans-expr.cc (gfc_reset_vptr): Allow supplying the class
- type.
- (gfc_conv_procedure_call): Use reset_vptr.
- * trans-intrinsic.cc (gfc_conv_intrinsic_transfer): Same.
-
-2024-06-24 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/55978
- * trans-array.cc (gfc_conv_array_parameter): Do not dereference
- data component of a missing allocatable dummy array argument for
- passing as actual to optional dummy. Harden logic of presence
- check for optional pointer dummy by using TRUTH_ANDIF_EXPR instead
- of TRUTH_AND_EXPR.
-
-2024-06-20 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/59104
- * dependency.cc (dependency_fcn, gfc_function_dependency): New
- functions to detect dependency in array bounds and character
- lengths on old style function results.
- * dependency.h : Add prototype for gfc_function_dependency.
- * error.cc (error_print): Remove trailing space.
- * gfortran.h : Remove dummy_order and add fn_result_spec.
- * symbol.cc : Remove declaration of next_dummy_order..
- (gfc_set_sym_referenced): remove setting of symbol dummy order.
- * trans-array.cc (gfc_trans_auto_array_allocation): Detect
- non-dummy symbols with function dependencies and put the
- allocation at the end of the initialization code.
- * trans-decl.cc : Include dependency.h.
- (decl_order): New function that determines uses the location
- field of the symbol 'declared_at' to determine the order of two
- declarations.
- (gfc_defer_symbol_init): Call gfc_function_dependency to put
- dependent symbols in the right part of the tlink chain. Use
- the location field of the symbol declared_at to determine the
- order of declarations.
- (gfc_trans_auto_character_variable): Put character length
- initialization of dependent symbols at the end of the chain.
- * trans.cc (gfc_add_init_cleanup): Add boolean argument with
- default false that determines whther an expression is placed at
- the back or the front of the initialization chain.
- * trans.h : Update the prototype for gfc_add_init_cleanup.
-
-2024-06-19 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/115390
- * trans-decl.cc (gfc_conv_cfi_to_gfc): Move derivation of type sizes
- for character via gfc_trans_vla_type_sizes to after character length
- has been set.
-
-2024-06-19 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/90076
- * trans-decl.cc (gfc_generate_function_code): Set vptr for
- results to declared class type.
- * trans-expr.cc (gfc_reset_vptr): Allow to provide the typespec
- instead of the expression.
- * trans.h (gfc_reset_vptr): Same.
-
-2024-06-17 Andre Vehreschild <vehre@gcc.gnu.org>
-
- * trans.cc (gfc_deallocate_with_status): Check that object to deref
- is an array, before applying array deref.
-
-2024-06-12 David Malcolm <dmalcolm@redhat.com>
-
- * error.cc (gfc_clear_pp_buffer): Likewise.
- (gfc_warning): Likewise.
- (gfc_warning_check): Likewise.
- (gfc_error_opt): Likewise.
- (gfc_error_check): Likewise.
-
-2024-06-07 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/90068
- * trans-array.cc (gfc_trans_array_ctor_element): Eval non-
- variable expressions once only.
- (gfc_trans_array_constructor_value): Add statements of
- final block.
- (trans_array_constructor): Detect when final block is required.
-
-2024-06-07 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/90072
- * expr.cc (gfc_is_alloc_class_scalar_function): Detect
- allocatable class return types also for user-defined
- functions.
- * trans-expr.cc (gfc_conv_procedure_call): Same.
- (trans_class_vptr_len_assignment): Compute vptr len
- assignment correctly for user-defined functions.
-
-2024-06-05 Jakub Jelinek <jakub@redhat.com>
- Frederik Harwath <frederik@codesourcery.com>
- Sandra Loosemore <sandra@codesourcery.com>
-
- * gfortran.h (enum gfc_statement): Add ST_OMP_UNROLL,
- ST_OMP_END_UNROLL, ST_OMP_TILE and ST_OMP_END_TILE.
- (struct gfc_omp_clauses): Add sizes_list, partial, full and erroneous
- members.
- (enum gfc_exec_op): Add EXEC_OMP_UNROLL and EXEC_OMP_TILE.
- (gfc_expr_list_len): Declare.
- * match.h (gfc_match_omp_tile, gfc_match_omp_unroll): Declare.
- * openmp.cc (gfc_get_location): Declare.
- (gfc_free_omp_clauses): Free sizes_list.
- (match_oacc_expr_list): Rename to ...
- (match_omp_oacc_expr_list): ... this. Add is_omp argument and
- change diagnostic wording if it is true.
- (enum omp_mask2): Add OMP_CLAUSE_{FULL,PARTIAL,SIZES}.
- (gfc_match_omp_clauses): Parse full, partial and sizes clauses.
- (gfc_match_oacc_wait): Use match_omp_oacc_expr_list instead of
- match_oacc_expr_list.
- (OMP_UNROLL_CLAUSES, OMP_TILE_CLAUSES): Define.
- (gfc_match_omp_tile, gfc_match_omp_unroll): New functions.
- (resolve_omp_clauses): Diagnose full vs. partial clause conflict.
- Resolve sizes clause arguments.
- (find_nested_loop_in_chain): Use switch instead of series of ifs.
- Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL.
- (gfc_resolve_omp_do_blocks): Set omp_current_do_collapse to
- list length of sizes_list if present.
- (gfc_resolve_do_iterator): Return for EXEC_OMP_TILE or
- EXEC_OMP_UNROLL.
- (restructure_intervening_code): Remove spurious ()s around & operands.
- (is_outer_iteration_variable): Handle EXEC_OMP_TILE and
- EXEC_OMP_UNROLL.
- (check_nested_loop_in_chain): Likewise.
- (expr_is_invariant): Likewise.
- (resolve_omp_do): Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL. Diagnose
- tile without sizes clause. Use sizes_list length for count if
- non-NULL. Set code->ext.omp_clauses->erroneous on loops where we've
- reported diagnostics. Sorry for mixing non-rectangular loops with
- generated loops.
- (omp_code_to_statement): Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL.
- (gfc_resolve_omp_directive): Likewise.
- * parse.cc (decode_omp_directive): Parse end tile, end unroll, tile
- and unroll. Move nothing entry alphabetically.
- (case_exec_markers): Add ST_OMP_TILE and ST_OMP_UNROLL.
- (gfc_ascii_statement): Handle ST_OMP_END_TILE, ST_OMP_END_UNROLL,
- ST_OMP_TILE and ST_OMP_UNROLL.
- (parse_omp_do): Add nested argument. Handle ST_OMP_TILE and
- ST_OMP_UNROLL.
- (parse_omp_structured_block): Adjust parse_omp_do caller.
- (parse_executable): Likewise. Handle ST_OMP_TILE and ST_OMP_UNROLL.
- * resolve.cc (gfc_resolve_blocks): Handle EXEC_OMP_TILE and
- EXEC_OMP_UNROLL.
- (gfc_resolve_code): Likewise.
- * st.cc (gfc_free_statement): Likewise.
- * trans.cc (trans_code): Likewise.
- * trans-openmp.cc (gfc_trans_omp_clauses): Handle full, partial and
- sizes clauses. Use tree_cons + nreverse instead of
- temporary vector and build_tree_list_vec for tile_list handling.
- (gfc_expr_list_len): New function.
- (gfc_trans_omp_do): Rename tile to oacc_tile. Handle sizes clause.
- Don't assert code->op is EXEC_DO. Handle EXEC_OMP_TILE and
- EXEC_OMP_UNROLL.
- (gfc_trans_omp_directive): Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL.
- * dump-parse-tree.cc (show_omp_clauses): Dump full, partial and
- sizes clauses.
- (show_omp_node): Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL.
- (show_code_node): Likewise.
-
-2024-06-05 Kewen Lin <linkw@linux.ibm.com>
-
- * trans-intrinsic.cc (build_round_expr): Use TYPE_PRECISION of
- long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
- * trans-types.cc (gfc_build_real_type): Use TYPE_PRECISION of
- {float,double,long_double}_type_node to replace
- {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE.
-
-2024-06-04 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/83865
- * trans-stmt.cc (gfc_trans_allocate): Restrict special case for
- source-expression with zero-length character to rank 0, so that
- the array shape is not discarded.
-
-2024-05-29 Andre Vehreschild <vehre@gcc.gnu.org>
-
- PR fortran/90069
- * trans-expr.cc (gfc_conv_procedure_call): Evaluate
- expressions with side-effects only ones and ensure
- old is freeed.
-
-2024-05-24 Harald Anlauf <anlauf@gmx.de>
- Steven G. Kargl <kargl@gcc.gnu.org>
-
- PR fortran/93635
- * symbol.cc (conflict_std): Helper function for reporting attribute
- conflicts depending on the Fortran standard version.
- (conf_std): Helper macro for checking standard-dependent conflicts.
- (gfc_check_conflict): Use it.
-
-2024-05-24 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/86100
- * trans-array.cc (gfc_conv_ss_startstride): Use abridged_ref_name
- to generate a more user-friendly name for bounds-check messages.
- * trans-expr.cc (gfc_copy_class_to_class): Fix bounds check for
- rank>1 by looping over the dimensions.
-
-2024-05-23 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/103312
- * dependency.cc (gfc_dep_compare_expr): Handle component call
- expressions. Return -2 as default and return 0 if compared with
- a function expression that is from an interface body and has
- the same name.
- * expr.cc (gfc_reduce_init_expr): If the expression is a comp
- call do not attempt to reduce, defer to resolution and return
- false.
- * trans-types.cc (gfc_get_dtype_rank_type,
- gfc_get_nodesc_array_type): Fix whitespace.
-
-2024-05-20 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/99798
- * symbol.cc (gfc_release_symbol): Move the condition guarding
- the handling cyclic references...
- (cyclic_reference_break_needed): ... here as a new predicate.
- Remove superfluous parts. Add a condition preventing any premature
- release with submodule symbols.
-
-2024-05-20 Tobias Burnus <tburnus@baylibre.com>
-
- PR fortran/115150
- * trans-intrinsic.cc (gfc_conv_intrinsic_bound): Fix SHAPE
- for zero-size arrays
-
-2024-05-20 Tobias Burnus <tburnus@baylibre.com>
-
- * invoke.texi (fcoarray): Link to OpenCoarrays.org;
- mention libcaf_single.
-
-2024-05-17 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/114874
- * gfortran.h: Add 'assoc_name_inferred' to gfc_namespace.
- * match.cc (gfc_match_select_type): Set 'assoc_name_inferred'
- in select type namespace if the selector has inferred type.
- * primary.cc (gfc_match_varspec): If a select type temporary
- is apparently scalar and a left parenthesis has been detected,
- check the current namespace has 'assoc_name_inferred' set. If
- so, set inferred_type.
- * resolve.cc (resolve_variable): If the namespace of a select
- type temporary is marked with 'assoc_name_inferred' call
- gfc_fixup_inferred_type_refs to ensure references are OK.
- (gfc_fixup_inferred_type_refs): Catch invalid array refs..
-
-2024-05-15 Jakub Jelinek <jakub@redhat.com>
-
- PR c/115103
- * openmp.cc (resolve_omp_clauses): Diagnose grainsize
- used together with num_tasks or nogroup used together with
- reduction.
-
-2024-05-13 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/113363
- * trans-array.cc (gfc_array_init_size): Use the expr3 dtype so
- that the correct element size is used.
- * trans-expr.cc (gfc_conv_procedure_call): Remove restriction
- that ss and ss->loop be present for the finalization of class
- array function results.
- (trans_class_assignment): Use free and malloc, rather than
- realloc, for character expressions assigned to unlimited poly
- entities.
- * trans-stmt.cc (gfc_trans_allocate): Build a correct rhs for
- the assignment of an unlimited polymorphic 'source'.
-
-2024-05-12 Harald Anlauf <anlauf@gmx.de>
-
- * primary.cc (gfc_match_varspec): Replace 'ref' argument to
- is_inquiry_ref() by NULL when the result is not needed to avoid
- a memleak.
-
-2024-05-12 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/84006
- PR fortran/100027
- PR fortran/98534
- * iresolve.cc (gfc_resolve_transfer): Emit a TODO error for
- unlimited polymorphic mold.
- * trans-expr.cc (gfc_resize_class_size_with_len): Use the fold
- even if a block is not available in which to fix the result.
- (trans_class_assignment): Enable correct assignment of
- character expressions to unlimited polymorphic variables using
- lhs _len field and rse string_length.
- * trans-intrinsic.cc (gfc_conv_intrinsic_storage_size): Extract
- the class expression so that the unlimited polymorphic class
- expression can be used in gfc_resize_class_size_with_len to
- obtain the storage size for character payloads. Guard the use
- of GFC_DECL_SAVED_DESCRIPTOR by testing for DECL_LANG_SPECIFIC
- to prevent the ICE. Also, invert the order to use the class
- expression extracted from the argument.
- (gfc_conv_intrinsic_transfer): In same way as 'storage_size',
- use the _len field to obtaining the correct length for arg 1.
- Add a branch for the element size in bytes of class expressions
- with provision to make use of the unlimited polymorphic _len
- field. Again, the class references are explicitly identified.
- 'mold_expr' was already declared. Use it instead of 'arg'. Do
- not fix 'dest_word_len' for deferred character sources because
- reallocation on assign makes use of it before it is assigned.
-
-2024-05-11 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/115039
- * expr.cc (gfc_traverse_expr): An inquiry ref does not constitute
- a dependency and cannot collide with a symbol.
-
-2024-05-05 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/114827
- * trans-array.cc (gfc_alloc_allocatable_for_assignment): Take into
- account _len of unlimited polymorphic entities when calculating
- the effective element size for allocation size and array span.
- Set _len of lhs to _len of rhs.
- * trans-expr.cc (trans_class_assignment): Take into account _len
- of unlimited polymorphic entities for allocation size.
-
-2024-04-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * expr.cc (check_transformational): Add SELECTED_LOGICAL_KIND
- to allowed functions for Fortran 2023.
- * gfortran.h (GFC_ISYM_SL_KIND): New.
- * gfortran.texi: Mention SELECTED_LOGICAL_KIND.
- * intrinsic.cc (add_functions): Add SELECTED_LOGICAL_KIND.
- (gfc_intrinsic_func_interface): Allow it in initialization
- expressions.
- * intrinsic.h (gfc_simplify_selected_logical_kind): New proto.
- * intrinsic.texi: Add SELECTED_LOGICAL_KIND.
- * simplify.cc (gfc_simplify_selected_logical_kind): New
- function.
- * trans-decl.cc (gfc_build_intrinsic_function_decls): Initialize
- gfor_fndecl_sl_kind.
- * trans-intrinsic.cc (gfc_conv_intrinsic_sl_kind): New function.
- (gfc_conv_intrinsic_function): Call it for GFC_ISYM_SL_KIND.
- * trans.h (gfor_fndecl_sl_kind): New symbol.
-
-2024-04-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
-
- * iso-fortran-env.def: Add logical{8,16,32,64} and
- real16 named constants.
-
-2024-04-29 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/114959
- * trans-expr.cc (gfc_trans_class_init_assign): Return NULL_TREE
- if the default initializer has all NULL fields. Guard this
- by a requirement that the code not be EXEC_INIT_ASSIGN and that
- the object be an INTENT_OUT dummy.
- * trans-stmt.cc (gfc_trans_allocate): Change the initializer
- code for allocate with mold to EXEC_ALLOCATE to allow an
- initializer with all NULL fields.
-
-2024-04-25 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/93678
- * trans-expr.cc (gfc_conv_procedure_call): Use the interface,
- where possible, to obtain the type of character procedure
- pointers of class entities.
-
-2024-04-25 Paul Thomas <pault@gcc.gnu.org>
- Jakub Jelinek <jakub@gcc.gnu.org>
-
- PR fortran/89462
- * decl.cc (build_sym): Add an extra argument 'elem'. If 'elem'
- is greater than 1, gfc_new_charlen is called to generate a new
- charlen, registered in the symbol namespace.
- (variable_decl, enumerator_decl): Set the new argument in the
- calls to build_sym.
-
-2024-04-21 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/103471
- * resolve.cc (resolve_actual_arglist): Catch variables silently
- set as untyped, resetting the flag so that gfc_resolve_expr can
- generate the no implicit type error.
- (gfc_resolve_index_1): Block index expressions of unknown type
- from being converted to default integer, avoiding the fatal
- error in trans-decl.cc.
- * symbol.cc (gfc_set_default_type): Remove '(symbol)' from the
- 'no IMPLICIT type' error message.
- * trans-decl.cc (gfc_get_symbol_decl): Change fatal error locus
- to that of the symbol declaration.
- (gfc_trans_deferred_vars): Remove two trailing tabs.
-
-2024-04-18 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/114739
- * primary.cc (gfc_match_varspec): Check for default type before
- checking for derived types with the right component name.
-
-2024-04-16 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113793
- * resolve.cc (resolve_allocate_expr): Reject ALLOCATE with SOURCE=
- or MOLD= specifier for unequal length.
- * trans-stmt.cc (gfc_trans_allocate): If an allocatable character
- variable has fixed length, use it and do not use the source length.
- With bounds-checking enabled, add a runtime check for same length.
-
-2024-04-10 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/106500
- * check.cc (is_c_interoperable): Fix checks for C_SIZEOF.
- (gfc_check_c_f_pointer): Reject function returning a pointer as FPTR,
- and improve an error message.
-
-2024-04-09 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/114535
- * resolve.cc (resolve_symbol): Remove last chunk that checked
- for finalization of unreferenced symbols.
-
-2024-04-09 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/113956
- * trans-expr.cc (gfc_trans_pointer_assignment): Remove assert
- causing the ICE since it was unnecesary.
-
-2024-04-02 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/106999
- * interface.cc (gfc_compare_interfaces): Add error for a
- subroutine proc pointer passed to a variable formal.
- (compare_parameter): If a procedure pointer is being passed to
- a non-procedure formal arg, and there is an an interface, use
- gfc_compare_interfaces to check and provide a more useful error
- message.
-
-2024-04-02 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/112407
- * resolve.cc (resolve_procedure_expression): Change the test for
- for recursion in the case of hidden procedures from modules.
- (resolve_typebound_static): Add warning for possible recursive
- calls to typebound procedures.
- * trans-expr.cc (gfc_trans_class_init_assign): Do not apply
- default initializer to class dummy where component initializers
- are all null.
-
-2024-03-29 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/50410
- * trans-expr.cc (gfc_conv_structure): Check for NULL pointer.
-
-2024-03-29 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/36337
- PR fortran/110987
- PR fortran/113885
- * trans-expr.cc (gfc_trans_assignment_1): Place finalization
- block before rhs post block for elemental rhs.
- * trans.cc (gfc_finalize_tree_expr): Check directly if a type
- has no components, rather than the zero components attribute.
- Treat elemental zero component expressions in the same way as
- scalars.
-
-2024-03-28 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/114474
- * primary.cc (gfc_variable_attr): Catch variables used in structure
- constructors within DATA statements that are still tagged with a
- temporary type BT_PROCEDURE from match_actual_arg and which have the
- target attribute, and fix their typespec.
-
-2024-03-28 Mikael Morin <mikael@gcc.gnu.org>
- Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/111781
- PR fortran/114475
- * expr.cc (check_restricted): In submodules, allow variables host-
- associated from the parent module.
-
-2024-03-22 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/55978
- * interface.cc (gfc_compare_actual_formal): Skip size check for
- NULL() actual without MOLD argument.
-
-2024-03-22 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/107426
- * gfortran.h (gfc_save_module_list, gfc_restore_old_module_list):
- New declarations.
- * module.cc (old_module_list_tail): New global variable.
- (gfc_save_module_list, gfc_restore_old_module_list): New functions.
- (gfc_use_modules): Set module_list and old_module_list_tail.
- * parse.cc (next_statement): Save module_list before doing any work.
- (reject_statement): Restore module_list to its saved value.
-
-2024-03-22 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/111781
- * symbol.cc (gfc_get_procedure_ns, gfc_get_spec_ns): New functions.
- * gfortran.h (gfc_get_procedure_ns, gfc_get_spec ns): Declare them.
- (gfc_is_formal_arg): Remove.
- * expr.cc (check_restricted): Remove special case allowing local
- variable in dummy argument bound expressions. Use gfc_get_spec_ns
- to get the right namespace.
- * resolve.cc (gfc_is_formal_arg, formal_arg_flag): Remove.
- (gfc_resolve_formal_arglist): Set gfc_current_ns. Quit loop and
- restore gfc_current_ns instead of early returning.
- (resolve_symbol): Factor common array spec resolution code to...
- (resolve_symbol_array_spec): ... this new function. Additionnally
- set and restore gfc_current_ns.
-
-2024-03-21 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/30802
- * trans-array.cc (abridged_ref_name): New helper function.
- (trans_array_bound_check): Use it.
- (array_bound_check_elemental): Likewise.
- (gfc_conv_array_ref): Likewise.
-
-2024-03-20 Jakub Jelinek <jakub@redhat.com>
-
- * trans-array.cc (structure_alloc_comps): Use integer_zero_node
- instead of build_zero_cst (integer_type_node) or
- build_int_cst (integer_type_node, 0) and integer_one_node instead of
- build_int_cst (integer_type_node, 1).
- * trans-expr.cc (conv_scalar_char_value): Likewise.
- * trans-stmt.cc (gfc_trans_form_team, gfc_trans_change_team,
- gfc_trans_sync_team, gfc_trans_sync): Likewise.
- * trans-decl.cc (create_main_function): Likewise.
- * trans-intrinsic.cc (trans_this_image, conv_intrinsic_move_alloc):
- Likewise.
- * trans.cc (gfc_allocate_using_caf_lib, gfc_deallocate_with_status):
- Likewise.
-
-2024-03-18 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/103715
- * frontend-passes.cc (check_externals_expr): Prevent invalid read
- in case of mismatch of external subroutine with function.
-
-2024-03-17 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/101135
- * trans-array.cc (gfc_get_dataptr_offset): Check for optional
- arguments being present before dereferencing data pointer.
-
-2024-03-15 Paul Thomas <pault@gcc.gnu.org>
-
- PR fortran/87477
- PR fortran/89645
- PR fortran/99065
- PR fortran/114141
- PR fortran/114280
- * class.cc (gfc_change_class): New function needed for
- associate names, when rank changes or a derived type is
- produced by resolution
- * dump-parse-tree.cc (show_code_node): Make output for SELECT
- TYPE more comprehensible.
- * expr.cc (find_inquiry_ref): Do not simplify expressions of
- an inferred type.
- * gfortran.h : Add 'gfc_association_list' to structure
- 'gfc_association_list'. Add prototypes for
- 'gfc_find_derived_types', 'gfc_fixup_inferred_type_refs' and
- 'gfc_change_class'. Add macro IS_INFERRED_TYPE.
- * match.cc (copy_ts_from_selector_to_associate): Add bolean arg
- 'select_type' with default false. If this is a select type name
- and the selector is a inferred type, build the class type and
- apply it to the associate name.
- (build_associate_name): Pass true to 'select_type' in call to
- previous.
- * parse.cc (parse_associate): If the selector is inferred type
- the associate name is too. Make sure that function selector
- class and rank, if known, are passed to the associate name. If
- a function result exists, pass its typespec to the associate
- name.
- * primary.cc (resolvable_fcns): New function to check that all
- the function references are resolvable.
- (gfc_match_varspec): If a scalar derived type select type
- temporary has an array reference, match the array reference,
- treating this in the same way as an equivalence member. Do not
- set 'inquiry' if applied to an unknown type the inquiry name
- is ambiguous with the component of an accessible derived type.
- Check that resolution of the target expression is OK by testing
- if the symbol is declared or is an operator expression, then
- using 'resolvable_fcns' recursively. If all is well, resolve
- the expression. If this is an inferred type with a component
- reference, call 'gfc_find_derived_types' to find a suitable
- derived type. If there is an inquiry ref and the symbol either
- is of unknown type or is inferred to be a derived type, set the
- primary and symbol TKR appropriately.
- * resolve.cc (resolve_variable): Call new function below.
- (gfc_fixup_inferred_type_refs): New function to ensure that the
- expression references for a inferred type are consistent with
- the now fixed up selector.
- (resolve_assoc_var): Ensure that derived type or class function
- selectors transmit the correct arrayspec to the associate name.
- (resolve_select_type): If the selector is an associate name of
- inferred type and has no component references, the associate
- name should have its typespec. Simplify the conversion of a
- class array to class scalar by calling 'gfc_change_class'.
- Make sure that a class, inferred type selector with an array
- ref transfers the typespec from the symbol to the expression.
- * symbol.cc (gfc_set_default_type): If an associate name with
- unknown type has a selector expression, try resolving the expr.
- (find_derived_types, gfc_find_derived_types): New functions
- that search for a derived type with a given name.
- * trans-expr.cc (gfc_conv_variable): Some inferred type exprs
- escape resolution so call 'gfc_fixup_inferred_type_refs'.
- * trans-stmt.cc (trans_associate_var): Tidy up expression for
- 'class_target'. Finalize and free class function results.
- Correctly handle selectors that are class functions and class
- array references, passed as derived types.
-
-2024-03-14 Thomas Schwinge <thomas@codesourcery.com>
-
- * dump-parse-tree.cc (show_omp_clauses): Handle 'self_expr'.
- * openmp.cc (gfc_free_omp_clauses): Likewise.
- * trans-openmp.cc (gfc_split_omp_clauses): Don't handle 'self_expr'.
-
-2024-03-14 Chung-Lin Tang <cltang@baylibre.com>
-
- * dump-parse-tree.cc (show_omp_namelist): Print "readonly," for
- OMP_LIST_MAP and OMP_LIST_CACHE if n->u.map.readonly is set.
- Adjust 'n->u.map_op' to 'n->u.map.op'.
- * gfortran.h (typedef struct gfc_omp_namelist): Adjust map_op as
- 'ENUM_BITFIELD (gfc_omp_map_op) op:8', add 'bool readonly' field,
- change to named struct field 'map'.
- * openmp.cc (gfc_match_omp_map_clause): Adjust 'n->u.map_op' to
- 'n->u.map.op'.
- (gfc_match_omp_clause_reduction): Likewise.
- (gfc_match_omp_clauses): Add readonly modifier parsing for OpenACC
- copyin clause, set 'n->u.map.op' and 'n->u.map.readonly' for parsed
- clause. Adjust 'n->u.map_op' to 'n->u.map.op'.
- (gfc_match_oacc_declare): Adjust 'n->u.map_op' to 'n->u.map.op'.
- (gfc_match_oacc_cache): Add readonly modifier parsing for OpenACC
- cache directive.
- (resolve_omp_clauses): Adjust 'n->u.map_op' to 'n->u.map.op'.
- * trans-decl.cc (add_clause): Adjust 'n->u.map_op' to 'n->u.map.op'.
- (finish_oacc_declare): Likewise.
- * trans-openmp.cc (gfc_trans_omp_clauses): Set OMP_CLAUSE_MAP_READONLY,
- OMP_CLAUSE__CACHE__READONLY to 1 when readonly is set. Adjust
- 'n->u.map_op' to 'n->u.map.op'.
- (gfc_add_clause_implicitly): Adjust 'n->u.map_op' to 'n->u.map.op'.
-
-2024-03-13 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/114001
- * expr.cc (gfc_is_simply_contiguous): Adjust logic so that CLASS
- symbols are also handled.
-
-2024-03-13 Tobias Burnus <tburnus@baylibre.com>
-
- PR fortran/114283
- * trans-openmp.cc (gfc_omp_predetermined_mapping): Map dummy
- procedures as firstprivate.
-
-2024-03-12 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/110826
- * array.cc (gfc_array_dimen_size): When walking the ref chain of an
- array and the ultimate component is a procedure pointer, do not try
- to figure out its dimension even if it is a array-valued function.
-
-2024-03-06 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/103707
- PR fortran/106987
- * arith.cc (is_hard_arith_error): New helper function to determine
- whether an arithmetic error is "hard" or not.
- (check_result): Use it.
- (gfc_arith_divide): Set "Division by zero" only for regular
- numerators of real and complex divisions.
- (reduce_unary): Use is_hard_arith_error to determine whether a hard
- or (recoverable) soft error was encountered. Terminate immediately
- on hard error, otherwise remember code of first soft error.
- (reduce_binary_ac): Likewise.
- (reduce_binary_ca): Likewise.
- (reduce_binary_aa): Likewise.
-
-2024-03-01 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/104819
- * check.cc (gfc_check_null): Handle nested NULL()s.
- (is_c_interoperable): Check for MOLD argument of NULL() as part of
- the interoperability check.
- * interface.cc (gfc_compare_actual_formal): Extend checks for NULL()
- actual arguments for presence of MOLD argument when required by
- Interp J3/22-146.
-
-2024-02-29 Alexander Westbrooks <alexanderw@gcc.gnu.org>
-
- PR fortran/82943
- PR fortran/86148
- PR fortran/86268
- * decl.cc (gfc_get_pdt_instance): Set the PDT instance field
- 'f2k_derived', if not set already, to point to the given
- PDT template 'f2k_derived' namespace in order to give the
- PDT instance referential access to the typebound procedures
- of the template.
- * gfortran.h (gfc_pdt_is_instance_of): Add prototype.
- * resolve.cc (resolve_typebound_procedure): If the derived type
- does not have the attribute 'pdt_template' set, compare the
- dummy argument to the 'resolve_bindings_derived' type like usual.
- If the derived type is a 'pdt_template', then check if the
- dummy argument is an instance of the PDT template. If the derived
- type is a PDT template, and the dummy argument is an instance of
- that template, but the dummy argument 'param_list' is not
- SPEC_ASSUMED, check if there are any LEN parameters in the
- dummy argument. If there are no LEN parameters, then this implies
- that there are only KIND parameters in the dummy argument.
- If there are LEN parameters, this would be an error, for all
- LEN parameters for the dummy argument MUST be assumed for
- typebound procedures of PDTs.
- (resolve_pdt): Add a check for ALLOCATABLE and POINTER attributes for
- SPEC_DEFERRED parameters of PDT class symbols. ALLOCATABLE and
- POINTER attributes for a PDT class symbol are stored in the
- 'class_pointer' and 'allocatable' attributes of the '_data'
- component respectively.
- * symbol.cc (gfc_pdt_is_instance_of): New function.
-
-2024-02-26 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/114012
- * trans-expr.cc (gfc_conv_procedure_call): Evaluate non-trivial
- arguments just once before assigning to an unlimited polymorphic
- dummy variable.
-
-2024-02-23 Steve Kargl <kargl@gcc.gnu.org>
- Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/114024
- * trans-stmt.cc (gfc_trans_allocate): When a source expression has
- substring references, part-refs, or %re/%im inquiries, wrap the
- entity in parentheses to force evaluation of the expression.
-
-2024-02-23 Tobias Burnus <tburnus@baylibre.com>
-
- * openmp.cc (gfc_match_omp_depobj): Use OPT_Wopenmp
- as warning category in gfc_warning.
-
-2024-02-20 Peter Hill <peter.hill@york.ac.uk>
-
- PR fortran/105658
- * trans-expr.cc (gfc_conv_intrinsic_to_class): When passing an
- array component reference of intrinsic type to a procedure
- with an unlimited polymorphic dummy argument, a temporary
- should be created.
-
-2024-02-17 Jakub Jelinek <jakub@redhat.com>
-
- PR fortran/113503
- * trans-expr.cc (alloc_scalar_allocatable_subcomponent): Don't
- overwrite expr2->ts.u.cl->backend_decl, instead set size to
- expr2->ts.u.cl->backend_decl first and use size instead of
- expr2->ts.u.cl->backend_decl.
- (gfc_trans_subcomponent_assign): Emit se.pre into block
- before calling alloc_scalar_allocatable_subcomponent instead of
- after it.
-
-2024-02-17 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113911
- * trans-array.cc (gfc_trans_deferred_array): Do not clobber
- deferred length for a character variable passed as dummy argument.
-
-2024-02-15 Kwok Cheung Yeung <kcyeung@baylibre.com>
-
- * dump-parse-tree.cc (show_attr): Handle omp_declare_target_indirect
- attribute.
- * f95-lang.cc (gfc_gnu_attributes): Add entry for 'omp declare
- target indirect'.
- * gfortran.h (symbol_attribute): Add omp_declare_target_indirect
- field.
- (struct gfc_omp_clauses): Add indirect field.
- * openmp.cc (omp_mask2): Add OMP_CLAUSE_INDIRECT.
- (gfc_match_omp_clauses): Match indirect clause.
- (OMP_DECLARE_TARGET_CLAUSES): Add OMP_CLAUSE_INDIRECT.
- (gfc_match_omp_declare_target): Check omp_device_type and apply
- omp_declare_target_indirect attribute to symbol if indirect clause
- active. Show warning if there are only device_type and/or indirect
- clauses on the directive.
- * trans-decl.cc (add_attributes_to_decl): Add 'omp declare target
- indirect' attribute if symbol has indirect attribute set.
-
-2024-02-14 Steve Kargl <kargl@gcc.gnu.org>
-
- PR fortran/105847
- * trans-io.cc (transfer_namelist_element): When building the
- namelist object name, if the use rename attribute is set, use
- the local name specified in the use statement.
-
-2024-02-14 Jakub Jelinek <jakub@redhat.com>
-
- * error.cc (error_print): For u printing of ptrdiff_t,
- print ptrdiff_t argument converted to unsigned long long and
- masked with 2ULL * PTRDIFF_MAX + 1.
-
-2024-02-13 Tobias Burnus <tburnus@baylibre.com>
-
- PR middle-end/113904
- * trans-openmp.cc (gfc_trans_omp_declare_variant): Handle splitting of
- OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
- * openmp.cc (gfc_match_omp_context_selector): Likewise; rejects
- non-const device_num/condition; improve diagnostic.
-
-2024-02-13 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113866
- * trans-expr.cc (gfc_conv_procedure_call): When passing an optional
- dummy argument to an optional dummy argument of a bind(c) procedure
- and the dummy argument is passed via a CFI descriptor, no special
- presence check and passing of a default NULL pointer is needed.
-
-2024-02-13 Steve Kargl <kargl@gcc.gnu.org>
-
- PR fortran/113883
- * trans-array.cc (gfc_trans_deferred_array): Set length to zero,
- avoiding extraneous diagnostics.
-
-2024-02-10 Jakub Jelinek <jakub@redhat.com>
-
- * error.cc (error_print): Handle z and t modifiers on d, i and u.
- * check.cc (gfc_check_transfer): Use %zd instead of %ld and casts to
- long.
- * primary.cc (gfc_convert_to_structure_constructor): Use %td instead
- of %ld and casts to long.
-
-2024-02-10 Jakub Jelinek <jakub@redhat.com>
-
- * trans-common.cc (build_common_decl): Use %wu instead of %lu and
- casts to unsigned long.
- * resolve.cc (resolve_ordinary_assign): Use %wd instead of %ld and
- casts to long.
- * array.cc (gfc_resolve_character_array_constructor): Likewise.
- * data.cc (create_character_initializer): Likewise.
-
-2024-02-09 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113799
- * arith.cc (reduce_unary): Remember any overflow encountered during
- reduction of unary arithmetic operations on array constructors and
- continue, and return error status, but terminate on serious errors.
-
-2024-01-28 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113377
- * trans-expr.cc (conv_dummy_value): Treat NULL actual argument to
- optional dummy with the VALUE attribute as not present.
- (gfc_conv_procedure_call): Likewise.
-
-2024-01-27 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/104908
- * trans-array.cc (gfc_conv_array_ref): Restrict use of transformed
- descriptor (sym->backend_decl) to the unlimited polymorphic case.
-
-2024-01-24 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113377
- * trans-expr.cc (conv_dummy_value): New.
- (gfc_conv_procedure_call): Factor code for handling dummy arguments
- with the VALUE attribute in the scalar case into conv_dummy_value().
- Reuse and adjust for calling elemental procedures.
-
-2024-01-21 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113377
- * trans-expr.cc (gfc_conv_procedure_call): Fix handling of optional
- scalar arguments of intrinsic type with the VALUE attribute.
-
-2024-01-20 Mikael Morin <mikael@gcc.gnu.org>
-
- PR fortran/48776
- PR fortran/111291
- * parse.cc: Restore current interface to its previous value on error.
-
-2024-01-19 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113471
- * trans-array.cc (array_bound_check_elemental): Array bounds check
- shall apply here to elemental dimensions of an array section only.
-
-2024-01-13 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/67277
- * trans-intrinsic.cc (gfc_conv_intrinsic_ishftc): Handle optional
- dummy argument for SIZE passed to ISHFTC. Set default value to
- BIT_SIZE(I) when missing.
-
-2024-01-13 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113305
- * gfortran.h (gfc_loop_annot): New.
- (gfc_iterator, gfc_forall_iterator): Use for annotation control.
- * array.cc (gfc_copy_iterator): Adjust.
- * gfortran.texi: Document annotations IVDEP, UNROLL n, VECTOR,
- NOVECTOR as applied to DO CONCURRENT.
- * parse.cc (parse_do_block): Parse annotations IVDEP, UNROLL n,
- VECTOR, NOVECTOR as applied to DO CONCURRENT. Apply UNROLL only to
- first loop control variable.
- * trans-stmt.cc (iter_info): Use gfc_loop_annot.
- (gfc_trans_simple_do): Adjust.
- (gfc_trans_forall_loop): Annotate loops with IVDEP, UNROLL n,
- VECTOR, NOVECTOR as needed for DO CONCURRENT.
- (gfc_trans_forall_1): Handle loop annotations.
-
-2024-01-08 Harald Anlauf <anlauf@gmx.de>
-
- PR fortran/113245
- * trans-intrinsic.cc (gfc_conv_intrinsic_size): Use
- gfc_conv_expr_present() for proper check of optional DIM argument.
-
-2024-01-06 Harald Anlauf <anlauf@gmx.de>
- José Rui Faustino de Sousa <jrfsousa@gmail.com>
-
- PR fortran/96724
- * iresolve.cc (gfc_resolve_repeat): Force conversion to
- gfc_charlen_int_kind before call to gfc_multiply.
-
-2024-01-04 David Malcolm <dmalcolm@redhat.com>
-
- * lang.opt.urls: New file, autogenerated by
- regenerate-opt-urls.py.
-
-2024-01-03 Harald Anlauf <anlauf@gmx.de>
-
- * trans-types.cc (gfc_get_nodesc_array_type): Clear used gmp
- variables.
-
-2024-01-03 Jakub Jelinek <jakub@redhat.com>
-
- * gfortranspec.cc (lang_specific_driver): Update copyright notice
- dates.
- * gfc-internals.texi: Bump @copying's copyright year.
- * gfortran.texi: Ditto.
- * intrinsic.texi: Ditto.
- * invoke.texi: Ditto.
-
-Copyright (C) 2024 Free Software Foundation, Inc.
+Copyright (C) 2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gcc/fortran/ChangeLog-2002 b/gcc/fortran/ChangeLog-2002
index fdee6e6..301182c 100644
--- a/gcc/fortran/ChangeLog-2002
+++ b/gcc/fortran/ChangeLog-2002
@@ -331,7 +331,6 @@
(g95_conv_intrinsic_anyall): New function.
* iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
mangled name
-
Copyright (C) 2002 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2003 b/gcc/fortran/ChangeLog-2003
index 051ebb8..16da457 100644
--- a/gcc/fortran/ChangeLog-2003
+++ b/gcc/fortran/ChangeLog-2003
@@ -2337,7 +2337,6 @@
(Many): Set se.want_pointer before calling g95_conv_array_parameter.
* trans-intrinsic.c: Sync with scalarizer changes.
* trans-io.c: Ditto.
-
Copyright (C) 2003 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2004 b/gcc/fortran/ChangeLog-2004
index d5d6654..4d6bf19 100644
--- a/gcc/fortran/ChangeLog-2004
+++ b/gcc/fortran/ChangeLog-2004
@@ -2844,7 +2844,6 @@
PR fortran/13251
* trans-expr.c (gfc_conv_variable): Take the type kind of a substring
reference from the expression.
-
Copyright (C) 2004 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2005 b/gcc/fortran/ChangeLog-2005
index d9fa6a5..0bbd03b 100644
--- a/gcc/fortran/ChangeLog-2005
+++ b/gcc/fortran/ChangeLog-2005
@@ -3721,7 +3721,6 @@
* trans-stmt.c: Ditto
* trans.c: Ditto
* trans-intrinsic.c: Remove stdio.h and string.h
-
Copyright (C) 2005 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2006 b/gcc/fortran/ChangeLog-2006
index 4e83f38..cae6958 100644
--- a/gcc/fortran/ChangeLog-2006
+++ b/gcc/fortran/ChangeLog-2006
@@ -4536,7 +4536,6 @@
* ChangeLog-2003: here.
* ChangeLog-2004: here.
* ChangeLog-2005: here.
-
Copyright (C) 2006 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2007 b/gcc/fortran/ChangeLog-2007
index 421dc88..dce1cd5 100644
--- a/gcc/fortran/ChangeLog-2007
+++ b/gcc/fortran/ChangeLog-2007
@@ -5767,7 +5767,6 @@
* ChangeLog: Copy to ...
* ChangeLog-2006: here.
-
Copyright (C) 2007 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2008 b/gcc/fortran/ChangeLog-2008
index 6fe1eea..b5fd177 100644
--- a/gcc/fortran/ChangeLog-2008
+++ b/gcc/fortran/ChangeLog-2008
@@ -4133,7 +4133,6 @@
PR fortran/34557
* primary.c (match_varspec): Gobble whitespace before
checking for '('.
-
Copyright (C) 2008 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2009 b/gcc/fortran/ChangeLog-2009
index c5b7e62..e4ee49b 100644
--- a/gcc/fortran/ChangeLog-2009
+++ b/gcc/fortran/ChangeLog-2009
@@ -3701,7 +3701,6 @@
association, use symtree rather than symbol. For everything
except generic subroutines, substitute the symtree in the call
rather than the symbol.
-
Copyright (C) 2009 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2010 b/gcc/fortran/ChangeLog-2010
index dc25cbd..ba24df6 100644
--- a/gcc/fortran/ChangeLog-2010
+++ b/gcc/fortran/ChangeLog-2010
@@ -5547,7 +5547,6 @@
-fcheck=recursion when -frecursive is used.
* intrinsic.texi (iso_c_binding): Improve wording.
-
Copyright (C) 2010 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2011 b/gcc/fortran/ChangeLog-2011
index c7ac160..990de2d 100644
--- a/gcc/fortran/ChangeLog-2011
+++ b/gcc/fortran/ChangeLog-2011
@@ -4081,7 +4081,6 @@
PR fortran/46408
* class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
routine.
-
Copyright (C) 2011 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2022 b/gcc/fortran/ChangeLog-2022
index 253af76..19822a0 100644
--- a/gcc/fortran/ChangeLog-2022
+++ b/gcc/fortran/ChangeLog-2022
@@ -4475,7 +4475,6 @@
* gfortran.texi: Ditto.
* intrinsic.texi: Ditto.
* invoke.texi: Ditto.
-
Copyright (C) 2022 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2023 b/gcc/fortran/ChangeLog-2023
index 3b5c9a6..e18f873 100644
--- a/gcc/fortran/ChangeLog-2023
+++ b/gcc/fortran/ChangeLog-2023
@@ -2186,7 +2186,6 @@
* gfortran.texi: Ditto.
* intrinsic.texi: Ditto.
* invoke.texi: Ditto.
-
Copyright (C) 2023 Free Software Foundation, Inc.
diff --git a/gcc/fortran/ChangeLog-2024 b/gcc/fortran/ChangeLog-2024
new file mode 100644
index 0000000..0749b22
--- /dev/null
+++ b/gcc/fortran/ChangeLog-2024
@@ -0,0 +1,3038 @@
+2024-12-30 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/117643
+ * check.cc (gfc_check_f_c_string): Check arguments of f_c_string().
+ * gfortran.h (enum gfc_isym_id): New symbol GFC_ISYM_F_C_STRING.
+ * intrinsic.cc (add_functions): Add the ISO C Binding routine f_c_string().
+ Wrap nearby long line to less than 80 characters.
+ * intrinsic.h (gfc_check_f_c_string): Prototype for gfc_check_f_c_string().
+ * iso-c-binding.def (NAMED_FUNCTION): Declare for ISO C Binding
+ routine f_c_string().
+ * primary.cc (gfc_match_rvalue): Fix comment that has been untrue since 2011.
+ Add ISOCBINDING_F_C_STRING to conditional.
+ * trans-intrinsic.cc (conv_trim): Specialized version of trim() for
+ f_c_string().
+ (gfc_conv_intrinsic_function): Use GFC_ISYM_F_C_STRING to trigger in-lining.
+
+2024-12-23 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/118179
+ * trans-expr.cc (conv_null_actual): Suppress copying back of
+ pointer address for unspecified intent.
+
+2024-12-23 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/116254
+ PR fortran/118059
+ * trans-array.cc (gfc_trans_create_temp_array): Make sure that
+ transformational intrinsics of class objects that change rank,
+ most particularly spread, go through the correct code path. Re-
+ factor so that changes to the dtype are done on the temporary
+ before the class data of the result points to it.
+ * trans-expr.cc (arrayfunc_assign_needs_temporary): Character
+ array function expressions assigned to an unlimited polymorphic
+ variable require a temporary.
+
+2024-12-22 Harald Anlauf <anlauf@gmx.de>
+
+ * check.cc (gfc_check_random_seed): Clear gmp variables returned by
+ gfc_array_size.
+ * expr.cc (gfc_check_pointer_assign): Likewise.
+
+2024-12-22 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/107635
+ * gfortran.h (gfc_add_caf_accessor): New function.
+ * gfortran.texi: Document new API routines.
+ * resolve.cc (get_arrayspec_from_expr): Synthesize the arrayspec
+ resulting from an expression, i.e. not only the rank, but also
+ the bounds.
+ (remove_coarray_from_derived_type): Remove coarray ref from a
+ derived type to access it in access routine.
+ (convert_coarray_class_to_derived_type): Same but for classes.
+ The result is a derived type.
+ (split_expr_at_caf_ref): Split an expression at the coarray
+ reference to move the reference after the coarray ref into the
+ access routine.
+ (check_add_new_component): Helper to add variables as
+ components to derived type transfered to the access routine.
+ (create_get_parameter_type): Create the derived type to transfer
+ addressing data to the access routine.
+ (create_get_callback): Create the access routine.
+ (add_caf_get_intrinsic): Use access routine instead of old
+ caf_get.
+ * trans-decl.cc (gfc_build_builtin_function_decls): Register new
+ API routines.
+ (gfc_create_module_variable): Use renamed flag.
+ (gfc_emit_parameter_debug_info):
+ (struct caf_accessor): Linked list of hash-access routine pairs.
+ (gfc_add_caf_accessor): Add a hash-access routine pair to above
+ linked list.
+ (create_caf_accessor_register): Add all registered hash-access
+ routine pairs to the current caf_init.
+ (generate_coarray_init): Use routine above.
+ (gfc_generate_module_vars): Use renamed flag.
+ (generate_local_decl): Same.
+ (gfc_generate_function_code): Same.
+ (gfc_process_block_locals): Same.
+ * trans-intrinsic.cc (conv_shape_to_cst): Build the product of a
+ shape.
+ (gfc_conv_intrinsic_caf_get): Create call to access routine.
+ (conv_caf_send): Adapt to caf_get using less arguments.
+ (gfc_conv_intrinsic_function): Same.
+ * trans.cc (gfc_trans_force_lval): Helper to ensure that an
+ expression can be used as an lvalue-ref.
+ * trans.h (gfc_trans_force_lval): See above.
+
+2024-12-22 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/107635
+ * gfortran.h (gfc_comp_caf_token): Convenient macro for
+ accessing caf_token's tree.
+ * resolve.cc (gfc_resolve_ref): Backup caf_lhs when resolving
+ expr in array_ref.
+ (remove_caf_get_intrinsic): Removed.
+ (resolve_variable): Set flag caf_lhs when resolving lhs of
+ assignment to prevent insertion of caf_get.
+ (resolve_lock_unlock_event): Same, but the lhs is the parameter.
+ (resolve_ordinary_assign): Move conversion to caf_send to
+ resolve_codes.
+ (resolve_codes): Adress caf_get and caf_send here.
+ (resolve_fl_derived0): Set component's caf_token when token is
+ necessary.
+ * trans-array.cc (gfc_conv_array_parameter): Get a coarray for
+ expression that have a corank.
+ (structure_alloc_comps): Use macro to get caf_token's tree.
+ (gfc_alloc_allocatable_for_assignment): Same.
+ * trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token):
+ Same.
+ (gfc_trans_structure_assign): Same.
+ * trans-intrinsic.cc (conv_expr_ref_to_caf_ref): Same.
+ (has_ref_after_cafref): New function to figure that after a
+ reference of a coarray another reference is present.
+ (conv_caf_send): Get rhs from correct place, when caf_get is
+ not removed.
+ * trans-types.cc (gfc_get_derived_type): Get caf_token from
+ component and no longer guessing.
+
+2024-12-21 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/104819
+ * interface.cc (compare_parameter): For the rank check, NULL()
+ inherits the rank of a provided MOLD argument.
+ (gfc_compare_actual_formal): Adjust check of NULL() actual argument
+ against formal to accept F2008 enhancements (allocatable dummy).
+ NULL() with MOLD argument retains a pointer/allocatable attribute.
+ * trans-expr.cc (conv_null_actual): Implement passing NULL() to
+ derived-type dummy with pointer/allocatable attribute, and ensure
+ that the actual rank is passed to an assumed-rank dummy.
+ (gfc_conv_procedure_call): Use it.
+
+2024-12-20 Sandra Loosemore <sloosemore@baylibre.com>
+
+ * gfortran.texi: Get rid of some unnecessary hyphens throughout
+ the file.
+ * invoke.texi: Likewise.
+
+2024-12-20 Sandra Loosemore <sloosemore@baylibre.com>
+
+ * gfortran.texi: Use the present tense throughout; fix some
+ markup issues and awkward wording.
+ * invoke.texi: Likewise.
+
+2024-12-20 Sandra Loosemore <sloosemore@baylibre.com>
+
+ * gfortran.texi: Fix markup, typos, and indexing throughout the
+ file.
+ * invoke.texi: Likewise.
+
+2024-12-20 Sandra Loosemore <sloosemore@baylibre.com>
+
+ PR fortran/51820
+ PR fortran/89632
+ PR fortran/109216
+ * invoke.texi (Code Gen Options): Further cleanups of the discussion
+ of what -funderscoring and -fsecond-underscore do.
+
+2024-12-20 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/118120
+ PR fortran/113928
+ * trans-array.cc (symbols_could_alias): If one symbol refers to a
+ complex type and the other to a real type of the same kind, do not
+ a priori exclude the possibility of aliasing.
+
+2024-12-17 Sandra Loosemore <sloosemore@baylibre.com>
+
+ PR c/26154
+ * gfortran.texi (Standards): Remove redundant info about
+ OpenMP/OpenACC standard support.
+ (OpenMP): Copy-editing and update version info.
+ (OpenACC): Likewise.
+ * lang.opt.urls: Regenerated.
+
+2024-12-17 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/117347
+ * primary.cc (gfc_match_varspec): Add array constructors for
+ guessing their type like with unresolved function calls.
+
+2024-12-16 David Malcolm <dmalcolm@redhat.com>
+
+ PR sarif-replay/117943
+ * error.cc (gfc_diagnostic_text_starter): Use source-printing
+ options from text_output.
+
+2024-12-15 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/117897
+ * trans-expr.cc (gfc_trans_assignment_1): RHS pointer function
+ results must not be finalized.
+
+2024-12-12 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/117797
+ * trans-array.cc (class_array_element_size): New function.
+ (gfc_get_array_span): Refactor, using class_array_element_size
+ to return the span for descriptors that are the _data component
+ of a class expression and then class dummy references. Revert
+ the conditions to those before r15-5083 tidying up using 'sym'.
+
+2024-12-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/117901
+ * trans-stmt.cc (trans_associate_var): A variable character
+ length array associate name must generate a DECL expression for
+ the data pointer type.
+
+2024-12-09 Harald Anlauf <anlauf@gmx.de>
+
+ * expr.cc (find_array_section): Do not initialize GMP variables
+ twice.
+
+2024-12-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/116261
+ * trans-array.cc (gfc_array_init_size): New arg 'explicit_ts',
+ to suppress the use of the expr3 element size in the descriptor
+ dtype.
+ (gfc_array_allocate): New arg 'explicit_ts', used in call to
+ gfc_array_init_size.
+ * trans-array.h : Modify prototype for gfc_array_allocate for new
+ bool argument.
+ * trans-stmt.cc (gfc_trans_allocate): Set new argument if the
+ typespec is explicit.
+
+2024-12-03 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/102689
+ * trans-array.cc (get_array_ref_dim_for_loop_dim): Use the arg1
+ class container carried in ss->info as the seed for a lhs in
+ class valued transformational intrinsic calls that are not the
+ rhs of an assignment. Otherwise, the lhs variable expression is
+ taken from the loop chain. For this latter case, the _vptr and
+ _len fields are set.
+ (gfc_trans_create_temp_array): Use either the lhs expression
+ seeds to build a class variable that will take the returned
+ descriptor as its _data field. In the case that the arg1 expr.
+ is used, 'atmp' must be marked as unused, a typespec built with
+ the correct rank and the _vptr and _len fields set. The element
+ size is provided for the temporary allocation and to set the
+ descriptor span.
+ (gfc_array_init_size): When an intrinsic type scalar expr3 is
+ used in allocation of a class array, use its element size in
+ the descriptor dtype.
+ * trans-expr.cc (gfc_conv_class_to_class): Class valued
+ transformational intrinsics return the pointer to the array
+ descriptor as the _data field of a class temporary. Extract
+ directly and return the address of the class temporary.
+ (gfc_conv_procedure_call): store the expression for the first
+ argument of a class valued transformational intrinsic function
+ in the ss info class_container field. Later, use its type as
+ the element type in the call to gfc_trans_create_temp_array.
+ (fcncall_realloc_result): Add a dtype argument and use it in
+ the descriptor, when available.
+ (gfc_trans_arrayfunc_assign): For class lhs, build a dtype with
+ the lhs rank and the rhs element size and use it in the call to
+ fcncall_realloc_result.
+
+2024-12-03 Tobias Burnus <tburnus@baylibre.com>
+
+ * trans-decl.cc (gfc_finish_var_decl): Remove setting the alignment.
+
+2024-11-29 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR fortran/117843
+ * trans-io.cc (gfc_trans_transfer): Add default case.
+
+2024-11-28 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/117765
+ * resolve.cc (pure_subroutine): Check for an impure subroutine
+ call in a BLOCK construct nested within a DO CONCURRENT block.
+
+2024-11-28 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/117791
+ * trans-io.cc (gfc_trans_transfer): When an array index depends on
+ a function evaluation or an expression, do not use optimized array
+ I/O of an array section and fall back to normal scalarization.
+
+2024-11-28 David Malcolm <dmalcolm@redhat.com>
+
+ PR c/104896
+ * resolve.cc (resolve_operator): Replace "%<%s%>" with "%qs" in
+ message wording.
+
+2024-11-27 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/84674
+ PR fortran/117768
+ * class.cc (add_proc_comp): If the component points to a tbp
+ that is abstract, do not return since the new version is more
+ likely to be usable.
+ * resolve.cc (resolve_fl_derived): Remove the condition that
+ rejected a completely empty derived type extension.
+
+2024-11-26 Harald Anlauf <anlauf@gmx.de>
+
+ * expr.cc (find_inquiry_ref): Fix memleak introduced by scanning
+ the reference chain to find and simplify inquiry references.
+ * symbol.cc (gfc_copy_formal_args_intr): Free formal namespace
+ when not needed to avoid a front-end memleak.
+
+2024-11-26 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/117774
+ * trans-expr.cc (gfc_conv_procedure_call): When passing an array
+ to an assumed-rank dummy, terminate search for array reference of
+ actual argument before an inquiry reference (e.g. INQUIRY_RE,
+ INQUIRY_IM) so that bounds update works properly.
+
+2024-11-26 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/117763
+ * trans-array.cc (gfc_get_array_span): Guard against derefences
+ of 'expr'. Clean up some typos. Use 'gfc_get_vptr_from_expr'
+ for clarity and apply a functional reversion of last section
+ that deals with class dummies.
+
+2024-11-25 Steve Kargl <kargls@comcast.net>
+
+ PR fortran/117765
+ * resolve.cc (check_pure_function): Check the stack to
+ see if the function is in a nested BLOCK and, if that
+ block is inside a DO_CONCURRENT, issue an error.
+
+2024-11-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/85869
+ * trans-expr.cc (trans_class_vptr_len_assignment): To access
+ the '_len' field, re must be unlimited polymorphic.
+
+2024-11-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/117730
+ PR fortran/84674
+ * class.cc (add_proc_comp): Only reject a non_overridable if it
+ has no overridden procedure and the component is already
+ present in the vtype.
+ * resolve.cc (resolve_fl_derived): Do not build a vtable for a
+ derived type extension that is completely empty.
+
+2024-11-22 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR bootstrap/117737
+ * arith.cc (INCLUDE_MEMORY): Remove.
+ * array.cc (INCLUDE_MEMORY): Remove.
+ * bbt.cc (INCLUDE_MEMORY): Remove.
+ * check.cc (INCLUDE_MEMORY): Remove.
+ * class.cc (INCLUDE_MEMORY): Remove.
+ * constructor.cc (INCLUDE_MEMORY): Remove.
+ * convert.cc (INCLUDE_MEMORY): Remove.
+ * cpp.cc (INCLUDE_MEMORY): Remove.
+ * data.cc (INCLUDE_MEMORY): Remove.
+ * decl.cc (INCLUDE_MEMORY): Remove.
+ * dependency.cc (INCLUDE_MEMORY): Remove.
+ * dump-parse-tree.cc (INCLUDE_MEMORY): Remove.
+ * error.cc (INCLUDE_MEMORY): Remove.
+ * expr.cc (INCLUDE_MEMORY): Remove.
+ * f95-lang.cc (INCLUDE_MEMORY): Remove.
+ * frontend-passes.cc (INCLUDE_MEMORY): Remove.
+ * interface.cc (INCLUDE_MEMORY): Remove.
+ * intrinsic.cc (INCLUDE_MEMORY): Remove.
+ * io.cc (INCLUDE_MEMORY): Remove.
+ * iresolve.cc (INCLUDE_MEMORY): Remove.
+ * match.cc (INCLUDE_MEMORY): Remove.
+ * matchexp.cc (INCLUDE_MEMORY): Remove.
+ * misc.cc (INCLUDE_MEMORY): Remove.
+ * module.cc (INCLUDE_MEMORY): Remove.
+ * openmp.cc (INCLUDE_MEMORY): Remove.
+ * options.cc (INCLUDE_MEMORY): Remove.
+ * parse.cc (INCLUDE_MEMORY): Remove.
+ * primary.cc (INCLUDE_MEMORY): Remove.
+ * resolve.cc (INCLUDE_MEMORY): Remove.
+ * scanner.cc (INCLUDE_MEMORY): Remove.
+ * simplify.cc (INCLUDE_MEMORY): Remove.
+ * st.cc (INCLUDE_MEMORY): Remove.
+ * symbol.cc (INCLUDE_MEMORY): Remove.
+ * target-memory.cc (INCLUDE_MEMORY): Remove.
+ * trans-array.cc (INCLUDE_MEMORY): Remove.
+ * trans-common.cc (INCLUDE_MEMORY): Remove.
+ * trans-const.cc (INCLUDE_MEMORY): Remove.
+ * trans-decl.cc (INCLUDE_MEMORY): Remove.
+ * trans-expr.cc (INCLUDE_MEMORY): Remove.
+ * trans-intrinsic.cc (INCLUDE_MEMORY): Remove.
+ * trans-io.cc (INCLUDE_MEMORY): Remove.
+ * trans-openmp.cc (INCLUDE_MEMORY): Remove.
+ * trans-stmt.cc (INCLUDE_MEMORY): Remove.
+ * trans-types.cc (INCLUDE_MEMORY): Remove.
+ * trans.cc (INCLUDE_MEMORY): Remove.
+
+2024-11-22 Tobias Burnus <tburnus@baylibre.com>
+
+ * gfortran.h (gfc_omp_namelist): Cleanup interop internal
+ representation.
+ * dump-parse-tree.cc (show_omp_namelist): Update for changed
+ internal representation.
+ * match.cc (gfc_free_omp_namelist): Likewise.
+ * openmp.cc (gfc_match_omp_prefer_type, gfc_match_omp_init):
+ Likewise; also handle some corner cases better and update for
+ newer 6.0 changes related to 'fr'.
+ (resolve_omp_clauses): Add type-check for interop variables.
+ * trans-openmp.cc (gfc_trans_omp_clauses): Handle init, use
+ and destroy clauses.
+ (gfc_trans_openmp_interop): New.
+ (gfc_trans_omp_directive): Call it.
+
+2024-11-20 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/83135
+ * expr.cc (sym_is_from_ancestor): New helper function.
+ (gfc_check_vardef_context): Refine checking of PROTECTED attribute
+ of symbols that are indirectly use-associated in a submodule.
+
+2024-11-20 Paul-Antoine Arras <parras@baylibre.com>
+
+ * types.def (BT_FN_PTR_CONST_PTR_INT): Declare.
+
+2024-11-20 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-intrinsic.cc
+ (walk_inline_intrinsic_minmaxloc): Add a scalar element for BACK as
+ first item of the chain if BACK is present and there will be nested
+ loops.
+ (gfc_conv_intrinsic_minmaxloc): Evaluate BACK using an inherited
+ scalarization chain if there is a nested loop.
+
+2024-11-20 Mikael Morin <mikael@gcc.gnu.org>
+
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Only get the size
+ along DIM instead of the full size if DIM is present.
+
+2024-11-19 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return TRUE
+ for MINLOC/MAXLOC with constant DIM and either REAL ARRAY or
+ non-scalar MASK.
+ (walk_inline_intrinsic_minmaxloc): Walk MASK and if it's an array
+ add the chain obtained before that of ARRAY.
+ (gfc_conv_intrinsic_minmaxloc): Use the nested loop if there is one.
+ To evaluate MASK (respectively ARRAY in the second loop), inherit
+ the scalarizer chain if in a nested loop, otherwise keep using the
+ chain obtained by walking MASK (respectively ARRAY). If there is a
+ nested loop, avoid advancing the parent scalarization chain a second
+ time in the second loop.
+
+2024-11-19 Mikael Morin <mikael@gcc.gnu.org>
+
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Use
+ conditionals based on the MASK expression rather than on its
+ scalarization chains.
+
+2024-11-19 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return TRUE
+ if MASK is scalar.
+ (walk_inline_intrinsic_minmaxloc): Append to the scalarization chain
+ a scalar element for MASK if it's present.
+ (gfc_conv_intrinsic_minmaxloc): Use a local gfc_se struct to serve
+ as base for all the expressions evaluated in the nested loop. To
+ evaluate MASK when there is a nested loop, enable usage of the
+ scalarizer and set the original passed in SE argument as current
+ scalarization chain element to use. And use the nested loop from
+ the scalarizer instead of the local loop in that case.
+
+2024-11-19 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return true
+ if DIM is constant, ARRAY is integral and MASK is absent.
+ (walk_inline_intrinsic_minmaxloc): If DIM is present, walk ARRAY and
+ move the dimension corresponding to DIM to a nested chain, keeping
+ the rest of the dimensions as the returned scalarization chain.
+ (gfc_conv_intrinsic_minmaxloc): When inside the scalarization loops,
+ proceed with inline code generation If DIM is present. If DIM is
+ present, skip result array creation and final initialization from
+ individual result local variables. If DIM is present and ARRAY has
+ rank greater than 1, use the nested loop initialized by the
+ scalarizer instead of the local one, use 1 as scalarization
+ dimension, and evaluate ARRAY using the inherited scalarization
+ chain instead of creating a local one by walking the expression.
+
+2024-11-18 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/53357
+ * dependency.cc (gfc_dep_compare_expr): Return correct result if
+ relationship of expressions could not be determined.
+ * interface.cc (gfc_check_result_characteristics): Implement error
+ messages if character function declations and references do not
+ agree, else emit warning in cases where a mismatch is suspected.
+ * trans-stmt.cc (gfc_trans_allocate): Implement a string length
+ check for -fcheck=bounds.
+
+2024-11-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/109066
+ * resolve.cc (generate_component_assignments): If the temporary
+ for 'var' is a pointer and 'expr' is neither a constant or
+ a variable, change its attribute from pointer to allocatable.
+ This avoids assignment to a temporary point that has neither
+ been allocated or associated.
+
+2024-11-16 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * gfortran.texi: Document that SELECT CASE works for UNSIGNED.
+
+2024-11-16 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * module.cc (mio_expr): Handle BT_UNSIGNED.
+
+2024-11-15 Jan Hubicka <hubicka@ucw.cz>
+
+ * trans-expr.cc (gfc_trans_subcomponent_assign): Fix type of malloc
+ parameter.
+
+2024-11-14 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/104819
+ * trans-expr.cc (conv_null_actual): Helper function to handle
+ passing of NULL() to non-optional dummy arguments of non-bind(c)
+ procedures.
+ (gfc_conv_procedure_call): Use it for character dummies.
+
+2024-11-13 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/105054
+ * resolve.cc (get_temp_from_expr): If the pointer function has
+ a deferred character length, generate a new deferred charlen
+ for the temporary.
+
+2024-11-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/109345
+ * trans-array.cc (gfc_get_array_span): Unlimited polymorphic
+ expressions are now treated separately since the span need not
+ be the same as the element size.
+
+2024-11-11 Tomas Trnka <trnka@scm.com>
+ Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/116388
+ * class.cc (finalize_component): Leading underscore in the name
+ of 'byte_stride' to suppress invalid finalization.
+
+2024-11-11 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * check.cc (gfc_check_complex): Reject UNSIGNED.
+ * gfortran.texi: Update example program. Note that
+ CMPLX, INT and REAL also take unsigned arguments.
+ * intrinsic.texi (CMPLX): Document UNSIGNED.
+ (INT): Likewise.
+ (REAL): Likewise.
+
+2024-11-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/117434
+ * interface.cc (gfc_compare_actual_formal): Skip 'Expected a
+ procedure pointer error' if the formal argument typespec has an
+ interface and the type of the actual arg is BT_PROCEDURE.
+
+2024-11-05 David Malcolm <dmalcolm@redhat.com>
+
+ PR fortran/117442
+ * error.cc (error_buffer): Convert to a pointer so it can be
+ heap-allocated.
+ (gfc_error_now): Update for error_buffer being heap-allocated.
+ (gfc_clear_error): Likewise.
+ (gfc_error_flag_test): Likewise.
+ (gfc_error_check): Likewise.
+ (gfc_push_error): Likewise.
+ (gfc_pop_error): Likewise.
+ (gfc_diagnostics_init): Allocate error_buffer on the heap, rather
+ than statically.
+ (gfc_diagnostics_finish): Delete error_buffer.
+
+2024-11-02 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * check.cc (gfc_check_mask): Handle BT_INSIGNED.
+ * gfortran.h (enum gfc_isym_id): Add GFC_ISYM_UMASKL and
+ GFC_ISYM_UMASKR.
+ * gfortran.texi: List UMASKL and UMASKR, remove unsigned future
+ unsigned arguments for MASKL and MASKR.
+ * intrinsic.cc (add_functions): Add UMASKL and UMASKR.
+ * intrinsic.h (gfc_simplify_umaskl): New function.
+ (gfc_simplify_umaskr): New function.
+ (gfc_resolve_umasklr): New function.
+ * intrinsic.texi: Document UMASKL and UMASKR.
+ * iresolve.cc (gfc_resolve_umasklr): New function.
+ * simplify.cc (gfc_simplify_umaskr): New function.
+ (gfc_simplify_umaskl): New function.
+
+2024-11-01 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * resolve.cc (resolve_operator): Also handle BT_UNSIGNED.
+
+2024-11-01 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/115700
+ * resolve.cc (resolve_assoc_var): Extract a substring reference
+ with missing as well as non-constant start or end.
+
+2024-10-31 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/115700
+ * resolve.cc (resolve_variable): The typespec of an expression,
+ which is not a substring, can be shared with a deferred length
+ associate name.
+ (resolve_assoc_var): Extract a substring reference with non-
+ constant start or end. Use it to flag up the need for array
+ associate name to be a pointer.
+ (resolve_block_construct): Change comment from past to future
+ tense.
+
+2024-10-30 Harald Anlauf <anlauf@gmx.de>
+
+ * trans-expr.cc (gfc_trans_class_init_assign): Free intermediate
+ gfc_expr's.
+ * trans.cc (get_final_proc_ref): Likewise.
+ (get_elem_size): Likewise.
+ (gfc_add_finalizer_call): Likewise.
+
+2024-10-29 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116613
+ * error.cc (gfc_diagnostic_build_kind_prefix): Update for
+ global_dc's m_printer becoming reference printer.
+ (gfc_diagnostics_init): Replace usage of diagnostic_format_decoder
+ with global_dc->set_format_decoder.
+
+2024-10-27 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/115070
+ PR fortran/115348
+ * trans-expr.cc (gfc_trans_class_init_assign): If all the
+ components of the default initializer are null for a scalar,
+ build an empty statement to prevent prior declarations from
+ disappearing.
+
+2024-10-26 Iain Sandoe <iain@sandoe.co.uk>
+
+ * intrinsic.texi: Add menu item for UINT.
+
+2024-10-26 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * gfortran.texi: Correct reference to make clear that UNSIGNED
+ will not be part of F202Y.
+ Other clarifications.
+ Extend table of intrinsics, add links.
+ * intrinsic.texi: Add descriptions for UNSIGNED arguments.
+ * invoke.texi: Add anchor for -funsigned.
+
+2024-10-25 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/79685
+ * decl.cc (match_data_constant): Find the symtree instead of
+ the symbol so the use renamed symbols are found. Pass this and
+ the derived type to gfc_match_structure_constructor.
+ * match.h: Update prototype of gfc_match_structure_contructor.
+ * primary.cc (gfc_match_structure_constructor): Remove call to
+ gfc_get_ha_sym_tree and use caller supplied symtree instead.
+
+2024-10-25 Jakub Jelinek <jakub@redhat.com>
+
+ * trans-openmp.cc: Remove trailing whitespace.
+ * trans-common.cc: Likewise.
+ * match.h: Likewise.
+ * scanner.cc: Likewise.
+ * gfortranspec.cc: Likewise.
+ * io.cc: Likewise.
+ * iso-c-binding.def: Likewise.
+ * iso-fortran-env.def: Likewise.
+ * types.def: Likewise.
+ * openmp.cc: Likewise.
+ * f95-lang.cc: Likewise.
+
+2024-10-24 David Malcolm <dmalcolm@redhat.com>
+ Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR other/116613
+ * arith.cc: Add #define INCLUDE_MEMORY.
+ * array.cc: Likewise.
+ * bbt.cc: Likewise.
+ * check.cc: Likewise.
+ * class.cc: Likewise.
+ * constructor.cc: Likewise.
+ * convert.cc: Likewise.
+ * cpp.cc: Likewise.
+ * data.cc: Likewise.
+ * decl.cc: Likewise.
+ * dependency.cc: Likewise.
+ * dump-parse-tree.cc: Likewise.
+ * error.cc: Likewise.
+ * expr.cc: Likewise.
+ * f95-lang.cc: Likewise.
+ * frontend-passes.cc: Likewise.
+ * interface.cc: Likewise.
+ * intrinsic.cc: Likewise.
+ * io.cc: Likewise.
+ * iresolve.cc: Likewise.
+ * match.cc: Likewise.
+ * matchexp.cc: Likewise.
+ * misc.cc: Likewise.
+ * module.cc: Likewise.
+ * openmp.cc: Likewise.
+ * options.cc: Likewise.
+ * parse.cc: Likewise.
+ * primary.cc: Likewise.
+ * resolve.cc: Likewise.
+ * scanner.cc: Likewise.
+ * simplify.cc: Likewise.
+ * st.cc: Likewise.
+ * symbol.cc: Likewise.
+ * target-memory.cc: Likewise.
+ * trans-array.cc: Likewise.
+ * trans-common.cc: Likewise.
+ * trans-const.cc: Likewise.
+ * trans-decl.cc: Likewise.
+ * trans-expr.cc: Likewise.
+ * trans-intrinsic.cc: Likewise.
+ * trans-io.cc: Likewise.
+ * trans-openmp.cc: Likewise.
+ * trans-stmt.cc: Likewise.
+ * trans-types.cc: Likewise.
+ * trans.cc: Likewise.
+
+2024-10-23 David Malcolm <dmalcolm@redhat.com>
+
+ PR fortran/105916
+ * error.cc (pp_error_buffer, pp_warning_buffer): Convert from
+ output_buffer * to diagnostic_buffer *.
+ (warningcount_buffered, werrorcount_buffered): Eliminate.
+ (gfc_error_buffer::gfc_error_buffer): Move constructor definition
+ here, and initialize "buffer" using *global_dc.
+ (gfc_output_buffer_empty_p): Delete in favor of
+ diagnostic_buffer::empty_p.
+ (gfc_clear_pp_buffer): Replace with...
+ (gfc_clear_diagnostic_buffer): ...this, moving implementation
+ details to diagnostic_context::clear_diagnostic_buffer.
+ (gfc_warning): Replace buffering implementation with calls
+ to global_dc->get_diagnostic_buffer and
+ global_dc->set_diagnostic_buffer.
+ (gfc_clear_warning): Update for renaming of gfc_clear_pp_buffer
+ and elimination of warningcount_buffered and werrorcount_buffered.
+ (gfc_warning_check): Replace buffering implementation with calls
+ to pp_warning_buffer->empty_p and
+ global_dc->flush_diagnostic_buffer.
+ (gfc_error_opt): Replace buffering implementation with calls to
+ global_dc->get_diagnostic_buffer and set_diagnostic_buffer.
+ (gfc_clear_error): Update for renaming of gfc_clear_pp_buffer.
+ (gfc_error_flag_test): Replace call to gfc_output_buffer_empty_p
+ with call to diagnostic_buffer::empty_p.
+ (gfc_error_check): Replace buffering implementation with calls
+ to pp_error_buffer->empty_p and global_dc->flush_diagnostic_buffer.
+ (gfc_move_error_buffer_from_to): Replace buffering implementation
+ with usage of diagnostic_buffer.
+ (gfc_free_error): Update for renaming of gfc_clear_pp_buffer.
+ (gfc_diagnostics_init): Use "new" directly when creating
+ pp_warning_buffer. Remove setting of m_flush_p on the two
+ buffers, as this is handled by diagnostic_buffer and by
+ diagnostic_text_format_buffer's constructor.
+ * gfortran.h: Replace #include "pretty-print.h" for output_buffer
+ with #include "diagnostic-buffer.h" for diagnostic_buffer.
+ (struct gfc_error_buffer): Change type of field "buffer" from
+ output_buffer to diagnostic_buffer. Move definition of constructor
+ into error.cc so that it can use global_dc.
+
+2024-10-23 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/116733
+ * array.cc : White space corrections.
+ * expr.cc (gfc_check_pointer_assign): Permit assumed rank
+ target with -std=f202y. Add constraints that the data pointer
+ object must have rank remapping specified and the that the data
+ target be contiguous.
+ * gfortran.h : Add a gfc_array_ref field 'ar' to the structure
+ 'gfc_association_list'.
+ * interface.cc (gfc_compare_actual_formal): If -Wsurprising
+ is set, emit a warning if an assumed size array is passed to an
+ assumed rank dummy.
+ * intrinsic.cc (do_ts29113_check): Permit an assumed rank arg.
+ for reshape if -std=f202y and the argument is contiguous.
+ * invoke.texi : Introduce -std=f202y. Whitespace errors.
+ * lang.opt : Accept -std=f202y.
+ * libgfortran.h : Define GFC_STD_F202Y.
+ * match.cc (gfc_match_associate): If -std=f202y an assumed rank
+ selector is allowed if it is contiguous and the associate name
+ has rank remapping specified.
+ * options.cc (gfc_init_options): -std=f202y is equivalent to
+ -std=f2023 with experimental f202y features. White space issues
+ * parse.cc (parse_associate): If the selector is assumed rank,
+ use the 'ar' field of the association list to build an array
+ specification.
+ * primary.cc (gfc_match_varspec): Do not resolve the assumed
+ rank selector of a class associate name at this stage to avoid
+ the rank change.
+ * resolve.cc (find_array_spec): If an array_ref dimension is -1
+ reset it with the rank in the object's array_spec.
+ (gfc_expression_rank): Do not check dimen types for an assumed
+ rank variable expression.
+ (resolve_variable): Do not emit the assumed rank context error
+ if the context is pointer assignment and the variable is a
+ target.
+ (resolve_assoc_var): Resolve the bounds and check for missing
+ bounds in the rank remap of an associate name with an assumed
+ rank selector. Do not correct the rank of an associate name
+ with an assumed rank selector.
+ (resolve_symbol): Allow the reference to an assumed rank object
+ if -std-f202y is enabled and the current operation is
+ EXEC_BLOCK.
+ * st.cc (gfc_free_association_list): Free bounds expressions
+ of the 'ar' field, if present.
+ * trans-array.cc (gfc_conv_ss_startstride): If -std=f202y and
+ bounds checking activated, do not apply the assertion.
+ * trans-expr.cc (gfc_trans_pointer_assignment): An assumed rank
+ target has its offset set to zero.
+ * trans-stmt.cc (trans_associate_var): If the selector is
+ assumed rank, call gfc_trans_pointer_assignment using the 'ar'
+ field in the association list as the array reference for expr1.
+ The data target, expr2, is a copy of the selector expression.
+
+2024-10-23 Tobias Burnus <tburnus@baylibre.com>
+
+ * error.cc (terminal_width, gfc_get_terminal_width): Remove.
+ (gfc_error_init_1): Do not call one to set the other.
+
+2024-10-19 Tobias Burnus <tburnus@baylibre.com>
+
+ * check.cc (is_c_interoperable): Use _(...) around to mark strings
+ as translatable.
+ * data.cc (gfc_assign_data_value): Move string literal to gfc_error
+ to make it translatable.
+ * resolve.cc (resolve_fl_variable, resolve_equivalence): Use G_(...)
+ around string literals.
+ * scanner.cc (skip_fixed_omp_sentinel): Replace '...' by %<...%>.
+ * trans-openmp.cc (gfc_split_omp_clauses,
+ gfc_trans_omp_declare_variant): Likewise.
+
+2024-10-19 Tobias Burnus <tburnus@baylibre.com>
+
+ * data.cc (gfc_assign_data_value): Use linemap_location_before_p
+ and GFC_LOCUS_IS_SET.
+ * decl.cc (gfc_verify_c_interop_param): Make better translatable.
+ (build_sym, variable_decl, gfc_match_formal_arglist,
+ gfc_match_subroutine): Add range-based locations, use it in
+ diagnostic and gobble whitespace for better locations.
+ * error.cc (gfc_get_location_with_offset): Handle new format.
+ (gfc_get_location_range): New.
+ * expr.cc (gfc_check_assign): Use GFC_LOCUS_IS_SET.
+ * frontend-passes.cc (check_locus_code, check_locus_expr):
+ Likewise.
+ (runtime_error_ne): Use GFC_LOCUS_IS_SET.
+ * gfortran.h (locus): Change lb to union with lb and location.
+ (GFC_LOCUS_IS_SET): Define.
+ (gfc_get_location_range): New prototype.
+ (gfc_new_symbol, gfc_get_symbol, gfc_get_sym_tree,
+ gfc_get_ha_symbol, gfc_get_ha_sym_tree): Take optional locus
+ argument.
+ * io.cc (io_constraint): Use GFC_LOCUS_IS_SET.
+ * match.cc (gfc_match_sym_tree): Use range locus.
+ * openmp.cc (gfc_match_omp_variable_list,
+ gfc_match_omp_doacross_sink): Likewise.
+ * parse.cc (next_free): Update for locus struct change.
+ * primary.cc (gfc_match_varspec): Likewise.
+ (match_variable): Use range locus.
+ * resolve.cc (find_array_spec): Use GFC_LOCUS_IS_SET.
+ * scanner.cc (gfc_at_eof, gfc_at_bol, gfc_start_source_files,
+ gfc_advance_line, gfc_define_undef_line, skip_fixed_comments,
+ gfc_gobble_whitespace, include_stmt, gfc_new_file): Update
+ for locus struct change.
+ * symbol.cc (gfc_new_symbol, gfc_get_sym_tree, gfc_get_symbol,
+ gfc_get_ha_sym_tree, gfc_get_ha_symbol): Take optional locus.
+ * trans-array.cc (gfc_trans_array_constructor_value): Use %L not %C.
+ (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
+ gfc_trans_class_array, gfc_trans_deferred_array): Replace
+ gfc_{save,set,restore}_backend_locus by directly using
+ input_location.
+ * trans-common.cc (build_equiv_decl, get_init_field): Likewise.
+ * trans-decl.cc (gfc_get_extern_function_decl, build_function_decl,
+ build_entry_thunks, gfc_null_and_pass_deferred_len,
+ gfc_trans_deferred_vars, gfc_trans_use_stmts, finish_oacc_declare,
+ gfc_generate_block_data): Likewise.
+ * trans-expr.cc (gfc_copy_class_to_class, gfc_conv_expr): Changes
+ to avoid gfc_current_locus.
+ * trans-io.cc (set_error_locus): Likewise.
+ * trans-openmp.cc (gfc_trans_omp_workshare): Use input_locus directly.
+ * trans-stmt.cc (gfc_trans_if_1): Likewise and use GFC_LOCUS_IS_SET.
+ * trans-types.cc (gfc_get_union_type, gfc_get_derived_type): Likewise.
+ * trans.cc (gfc_locus_from_location): New.
+ (trans_runtime_error_vararg, gfc_trans_runtime_check): Use location_t
+ for file + line data.
+ (gfc_current_backend_file, gfc_save_backend_locus,
+ gfc_set_backend_locus, gfc_restore_backend_locus): Remove.
+ (trans_code): Use input_location directly, don't set gfc_current_locus.
+ * trans.h (gfc_save_backend_locus, gfc_set_backend_locus,
+ gfc_restore_backend_locus): Remove prototypes.
+ (gfc_locus_from_location): Add prototype.
+
+2024-10-19 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/117225
+ * primary.cc (match_sym_complex_part): An UNSIGNED in
+ a complex part is an error.
+
+2024-10-18 Alejandro Colomar <alx@kernel.org>
+
+ * trans-array.cc (structure_alloc_comps)
+ * trans-openmp.cc
+ (gfc_walk_alloc_comps)
+ (gfc_omp_clause_linear_ctor):
+ Rename array_type_nelts => array_type_nelts_minus_one
+
+2024-10-18 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * error.cc (notify_std_msg): Handle GFC_STD_UNSIGNED.
+
+2024-10-17 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/80235
+ * trans-decl.cc (gfc_build_qualified_array): Make sure the array
+ is associated to the correct module and being marked as extern.
+
+2024-10-15 Thomas Schwinge <tschwinge@baylibre.com>
+ Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/82250
+ PR fortran/82251
+ PR fortran/117136
+ * trans-expr.cc (gfc_conv_procedure_call): Initialize
+ 'is_builtin'.
+ (conv_function_val): Clean up.
+
+2024-10-14 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/77871
+ * trans-expr.cc (gfc_conv_derived_to_class): Assign token when
+ converting a coarray to class.
+ (gfc_get_tree_for_caf_expr): For classes get the caf decl from
+ the saved descriptor.
+ (gfc_get_caf_token_offset):Assert that coarray=lib is set and
+ cover more cases where the tree having the coarray token can be.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_caf_get): Use unified
+ test for pointers.
+
+2024-10-13 Tobias Burnus <tburnus@baylibre.com>
+
+ * gfortran.h (gfc_option_t): Add disable_acc_on_device.
+ * options.cc (gfc_handle_option): Handle -fno-builtin-acc_on_device.
+ * trans-decl.cc (gfc_get_extern_function_decl): Move
+ __builtin_omp_is_initial_device handling to ...
+ * trans-expr.cc (get_builtin_fn): ... this new function.
+ (conv_function_val): Call it.
+ (update_builtin_function): New.
+ (gfc_conv_procedure_call): Call it.
+ * types.def (BT_BOOL): Fix type by using bool_type_node.
+
+2024-10-12 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * dump-parse-tree.cc (get_c_type_name): Also handle BT_UNSIGNED.
+ * gfortran.h (NAMED_UINTCST): Define before inclusion
+ of iso-c-binding.def and iso-fortran-env.def.
+ (gfc_get_uint_kind_from_width_isofortranenv): Prototype.
+ * gfortran.texi: Mention new constants in iso_c_binding and
+ iso_fortran_env.
+ * iso-c-binding.def: Handle NAMED_UINTCST. Add c_unsigned,
+ c_unsigned_short,c_unsigned_char, c_unsigned_long,
+ c_unsigned_long_long, c_uintmax_t, c_uint8_t, c_uint16_t,
+ c_uint32_t, c_uint64_t, c_uint128_t, c_uint_least8_t,
+ c_uint_least16_t, c_uint_least32_t, c_uint_least64_t,
+ c_uint_least128_t, c_uint_fast8_t, c_uint_fast16_t,
+ c_uint_fast32_t, c_uint_fast64_t and c_uint_fast128_t.
+ * iso-fortran-env.def: Handle NAMED_UINTCST. Add uint8, uint16,
+ uint32 and uint64.
+ * module.cc (parse_integer): Whitespace fix.
+ (write_module): Whitespace fix.
+ (NAMED_UINTCST): Define before inclusion of iso-fortran-evn.def
+ and iso-fortran-env.def.
+ * symbol.cc: Likewise.
+ * trans-types.cc (get_unsigned_kind_from_node): New function.
+ (get_uint_kind_from_name): New function.
+ (gfc_get_uint_kind_from_width_isofortranenv): New function.
+ (get_uint_kind_from_width): New function.
+ (gfc_init_kinds): Initialize gfc_c_uint_kind.
+
+2024-10-12 Tobias Burnus <tburnus@baylibre.com>
+
+ * openmp.cc (resolve_omp_clauses): Diagnose polymorphic mapping.
+ * trans-openmp.cc (gfc_omp_finish_clause): Warn when
+ polymorphic variable is implicitly mapped.
+
+2024-10-12 Tobias Burnus <tburnus@baylibre.com>
+
+ * array.cc (gfc_match_array_constructor): Only update the
+ character length if the expression is of character type.
+ * error.cc (gfc_get_location_with_offset): New; split off
+ from ...
+ (gfc_format_decoder): ... here; call it.
+ * gfortran.h (gfc_get_location_with_offset): New prototype.
+ (gfc_get_location): New inline function.
+ * trans.cc (gfc_get_location): Remove function definition.
+ * trans.h (gfc_get_location): Remove declaration.
+
+2024-10-11 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * intrinsic.cc (add_functions): Convert uint and
+ selected_unsigned_kind to GFC_STD_UNSIGNED.
+ (gfc_check_intrinsic_standard): Handle GFC_STD_UNSIGNED.
+ * libgfortran.h (GFC_STD_UNSIGNED): Add.
+ * options.cc (gfc_post_options): Set GFC_STD_UNSIGNED
+ if -funsigned is set.
+
+2024-10-11 Tobias Burnus <tburnus@baylibre.com>
+
+ * error.cc (error_char, error_string, error_uinteger, error_integer,
+ error_hwuint, error_hwint, gfc_widechar_display_length,
+ gfc_wide_display_length, error_printf, show_locus, show_loci):
+ Remove unused static functions.
+ (IBUF_LEN, MAX_ARGS): Remove now unused #define.
+
+2024-10-08 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/51815
+ * array.cc (gfc_match_array_ref): Only parse coarray part of
+ ref.
+ * match.h (gfc_match_array_ref): Add flag.
+ * primary.cc (gfc_match_varspec): Request only coarray ref
+ parsing when no regular array is present. Report error on
+ unexpected additional ref.
+
+2024-10-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * check.cc (gfc_check_minloc_maxloc): Handle BT_UNSIGNED.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Likewise.
+ * gfortran.texi: Document MAXLOC and MINLOC for UNSIGNED.
+
+2024-10-07 Tobias Burnus <tburnus@baylibre.com>
+
+ * openmp.cc (is_predefined_allocator): Use gomp-constants.h consts.
+ * trans-common.cc (translate_common): Reject OpenMP allocate directives.
+ * trans-decl.cc (gfc_finish_var_decl): Handle allocate directive
+ for static variables.
+ (gfc_trans_deferred_vars): Update for the latter.
+
+2024-10-01 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * check.cc (int_or_real_or_char_or_unsigned_check_f2003): New function.
+ (gfc_check_minval_maxval): Use it.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxval): Handle
+ initial values for UNSIGNED.
+ * gfortran.texi: Document MINVAL and MAXVAL for unsigned.
+
+2024-09-30 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116613
+ * error.cc (gfc_diagnostic_build_locus_prefix): Convert first
+ param from diagnostic_context * to
+ const diagnostic_location_print_policy &. Add colorize param.
+ Likewise for the "two expanded_locations" overload.
+ (gfc_diagnostic_text_starter): Update for above changes.
+ (gfc_diagnostic_start_span): Update for change to callback type.
+
+2024-09-30 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/81265
+ * trans-expr.cc (gfc_conv_procedure_call): Ensure coarrays use a
+ descriptor when passed.
+
+2024-09-28 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * check.cc (intrinsic_type_check): Handle unsigned.
+ (gfc_check_findloc): Likewise.
+ * gfortran.texi: Include FINDLOC in unsigned documentation.
+ * iresolve.cc (gfc_resolve_findloc): Use INTEGER version
+ for UNSIGNED.
+
+2024-09-28 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * check.cc (gfc_check_eoshift): Handle BT_UNSIGNED.
+ * simplify.cc (gfc_simplify_eoshift): Likewise.
+ * gfortran.texi: Document CSHIFT and EOSHIFT for UNSIGNED.
+
+2024-09-26 Mikael Morin <mikael@gcc.gnu.org>
+
+ * invoke.texi (-M): Remove index reference to removed documentation.
+
+2024-09-25 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR other/116801
+ * invoke.texi: Remove @code wrapping in arguments to @opindex.
+ (std=): Remove spurious 'option' in index.
+ (idirafter, imultilib, iprefix, isysroot, iquote, isystem,
+ fintrinsic-modules-path): Remove variable from index.
+ * lang.opt.urls: Regenerate.
+
+2024-09-25 Tobias Burnus <tburnus@baylibre.com>
+
+ * parse.cc (decode_omp_directive): Set target-used bit of
+ omp_requires_mask when encountering the declare_target or interop
+ directive.
+
+2024-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * check.cc (gfc_check_random_number): Adjust for unsigned.
+ * iresolve.cc (gfc_resolve_random_number): Handle unsigned.
+ * trans-expr.cc (gfc_conv_expr_op): Handle BT_UNSIGNED for divide.
+ * trans-types.cc (gfc_get_dtype_rank_type): Handle BT_UNSIGNED.
+ * gfortran.texi: Add RANDOM_NUMBER for UNSIGNED.
+
+2024-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * check.cc (gfc_check_transf_bit_intrins): Handle unsigned.
+ * gfortran.texi: Docment IANY, IALL and IPARITY for unsigned.
+ * iresolve.cc (gfc_resolve_iall): Set flag to use integer
+ if type is BT_UNSIGNED.
+ (gfc_resolve_iany): Likewise.
+ (gfc_resolve_iparity): Likewise.
+ * simplify.cc (do_bit_and): Adjust asserts for BT_UNSIGNED.
+ (do_bit_ior): Likewise.
+ (do_bit_xor): Likewise
+
+2024-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * gfortran.texi: Document SUM and PRODUCT.
+ * iresolve.cc (resolve_transformational): New argument,
+ use_integer, to translate calls to unsigned to calls to
+ integer.
+ (gfc_resolve_product): Use it
+ (gfc_resolve_sum): Use it.
+ * simplify.cc (init_result_expr): Handle BT_UNSIGNED.
+
+2024-09-24 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * arith.cc (gfc_arith_uminus): Fix warning.
+ (gfc_arith_minus): Correctly truncate unsigneds.
+ * check.cc (gfc_check_dot_product): Handle unsigned arguments.
+ (gfc_check_matmul): Likewise.
+ * expr.cc (gfc_get_unsigned_expr): New function.
+ * gfortran.h (gfc_get_unsigned_expr): Add prototype.
+ * iresolve.cc (gfc_resolve_matmul): If using UNSIGNED, use the
+ signed integer version.
+ * gfortran.texi: Document MATMUL and DOT_PRODUCT for unsigned.
+ * simplify.cc (compute_dot_product): Handle unsigneds.
+
+2024-09-24 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/101100
+ * trans-expr.cc (trans_caf_token_assign): Take caf-token from
+ decl for non ultimate coarray components.
+
+2024-09-24 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/84870
+ * trans-array.cc (duplicate_allocatable_coarray): For scalar
+ allocatable components the memory allocated is now assigned to
+ the component's pointer.
+
+2024-09-24 Tobias Burnus <tburnus@baylibre.com>
+
+ * gfortran.h (enum gfc_omp_requires_kind): Add OMP_REQ_SELF_MAPS.
+ (gfc_namespace): Enlarge omp_requires bitfield.
+ * module.cc (enum ab_attribute, attr_bits): Add AB_OMP_REQ_SELF_MAPS.
+ (mio_symbol_attribute): Handle it.
+ * openmp.cc (gfc_check_omp_requires, gfc_match_omp_requires): Handle
+ self_maps clause.
+ * parse.cc (gfc_parse_file): Handle self_maps clause.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * invoke.texi(finline-intrinsics): Document new flag.
+ * lang.opt (finline-intrinsics, finline-intrinsics=,
+ fno-inline-intrinsics): New flags.
+ * options.cc (gfc_post_options): If the option variable controlling
+ the inlining of MAXLOC (respectively MINLOC) has not been set, set
+ it or clear it depending on the optimization option variables.
+ * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Return false
+ if inlining for the intrinsic is disabled according to the option
+ variable.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Generate a set
+ of index variables. Set them using the loop indexes before leaving
+ the first set of loops. Generate a new loop entry predicate.
+ Initialize it. Set it before leaving the first set of loops. Clear
+ it in the body of the second set of loops. For the second set of
+ loops, update each loop lower bound to use the corresponding index
+ variable if the predicate variable is set.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Initialize
+ and update all the variables. Put the label and goto in the
+ outermost scalarizer loop. Don't start the second loop where the
+ first stopped.
+ (gfc_inline_intrinsic_function_p): Also return TRUE for array MASK
+ or for any REAL type.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Generate
+ variable initialization for each dimension in the else branch of
+ the toplevel condition.
+ (gfc_inline_intrinsic_function_p): Return TRUE for scalar MASK.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-array.cc (gfc_conv_ss_startstride): Set the MINLOC/MAXLOC
+ result upper bound using the rank of the ARRAY argument. Ajdust
+ the error message for intrinsic result arrays. Only check array
+ bounds for array references. Move bound check decision code...
+ (bounds_check_needed): ... here as a new predicate. Allow bound
+ check for MINLOC/MAXLOC intrinsic results.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Change the
+ result array upper bound to the rank of ARRAY. Update the NONEMPTY
+ variable to depend on the non-empty extent of every dimension. Use
+ one variable per dimension instead of a single variable for the
+ position and the offset. Update their declaration, initialization,
+ and update to affect the variable of each dimension. Use the first
+ variable only in areas only accessed with rank 1 ARRAY argument.
+ Set every element of the result using its corresponding variable.
+ (gfc_inline_intrinsic_function_p): Return true for integral ARRAY
+ and absent DIM and MASK.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ * trans-array.cc (gfc_conv_ss_startstride): Move array bound check
+ generation code...
+ (add_check_section_in_array_bounds): ... here as a new function.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ * frontend-passes.cc (optimize_minmaxloc): Remove.
+ (optimize_expr): Remove dispatch to optimize_minmaxloc.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * trans-array.cc (gfc_conv_ss_startstride): Set the scalarization
+ rank based on the MINLOC/MAXLOC rank if needed. Call the inline
+ code generation and setup the scalarizer array descriptor info
+ in the MINLOC and MAXLOC cases.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Return the
+ result array element if the scalarizer is setup and we are inside
+ the loops. Restrict library function call dispatch to the case
+ where inline expansion is not supported. Declare an array result
+ if the expression isn't scalar. Initialize the array result single
+ element and return the result variable if the expression isn't
+ scalar.
+ (walk_inline_intrinsic_minmaxloc): New function.
+ (walk_inline_intrinsic_function): Add MINLOC and MAXLOC cases,
+ dispatching to walk_inline_intrinsic_minmaxloc.
+ (gfc_add_intrinsic_ss_code): Add MINLOC and MAXLOC cases.
+ (gfc_inline_intrinsic_function_p): Return true if ARRAY has rank 1,
+ regardless of DIM.
+
+2024-09-21 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/90608
+ * frontend-passes.cc (optimize_minmaxloc): Skip if we can generate
+ inline code for the unmodified expression.
+ * trans-intrinsic.cc (gfc_inline_intrinsic_function_p): Add
+ MINLOC and MAXLOC cases.
+
+2024-09-20 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116613
+ * error.cc: Include "diagnostic-format-text.h".
+ (gfc_diagnostic_starter): Rename to...
+ (gfc_diagnostic_text_starter): ...this. Convert first
+ param from diagnostic_context * to diagnostic_text_output_format &
+ and update accordingly.
+ (gfc_diagnostic_finalizer, gfc_diagnostic_text_finalizer):
+ Likewise.
+ (gfc_diagnostics_init): Update for renamings.
+ (gfc_diagnostics_finish): Likewise.
+
+2024-09-19 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/106606
+ * trans-types.cc (gfc_get_derived_type): Only build non-pointer
+ derived types as component's types when they are not yet built.
+
+2024-09-19 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/85002
+ * trans-array.cc (duplicate_allocatable_coarray): Allow adding
+ of deep copy code in the when-allocated case. Add bounds
+ computation before condition, because coarrays need the bounds
+ also when not allocated.
+ (structure_alloc_comps): Duplication in the coarray case is done
+ already, omit it. Add the deep-code when duplication a coarray.
+ * trans-expr.cc (gfc_trans_structure_assign): Fix comment.
+
+2024-09-15 Mikael Morin <mikael@gcc.gnu.org>
+
+ * trans-expr.cc (gfc_advance_se_ss_chain): Don't use an element
+ from the parent scalarization chain when the current chain reaches
+ its end.
+
+2024-09-13 Tobias Burnus <tburnus@baylibre.com>
+
+ PR fortran/116661
+ * gfortran.h (gfc_omp_namelist): Rename 'init' members for clarity.
+ * match.cc (gfc_free_omp_namelist): Handle renaming.
+ * dump-parse-tree.cc (show_omp_namelist): Update for new format
+ and features.
+ * openmp.cc (gfc_match_omp_prefer_type): Parse list to 'fr' and 'attr';
+ store 'fr' values as integer.
+ (gfc_match_omp_init): Rename variable names.
+
+2024-09-12 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * module.cc (bt_types): Add BT_UNSIGNED.
+
+2024-09-11 Tobias Burnus <tburnus@baylibre.com>
+
+ PR fortran/116661
+ * openmp.cc (gfc_match_omp_prefer_type): NULL init a gfc_expr
+ variable and use right locus in gfc_error.
+
+2024-09-09 David Malcolm <dmalcolm@redhat.com>
+
+ * cpp.cc (cb_cpp_diagnostic_cpp_option): Convert return type from
+ "int" to "diagnostic_option_id".
+ (cb_cpp_diagnostic): Update for renaming of
+ diagnostic_override_option_index to diagnostic_set_option_id.
+ * error.cc (gfc_warning): Update for renaming of diagnostic_info
+ field.
+ (gfc_warning_now_at): Likewise.
+ (gfc_warning_now): Likewise.
+ (gfc_warning_internal): Likewise.
+
+2024-09-09 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116613
+ * error.cc (gfc_clear_pp_buffer): Rename diagnostic_context's
+ "printer" field to "m_printer".
+ (gfc_warning): Likewise.
+ (gfc_diagnostic_build_kind_prefix): Likewise.
+ (gfc_diagnostic_build_locus_prefix): Likewise.
+ (gfc_diagnostic_starter): Likewise.
+ (gfc_diagnostic_starter): Likewise.
+ (gfc_diagnostic_start_span): Likewise.
+ (gfc_diagnostic_finalizer): Likewise.
+ (gfc_warning_check): Likewise.
+ (gfc_error_opt): Likewise.
+ (gfc_error_check): Likewise.
+
+2024-09-07 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ * arith.cc (gfc_reduce_unsigned): New function.
+ (gfc_arith_error): Add ARITH_UNSIGNED_TRUNCATED and
+ ARITH_UNSIGNED_NEGATIVE.
+ (gfc_arith_init_1): Initialize unsigned types.
+ (gfc_check_unsigned_range): New function.
+ (gfc_range_check): Handle unsigned types.
+ (gfc_arith_uminus): Likewise.
+ (gfc_arith_plus): Likewise.
+ (gfc_arith_minus): Likewise.
+ (gfc_arith_times): Likewise.
+ (gfc_arith_divide): Likewise.
+ (gfc_compare_expr): Likewise.
+ (eval_intrinsic): Likewise.
+ (gfc_int2int): Also convert unsigned.
+ (gfc_uint2uint): New function.
+ (gfc_int2uint): New function.
+ (gfc_uint2int): New function.
+ (gfc_uint2real): New function.
+ (gfc_uint2complex): New function.
+ (gfc_real2uint): New function.
+ (gfc_complex2uint): New function.
+ (gfc_log2uint): New function.
+ (gfc_uint2log): New function.
+ * arith.h (gfc_int2uint, gfc_uint2uint, gfc_uint2int, gfc_uint2real):
+ Add prototypes.
+ (gfc_uint2complex, gfc_real2uint, gfc_complex2uint, gfc_log2uint):
+ Likewise.
+ (gfc_uint2log): Likewise.
+ * check.cc (gfc_boz2uint): New function
+ (type_check2): New function.
+ (int_or_real_or_unsigned_check): New function.
+ (less_than_bitsizekind): Adjust for unsingeds.
+ (less_than_bitsize2): Likewise.
+ (gfc_check_allocated): Likewise.
+ (gfc_check_mod): Likewise.
+ (gfc_check_bge_bgt_ble_blt): Likewise.
+ (gfc_check_bitfcn): Likewise.
+ (gfc_check_digits): Likewise.
+ (gfc_check_dshift): Likewise.
+ (gfc_check_huge): Likewise.
+ (gfc_check_iu): New function.
+ (gfc_check_iand_ieor_ior): Adjust for unsigneds.
+ (gfc_check_ibits): Likewise.
+ (gfc_check_uint): New function.
+ (gfc_check_ishft): Adjust for unsigneds.
+ (gfc_check_ishftc): Likewise.
+ (gfc_check_min_max): Likewise.
+ (gfc_check_merge_bits): Likewise.
+ (gfc_check_selected_int_kind): Likewise.
+ (gfc_check_shift): Likewise.
+ (gfc_check_mvbits): Likewise.
+ (gfc_invalid_unsigned_ops): Likewise.
+ * decl.cc (gfc_match_decl_type_spec): Likewise.
+ * dump-parse-tree.cc (show_expr): Likewise.
+ * expr.cc (gfc_get_constant_expr): Likewise.
+ (gfc_copy_expr): Likewise.
+ (gfc_extract_int): Likewise.
+ (numeric_type): Likewise.
+ * gfortran.h (enum arith): Extend with ARITH_UNSIGNED_TRUNCATED
+ and ARITH_UNSIGNED_NEGATIVE.
+ (enum gfc_isym_id): Extend with GFC_ISYM_SU_KIND and GFC_ISYM_UINT.
+ (gfc_check_unsigned_range): New prototype-
+ (gfc_arith_error): Likewise.
+ (gfc_reduce_unsigned): Likewise.
+ (gfc_boz2uint): Likewise.
+ (gfc_invalid_unsigned_ops): Likewise.
+ (gfc_convert_mpz_to_unsigned): Likewise.
+ * gfortran.texi: Add some rudimentary documentation.
+ * intrinsic.cc (gfc_type_letter): Adjust for unsigneds.
+ (add_functions): Add uint and adjust functions to be called.
+ (add_conversions): Add unsigned conversions.
+ (gfc_convert_type_warn): Adjust for unsigned.
+ * intrinsic.h (gfc_check_iu, gfc_check_uint, gfc_check_mod, gfc_simplify_uint,
+ gfc_simplify_selected_unsigned_kind, gfc_resolve_uint): New prototypes.
+ * invoke.texi: Add -funsigned.
+ * iresolve.cc (gfc_resolve_dshift): Handle unsigneds.
+ (gfc_resolve_iand): Handle unsigneds.
+ (gfc_resolve_ibclr): Handle unsigneds.
+ (gfc_resolve_ibits): Handle unsigneds.
+ (gfc_resolve_ibset): Handle unsigneds.
+ (gfc_resolve_ieor): Handle unsigneds.
+ (gfc_resolve_ior): Handle unsigneds.
+ (gfc_resolve_uint): Handle unsigneds.
+ (gfc_resolve_merge_bits): Handle unsigneds.
+ (gfc_resolve_not): Handle unsigneds.
+ * lang.opt: Add -funsigned.
+ * libgfortran.h: Add BT_UNSIGNED.
+ * match.cc (gfc_match_type_spec): Match UNSIGNED.
+ * misc.cc (gfc_basic_typename): Add UNSIGNED.
+ (gfc_typename): Likewise.
+ * primary.cc (convert_unsigned): New function.
+ (match_unsigned_constant): New function.
+ (gfc_match_literal_constant): Handle unsigned.
+ * resolve.cc (resolve_operator): Handle unsigned.
+ (resolve_ordinary_assign): Likewise.
+ * simplify.cc (convert_mpz_to_unsigned): Renamed to...
+ (gfc_convert_mpz_to_unsigned): and adjusted.
+ (gfc_simplify_bit_size): Adjusted for unsigned.
+ (compare_bitwise): Likewise.
+ (gfc_simplify_bge): Likewise.
+ (gfc_simplify_bgt): Likewise.
+ (gfc_simplify_ble): Likewise.
+ (gfc_simplify_blt): Likewise.
+ (simplify_cmplx): Likewise.
+ (gfc_simplify_digits): Likewise.
+ (simplify_dshift): Likewise.
+ (gfc_simplify_huge): Likewise.
+ (gfc_simplify_iand): Likewise.
+ (gfc_simplify_ibclr): Likewise.
+ (gfc_simplify_ibits): Likewise.
+ (gfc_simplify_ibset): Likewise.
+ (gfc_simplify_ieor): Likewise.
+ (gfc_simplify_uint): Likewise.
+ (gfc_simplify_ior): Likewise.
+ (simplify_shift): Likewise.
+ (gfc_simplify_ishftc): Likewise.
+ (gfc_simplify_merge_bits): Likewise.
+ (min_max_choose): Likewise.
+ (gfc_simplify_mod): Likewise.
+ (gfc_simplify_modulo): Likewise.
+ (gfc_simplify_popcnt): Likewise.
+ (gfc_simplify_range): Likewise.
+ (gfc_simplify_selected_unsigned_kind): Likewise.
+ (gfc_convert_constant): Likewise.
+ * target-memory.cc (size_unsigned): New function.
+ (gfc_element_size): Adjust for unsigned.
+ * trans-const.h (gfc_conv_mpz_unsigned_to_tree): Add prototype.
+ * trans-const.cc (gfc_conv_mpz_unsigned_to_tree): Handle unsigneds.
+ (gfc_conv_constant_to_tree): Likewise.
+ * trans-decl.cc (gfc_conv_cfi_to_gfc): Put in "not yet implemented".
+ * trans-expr.cc (gfc_conv_gfc_desc_to_cfi_desc): Likewise.
+ * trans-stmt.cc (gfc_trans_integer_select): Handle unsigned.
+ (gfc_trans_select): Likewise.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_mod): Handle unsigned.
+ (gfc_conv_intrinsic_shift): Likewise.
+ (gfc_conv_intrinsic_function): Add GFC_ISYM_UINT.
+ * trans-io.cc (enum iocall): Add IOCALL_X_UNSIGNED and IOCALL_X_UNSIGNED_WRITE.
+ (gfc_build_io_library_fndecls): Add transfer_unsigned and transfer_unsigned_write.
+ (transfer_expr): Handle unsigneds.
+ * trans-types.cc (gfc_unsinged_kinds): New array.
+ (gfc_unsigned_types): Likewise.
+ (gfc_init_kinds): Handle them.
+ (validate_unsigned): New function.
+ (gfc_validate_kind): Use it.
+ (gfc_build_unsigned_type): New function.
+ (gfc_init_types): Use it.
+ (gfc_get_unsigned_type): New function.
+ (gfc_typenode_for_spec): Handle unsigned.
+ * trans-types.h (gfc_get_unsigned_type): New prototype.
+
+2024-09-06 Tobias Burnus <tburnus@baylibre.com>
+
+ * dump-parse-tree.cc (show_omp_namelist): Handle OMP_LIST_INIT.
+ (show_omp_clauses): Handle OMP_LIST_{INIT,USE,DESTORY}; move 'nowait'
+ from end-directive to the directive dump.
+ (show_omp_node, show_code_node): Handle EXEC_OMP_INTEROP.
+ * gfortran.h (enum gfc_statement): Add ST_OMP_INTEROP.
+ (OMP_LIST_INIT, OMP_LIST_USE, OMP_LIST_DESTROY): Add.
+ (enum gfc_exec_op): Add EXEC_OMP_INTEROP.
+ (struct gfc_omp_namelist): Add interop items to union.
+ (gfc_free_omp_namelist): Add boolean arg.
+ * match.cc (gfc_free_omp_namelist): Update to free
+ interop union members.
+ * match.h (gfc_match_omp_interop): New.
+ * openmp.cc (gfc_omp_directives): Uncomment 'interop' entry.
+ (gfc_free_omp_clauses, gfc_match_omp_allocate,
+ gfc_match_omp_flush, gfc_match_omp_clause_reduction): Update
+ call.
+ (enum omp_mask2): Add OMP_CLAUSE_{INIT,USE,DESTROY}.
+ (OMP_INTEROP_CLAUSES): Use it.
+ (gfc_match_omp_clauses): Match those clauses.
+ (gfc_match_omp_prefer_type, gfc_match_omp_init,
+ gfc_match_omp_interop): New.
+ (resolve_omp_clauses): Handle interop clauses.
+ (omp_code_to_statement): Add ST_OMP_INTEROP.
+ (gfc_resolve_omp_directive): Add EXEC_OMP_INTEROP.
+ * parse.cc (decode_omp_directive): Parse 'interop' directive.
+ (next_statement, gfc_ascii_statement): Handle ST_OMP_INTEROP.
+ * st.cc (gfc_free_statement): Likewise
+ * resolve.cc (gfc_resolve_code): Handle EXEC_OMP_INTEROP.
+ * trans.cc (trans_code): Likewise.
+ * trans-openmp.cc (gfc_trans_omp_directive): Print 'sorry'
+ for EXEC_OMP_INTEROP.
+
+2024-09-05 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/100273
+ * trans-decl.cc (gfc_create_module_variable): Handle module
+ variable also when it is needed for the result specification
+ of a contained function.
+
+2024-09-03 David Malcolm <dmalcolm@redhat.com>
+
+ * error.cc (gfc_move_error_buffer_from_to): Prefix all
+ output_buffer fields with "m_".
+ (gfc_diagnostics_init): Likewise.
+
+2024-08-31 Harald Anlauf <anlauf@gmx.de>
+
+ * match.cc (gfc_match_namelist): Downgrade feature from GNU to
+ legacy extension.
+
+2024-08-30 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/98454
+ * resolve.cc (resolve_symbol): Add default-initialization of
+ non-allocatable, non-pointer derived-type function results.
+
+2024-08-29 David Malcolm <dmalcolm@redhat.com>
+
+ * error.cc (gfc_format_decoder): Convert final param from
+ const char **buffer_ptr to pp_token_list &formatted_token_list,
+ and update call to default_tree_printer accordingly.
+
+2024-08-29 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/116530
+ * trans-io.cc (transfer_namelist_element): Prevent NULL pointer
+ dereference.
+
+2024-08-23 Paul Thomas <pault@gcc.gnu.org>
+
+ Revert:
+ 2024-08-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/102689
+ * trans-array.cc (get_array_ref_dim_for_loop_dim): Use the arg1
+ class container carried in ss->info as the seed for a lhs in
+ class valued transformational intrinsic calls that are not the
+ rhs of an assignment. Otherwise, the lhs variable expression is
+ taken from the loop chain. For this latter case, the _vptr and
+ _len fields are set.
+ (gfc_trans_create_temp_array): Use either the lhs expression
+ seeds to build a class variable that will take the returned
+ descriptor as its _data field. In the case that the arg1 expr.
+ is used, a class typespec must be built with the correct rank
+ and the _vptr and _len fields set. The element size is provided
+ for the temporary allocation and to set the descriptor span.
+ (gfc_array_init_size): When an intrinsic type scalar expr3 is
+ used in allocation of a class array, use its element size in
+ the descriptor dtype.
+ * trans-expr.cc (gfc_conv_class_to_class): Class valued
+ transformational intrinsics return the pointer to the array
+ descriptor as the _data field of a class temporary. Extract
+ directly and return the address of the class temporary.
+ (gfc_conv_procedure_call): store the expression for the first
+ argument of a class valued transformational intrinsic function
+ in the ss info class_container field. Later, use its type as
+ the element type in the call to gfc_trans_create_temp_array.
+ (fcncall_realloc_result): Add a dtype argument and use it in
+ the descriptor, when available.
+ (gfc_trans_arrayfunc_assign): For class lhs, build a dtype with
+ the lhs rank and the rhs element size and use it in the call to
+ fcncall_realloc_result.
+
+2024-08-23 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * invoke.texi (Code Gen Options): Add a missing word.
+
+2024-08-23 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/86468
+ * trans-stmt.cc (trans_associate_var): Remove superfluous
+ view_convert.
+
+2024-08-21 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/86468
+ * trans-intrinsic.cc (conv_intrinsic_move_alloc): Correct
+ comment.
+ * trans-types.cc (gfc_sym_type): Pass coarray rank, not false.
+ (gfc_get_derived_type): Only propagate codimension for coarrays
+ and pointers to array components in derived typed coarrays.
+
+2024-08-21 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/77518
+ * trans-intrinsic.cc (gfc_conv_intrinsic_sizeof): Use
+ class_container of se when set.
+
+2024-08-20 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/84246
+ * resolve.cc (caf_possible_reallocate): Detect arrays that may
+ be reallocated by caf_send.
+ (resolve_ordinary_assign): More reliably detect assignments
+ where a rewrite to caf_send is needed.
+ * trans-expr.cc (gfc_trans_assignment_1): Remove rewrite to
+ caf_send, because this is done by resolve now.
+ * trans-intrinsic.cc (conv_caf_send): Prevent unneeded temporary
+ arrays.
+
+2024-08-19 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/46371
+ PR fortran/56496
+ * expr.cc (gfc_is_coindexed): Detect is coindexed also when
+ rewritten to caf_get.
+ * trans-stmt.cc (trans_associate_var): Always accept a
+ descriptor for coarrays.
+
+2024-08-19 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/84244
+ * trans-types.cc (gfc_get_derived_type): When a caf_sub_token is
+ generated for a component, link it to the component it is
+ generated for (the previous one).
+
+2024-08-16 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114146
+ * intrinsic.texi: Fix documentation of arguments of RANDOM_INIT,
+ which is conforming to the F2018 standard.
+
+2024-08-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/116387
+ * resolve.cc (resolve_operator): Use %L rather than %%L in format
+ string.
+
+2024-08-15 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/110033
+ * class.cc (gfc_is_class_scalar_expr): Coarray refs that ref
+ only self, aka this image, are regarded as scalar, too.
+ * resolve.cc (resolve_assoc_var): Ignore this image coarray refs
+ and do not build a new class type.
+ * trans-expr.cc (gfc_get_caf_token_offset): Get the caf token
+ from the descriptor for associated variables.
+ (gfc_conv_variable): Same.
+ (gfc_trans_pointer_assignment): Assign token to temporary
+ associate variable, too.
+ (gfc_trans_scalar_assign): Add flag that assign is for associate
+ and use it to assign the token.
+ (is_assoc_assign): Detect that expressions are for associate
+ assign.
+ (gfc_trans_assignment_1): Treat associate assigns like pointer
+ assignments where possible.
+ * trans-stmt.cc (trans_associate_var): Set same_class only for
+ class-targets.
+ * trans.h (gfc_trans_scalar_assign): Add flag to
+ trans_scalar_assign for marking associate assignments.
+
+2024-08-15 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ * arith.cc (reduce_unary): Use expr.corank.
+ (reduce_binary_ac): Same.
+ (reduce_binary_ca): Same.
+ (reduce_binary_aa): Same.
+ * array.cc (gfc_match_array_ref): Same.
+ * check.cc (dim_corank_check): Same.
+ (gfc_check_move_alloc): Same.
+ (gfc_check_image_index): Same.
+ * class.cc (gfc_add_class_array_ref): Same.
+ (finalize_component): Same.
+ * data.cc (gfc_assign_data_value): Same.
+ * decl.cc (match_clist_expr): Same.
+ (add_init_expr_to_sym): Same.
+ * expr.cc (simplify_intrinsic_op): Same.
+ (simplify_parameter_variable): Same.
+ (gfc_check_assign_symbol): Same.
+ (gfc_get_variable_expr): Same.
+ (gfc_add_full_array_ref): Same.
+ (gfc_lval_expr_from_sym): Same.
+ (gfc_get_corank): Removed.
+ * frontend-passes.cc (callback_reduction): Use expr.corank.
+ (create_var): Same.
+ (combine_array_constructor): Same.
+ (optimize_minmaxloc): Same.
+ * gfortran.h (gfc_get_corank): Add corank to gfc_expr.
+ * intrinsic.cc (gfc_get_intrinsic_function_symbol): Use
+ expr.corank.
+ (gfc_convert_type_warn): Same.
+ (gfc_convert_chartype): Same.
+ * iresolve.cc (resolve_bound): Same.
+ (gfc_resolve_cshift): Same.
+ (gfc_resolve_eoshift): Same.
+ (gfc_resolve_logical): Same.
+ (gfc_resolve_matmul): Same.
+ * match.cc (copy_ts_from_selector_to_associate): Same.
+ * matchexp.cc (gfc_get_parentheses): Same.
+ * parse.cc (parse_associate): Same.
+ * primary.cc (gfc_match_rvalue): Same.
+ * resolve.cc (resolve_structure_cons): Same.
+ (resolve_actual_arglist): Same.
+ (resolve_elemental_actual): Same.
+ (resolve_generic_f0): Same.
+ (resolve_unknown_f): Same.
+ (resolve_operator): Same.
+ (gfc_expression_rank): Same and set dimen_type for coarray to
+ default.
+ (gfc_op_rank_conformable): Use expr.corank.
+ (add_caf_get_intrinsic): Same.
+ (resolve_variable): Same.
+ (gfc_fixup_inferred_type_refs): Same.
+ (check_host_association): Same.
+ (resolve_compcall): Same.
+ (resolve_expr_ppc): Same.
+ (resolve_assoc_var): Same.
+ (fixup_array_ref): Same.
+ (resolve_select_type): Same.
+ (add_comp_ref): Same.
+ (get_temp_from_expr): Same.
+ (resolve_fl_var_and_proc): Same.
+ (resolve_symbol): Same.
+ * symbol.cc (gfc_is_associate_pointer): Same.
+ * trans-array.cc (walk_coarray): Same.
+ (gfc_conv_expr_descriptor): Same.
+ (gfc_walk_array_ref): Same.
+ * trans-array.h (gfc_walk_array_ref): Same.
+ * trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token):
+ Same.
+ * trans-intrinsic.cc (trans_this_image): Same.
+ (trans_image_index): Same.
+ (conv_intrinsic_cobound): Same.
+ (gfc_walk_intrinsic_function): Same.
+ (conv_intrinsic_move_alloc): Same.
+ * trans-stmt.cc (gfc_trans_lock_unlock): Same.
+ (trans_associate_var): Same and adapt to slightly different
+ behaviour of expr.corank and gfc_get_corank.
+ (gfc_trans_allocate): Same.
+ * trans.cc (gfc_add_finalizer_call): Same.
+
+2024-08-14 Harald Anlauf <anlauf@gmx.de>
+
+ * simplify.cc (gfc_simplify_sizeof): Clear used gmp variable.
+ * target-memory.cc (gfc_target_expr_size): Likewise.
+
+2024-08-14 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/102973
+ * match.cc (gfc_match_associate): Reset proc_ptr parsing flag on
+ error.
+
+2024-08-14 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/116292
+ * trans-intrinsic.cc (conv_intrinsic_move_alloc): Get the vtab
+ only for derived types and classes and adjust _len for class
+ types.
+
+2024-08-13 Harald Anlauf <anlauf@gmx.de>
+ Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/114308
+ * array.cc (resolve_array_list): Reject array constructor value if
+ its declared type is abstract (F2018:C7114).
+
+2024-08-12 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/85510
+ * resolve.cc (resolve_variable): Mark the variable as host
+ associated only, when it is not in an associate block.
+ * trans-decl.cc (generate_coarray_init): Remove incorrect unused
+ flag on parameter.
+
+2024-08-11 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/116221
+ * intrinsic.cc (gfc_get_intrinsic_sub_symbol): Initialize variable.
+ * symbol.cc (gfc_get_ha_symbol): Likewise.
+
+2024-08-07 Julian Brown <julian@codesourcery.com>
+ Tobias Burnus <tobias@baylibre.com>
+
+ * gfortran.h (gfc_option_t): Add disable_omp_is_initial_device.
+ * lang.opt (fbuiltin-): Add.
+ * options.cc (gfc_handle_option): Handle
+ -fno-builtin-omp_is_initial_device.
+ * f95-lang.cc (gfc_init_builtin_functions): Handle
+ DEF_GOMP_BUILTIN_COMPILER.
+ * trans-decl.cc (gfc_get_extern_function_decl): Add code to use
+ DEF_GOMP_BUILTIN_COMPILER for 'omp_is_initial_device'.
+
+2024-08-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/109105
+ * resolve.cc (CHECK_INTERFACES): New helper macro.
+ (resolve_operator): Replace use of snprintf with
+ gfc_error.
+
+2024-08-06 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/102689
+ * trans-array.cc (get_array_ref_dim_for_loop_dim): Use the arg1
+ class container carried in ss->info as the seed for a lhs in
+ class valued transformational intrinsic calls that are not the
+ rhs of an assignment. Otherwise, the lhs variable expression is
+ taken from the loop chain. For this latter case, the _vptr and
+ _len fields are set.
+ (gfc_trans_create_temp_array): Use either the lhs expression
+ seeds to build a class variable that will take the returned
+ descriptor as its _data field. In the case that the arg1 expr.
+ is used, a class typespec must be built with the correct rank
+ and the _vptr and _len fields set. The element size is provided
+ for the temporary allocation and to set the descriptor span.
+ (gfc_array_init_size): When an intrinsic type scalar expr3 is
+ used in allocation of a class array, use its element size in
+ the descriptor dtype.
+ * trans-expr.cc (gfc_conv_class_to_class): Class valued
+ transformational intrinsics return the pointer to the array
+ descriptor as the _data field of a class temporary. Extract
+ directly and return the address of the class temporary.
+ (gfc_conv_procedure_call): store the expression for the first
+ argument of a class valued transformational intrinsic function
+ in the ss info class_container field. Later, use its type as
+ the element type in the call to gfc_trans_create_temp_array.
+ (fcncall_realloc_result): Add a dtype argument and use it in
+ the descriptor, when available.
+ (gfc_trans_arrayfunc_assign): For class lhs, build a dtype with
+ the lhs rank and the rhs element size and use it in the call to
+ fcncall_realloc_result.
+
+2024-08-03 Steve Kargl <kargls@comcast.net>
+
+ PR fortran/104626
+ * symbol.cc (gfc_add_save): Add checks for SAVE attribute
+ conflicts and duplicate SAVE attribute.
+
+2024-08-02 Mikael Morin <mikael@gcc.gnu.org>
+
+ * trans-intrinsic.cc (maybe_absent_optional_variable): New function.
+ (gfc_conv_intrinsic_minmaxloc): Remove BACK from scalarization and
+ evaluate it before. Add a check that BACK is not null if the
+ expression is an optional dummy. Save the resulting expression to a
+ variable. Use the variable in the generated inline code.
+
+2024-08-01 Jakub Jelinek <jakub@redhat.com>
+
+ * trans-types.cc (gfc_get_array_descr_info): Don't test if
+ !integer_zerop (dtype_off), use fold_build_pointer_plus
+ unconditionally.
+
+2024-07-29 Tobias Burnus <tburnus@baylibre.com>
+
+ PR fortran/115559
+ * trans-common.cc (build_common_decl): Add 'omp declare target' and
+ 'omp declare target link' variables to offload_vars.
+ * trans-decl.cc (add_attributes_to_decl): Likewise; update args and
+ call decl_attributes.
+ (get_proc_pointer_decl, gfc_get_extern_function_decl,
+ build_function_decl): Update calls.
+ (gfc_get_symbol_decl): Likewise; move after 'DECL_STATIC (t)=1'
+ to avoid errors with symtab_node::get_create.
+
+2024-07-22 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/88624
+ * trans-expr.cc (gfc_conv_procedure_call): Treat
+ pointers/references (e.g. from parameters) correctly by derefing
+ them.
+
+2024-07-21 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/59104
+ * gfortran.h : Add decl_order to gfc_symbol.
+ * symbol.cc : Add static next_decl_order..
+ (gfc_set_sym_referenced): Set symbol decl_order.
+ * trans-decl.cc : Include dependency.h.
+ (decl_order): Replace symbol declared_at.lb->location with
+ decl_order.
+
+2024-07-19 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/103115
+ * trans-array.cc (gfc_trans_array_constructor_value): If the first
+ element of an array constructor is deferred-length character and
+ therefore does not have an element size known at compile time, do
+ not try to collect subsequent constant elements into a constructor
+ for optimization.
+
+2024-07-18 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/78466
+ PR fortran/80774
+ * array.cc (gfc_compare_array_spec): Take cotype into account.
+ * class.cc (gfc_build_class_symbol): Coarrays are also arrays.
+ * gfortran.h (IS_CLASS_COARRAY_OR_ARRAY): New macro to detect
+ regular and coarray class arrays.
+ * interface.cc (compare_components): Take codimension into
+ account.
+ * resolve.cc (resolve_symbol): Improve error message.
+ * simplify.cc (simplify_bound_dim): Remove duplicate.
+ * trans-array.cc (gfc_trans_array_cobounds): Coarrays are also
+ arrays.
+ (gfc_trans_array_bounds): Same.
+ (gfc_trans_dummy_array_bias): Same.
+ (get_coarray_as): Get the as having a non-zero codim.
+ (is_explicit_coarray): Detect explicit coarrays.
+ (gfc_conv_expr_descriptor): Create a new descriptor for explicit
+ coarrays.
+ * trans-decl.cc (gfc_build_qualified_array): Coarrays are also
+ arrays.
+ (gfc_build_dummy_array_decl): Same.
+ (gfc_get_symbol_decl): Same.
+ (gfc_trans_deferred_vars): Same.
+ * trans-expr.cc (class_scalar_coarray_to_class): Get the
+ descriptor from the correct location.
+ (gfc_conv_variable): Pick up the descriptor when needed.
+ * trans-types.cc (gfc_is_nodesc_array): Coarrays are also
+ arrays.
+ (gfc_get_nodesc_array_type): Indentation fix only.
+ (cobounds_match_decl): Match a tree's bounds to the expr's
+ bounds and return true, when they match.
+ (gfc_get_derived_type): Create a new type tree/descriptor, when
+ the cobounds of the existing declaration and expr to not
+ match. This happends for class arrays in parameter list, when
+ there are different cobound declarations.
+
+2024-07-18 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/108889
+ * gfortran.h: Add bit field 'allocated_in_scope' to gfc_symbol.
+ * trans-array.cc (gfc_array_allocate): Set 'allocated_in_scope'
+ after allocation if not a component reference.
+ (gfc_alloc_allocatable_for_assignment): If 'allocated_in_scope'
+ not set, not a component ref and not allocated, set the array
+ bounds and offset to give zero length in all dimensions. Then
+ set allocated_in_scope.
+
+2024-07-18 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/82904
+ * trans-types.cc (gfc_sym_type): Use type `char*` for saved
+ deferred length char arrays.
+ * trans.cc (get_array_span): Get `.span` also for `char*` typed
+ arrays, i.e. for those that have INTEGER_TYPE instead of
+ ARRAY_TYPE.
+
+2024-07-17 Kewen Lin <linkw@linux.ibm.com>
+
+ PR target/112993
+ * trans-types.cc (get_real_kind_from_node): Consider the case where
+ more than one modes have the same precision.
+
+2024-07-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/84868
+ * simplify.cc (gfc_simplify_len_trim): If the argument is an
+ element of a parameter array, simplify all the elements and
+ build a new parameter array to hold the result, after checking
+ that it doesn't already exist.
+ * trans-expr.cc (gfc_get_interface_mapping_array) if a string
+ length is available, use it for the typespec.
+ (gfc_add_interface_mapping): Supply the se string length.
+
+2024-07-16 Prathamesh Kulkarni <prathameshk@nvidia.com>
+
+ * trans-expr.cc (gfc_trans_zero_assign): Handle allocatable arrays.
+
+2024-07-13 Mikael Morin <mikael@gcc.gnu.org>
+
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Add the
+ preliminary code generated for MASK to the preliminary code of
+ MINLOC/MAXLOC.
+
+2024-07-12 Mikael Morin <morin-mikael@orange.fr>
+
+ * trans-intrinsic.cc (gfc_conv_intrinsic_minmaxloc): Create a new
+ scalar scalarization chain element if BACK is present. Add it to
+ the loop. Set the scalarization chain before evaluating the
+ argument.
+
+2024-07-11 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ * trans-array.cc (gfc_conv_array_parameter): Init variable to
+ NULL_TREE to fix bootstrap.
+
+2024-07-11 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/96992
+ * trans-array.cc (gfc_trans_array_bounds): Set a starting
+ stride, when descriptor expects a variable for the stride.
+ (gfc_trans_dummy_array_bias): Allow storage association for
+ dummy class arrays, when they are not elemental.
+ (gfc_conv_array_parameter): Add more general class support
+ and packing for classes, too.
+ * trans-array.h (gfc_conv_array_parameter): Add lbound shift
+ for class arrays.
+ * trans-decl.cc (gfc_build_builtin_function_decls): Add decls
+ for internal_un-/pack_class.
+ * trans-expr.cc (gfc_reset_vptr): Allow supplying a type-tree
+ to generate the vtab from.
+ (gfc_class_set_vptr): Allow supplying a class-tree to take the
+ vptr from.
+ (class_array_data_assign): Rename to gfc_class_array_data_assign
+ and make usable from other compile units.
+ (gfc_class_array_data_assign): Renamed from class_array_data_
+ assign.
+ (gfc_conv_derived_to_class): Remove assert to
+ allow converting derived to class type arrays with assumed
+ rank. Reduce code base and use gfc_conv_array_parameter also
+ for classes.
+ (gfc_conv_class_to_class): Use gfc_class_data_assign.
+ (gfc_conv_procedure_call): Adapt to new signature of
+ gfc_conv_derived_to_class.
+ * trans-io.cc (transfer_expr): Same.
+ * trans-stmt.cc (trans_associate_var): Same.
+ * trans.h (gfc_conv_derived_to_class): Signature changed.
+ (gfc_class_array_data_assign): Made public.
+ (gfor_fndecl_in_pack_class): Added declaration.
+ (gfor_fndecl_in_unpack_class): Same.
+
+2024-07-08 Mikael Morin <mikael@gcc.gnu.org>
+
+ * trans-array.cc (gfc_trans_preloop_setup): Use a separate variable
+ for iteration. Use directly the value of variable I if it is known.
+ Move the definition of the variable to the branch where the
+ remaining uses are.
+
+2024-07-03 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/115700
+ * trans-stmt.cc (trans_associate_var): When the associate target
+ is an array-valued character variable, the length is known at entry
+ of the associate block. Move setting of string length of the
+ selector to the initialization part of the block.
+
+2024-07-01 Andrew Stubbs <ams@baylibre.com>
+ Thomas Schwinge <thomas@codesourcery.com>
+
+ * openmp.cc (is_predefined_allocator): Update valid ranges to
+ incorporate ompx_gnu_pinned_mem_alloc.
+
+2024-06-29 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114019
+ * trans-stmt.cc (gfc_trans_allocate): Fix handling of case of
+ scalar character expression being used for SOURCE.
+
+2024-06-28 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ * trans-expr.cc (gfc_class_set_vptr): Add setting of _vptr
+ member.
+ * trans-intrinsic.cc (conv_intrinsic_move_alloc): First use
+ of gfc_class_set_vptr and refactor very similar code.
+ * trans.h (gfc_class_set_vptr): Declare the new function.
+
+2024-06-28 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ * trans-array.cc (structure_alloc_comps): Use reset_vptr.
+ * trans-decl.cc (gfc_trans_deferred_vars): Same.
+ (gfc_generate_function_code): Same.
+ * trans-expr.cc (gfc_reset_vptr): Allow supplying the class
+ type.
+ (gfc_conv_procedure_call): Use reset_vptr.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_transfer): Same.
+
+2024-06-24 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/55978
+ * trans-array.cc (gfc_conv_array_parameter): Do not dereference
+ data component of a missing allocatable dummy array argument for
+ passing as actual to optional dummy. Harden logic of presence
+ check for optional pointer dummy by using TRUTH_ANDIF_EXPR instead
+ of TRUTH_AND_EXPR.
+
+2024-06-20 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/59104
+ * dependency.cc (dependency_fcn, gfc_function_dependency): New
+ functions to detect dependency in array bounds and character
+ lengths on old style function results.
+ * dependency.h : Add prototype for gfc_function_dependency.
+ * error.cc (error_print): Remove trailing space.
+ * gfortran.h : Remove dummy_order and add fn_result_spec.
+ * symbol.cc : Remove declaration of next_dummy_order..
+ (gfc_set_sym_referenced): remove setting of symbol dummy order.
+ * trans-array.cc (gfc_trans_auto_array_allocation): Detect
+ non-dummy symbols with function dependencies and put the
+ allocation at the end of the initialization code.
+ * trans-decl.cc : Include dependency.h.
+ (decl_order): New function that determines uses the location
+ field of the symbol 'declared_at' to determine the order of two
+ declarations.
+ (gfc_defer_symbol_init): Call gfc_function_dependency to put
+ dependent symbols in the right part of the tlink chain. Use
+ the location field of the symbol declared_at to determine the
+ order of declarations.
+ (gfc_trans_auto_character_variable): Put character length
+ initialization of dependent symbols at the end of the chain.
+ * trans.cc (gfc_add_init_cleanup): Add boolean argument with
+ default false that determines whther an expression is placed at
+ the back or the front of the initialization chain.
+ * trans.h : Update the prototype for gfc_add_init_cleanup.
+
+2024-06-19 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/115390
+ * trans-decl.cc (gfc_conv_cfi_to_gfc): Move derivation of type sizes
+ for character via gfc_trans_vla_type_sizes to after character length
+ has been set.
+
+2024-06-19 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/90076
+ * trans-decl.cc (gfc_generate_function_code): Set vptr for
+ results to declared class type.
+ * trans-expr.cc (gfc_reset_vptr): Allow to provide the typespec
+ instead of the expression.
+ * trans.h (gfc_reset_vptr): Same.
+
+2024-06-17 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ * trans.cc (gfc_deallocate_with_status): Check that object to deref
+ is an array, before applying array deref.
+
+2024-06-12 David Malcolm <dmalcolm@redhat.com>
+
+ * error.cc (gfc_clear_pp_buffer): Likewise.
+ (gfc_warning): Likewise.
+ (gfc_warning_check): Likewise.
+ (gfc_error_opt): Likewise.
+ (gfc_error_check): Likewise.
+
+2024-06-07 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/90068
+ * trans-array.cc (gfc_trans_array_ctor_element): Eval non-
+ variable expressions once only.
+ (gfc_trans_array_constructor_value): Add statements of
+ final block.
+ (trans_array_constructor): Detect when final block is required.
+
+2024-06-07 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/90072
+ * expr.cc (gfc_is_alloc_class_scalar_function): Detect
+ allocatable class return types also for user-defined
+ functions.
+ * trans-expr.cc (gfc_conv_procedure_call): Same.
+ (trans_class_vptr_len_assignment): Compute vptr len
+ assignment correctly for user-defined functions.
+
+2024-06-05 Jakub Jelinek <jakub@redhat.com>
+ Frederik Harwath <frederik@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+
+ * gfortran.h (enum gfc_statement): Add ST_OMP_UNROLL,
+ ST_OMP_END_UNROLL, ST_OMP_TILE and ST_OMP_END_TILE.
+ (struct gfc_omp_clauses): Add sizes_list, partial, full and erroneous
+ members.
+ (enum gfc_exec_op): Add EXEC_OMP_UNROLL and EXEC_OMP_TILE.
+ (gfc_expr_list_len): Declare.
+ * match.h (gfc_match_omp_tile, gfc_match_omp_unroll): Declare.
+ * openmp.cc (gfc_get_location): Declare.
+ (gfc_free_omp_clauses): Free sizes_list.
+ (match_oacc_expr_list): Rename to ...
+ (match_omp_oacc_expr_list): ... this. Add is_omp argument and
+ change diagnostic wording if it is true.
+ (enum omp_mask2): Add OMP_CLAUSE_{FULL,PARTIAL,SIZES}.
+ (gfc_match_omp_clauses): Parse full, partial and sizes clauses.
+ (gfc_match_oacc_wait): Use match_omp_oacc_expr_list instead of
+ match_oacc_expr_list.
+ (OMP_UNROLL_CLAUSES, OMP_TILE_CLAUSES): Define.
+ (gfc_match_omp_tile, gfc_match_omp_unroll): New functions.
+ (resolve_omp_clauses): Diagnose full vs. partial clause conflict.
+ Resolve sizes clause arguments.
+ (find_nested_loop_in_chain): Use switch instead of series of ifs.
+ Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL.
+ (gfc_resolve_omp_do_blocks): Set omp_current_do_collapse to
+ list length of sizes_list if present.
+ (gfc_resolve_do_iterator): Return for EXEC_OMP_TILE or
+ EXEC_OMP_UNROLL.
+ (restructure_intervening_code): Remove spurious ()s around & operands.
+ (is_outer_iteration_variable): Handle EXEC_OMP_TILE and
+ EXEC_OMP_UNROLL.
+ (check_nested_loop_in_chain): Likewise.
+ (expr_is_invariant): Likewise.
+ (resolve_omp_do): Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL. Diagnose
+ tile without sizes clause. Use sizes_list length for count if
+ non-NULL. Set code->ext.omp_clauses->erroneous on loops where we've
+ reported diagnostics. Sorry for mixing non-rectangular loops with
+ generated loops.
+ (omp_code_to_statement): Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL.
+ (gfc_resolve_omp_directive): Likewise.
+ * parse.cc (decode_omp_directive): Parse end tile, end unroll, tile
+ and unroll. Move nothing entry alphabetically.
+ (case_exec_markers): Add ST_OMP_TILE and ST_OMP_UNROLL.
+ (gfc_ascii_statement): Handle ST_OMP_END_TILE, ST_OMP_END_UNROLL,
+ ST_OMP_TILE and ST_OMP_UNROLL.
+ (parse_omp_do): Add nested argument. Handle ST_OMP_TILE and
+ ST_OMP_UNROLL.
+ (parse_omp_structured_block): Adjust parse_omp_do caller.
+ (parse_executable): Likewise. Handle ST_OMP_TILE and ST_OMP_UNROLL.
+ * resolve.cc (gfc_resolve_blocks): Handle EXEC_OMP_TILE and
+ EXEC_OMP_UNROLL.
+ (gfc_resolve_code): Likewise.
+ * st.cc (gfc_free_statement): Likewise.
+ * trans.cc (trans_code): Likewise.
+ * trans-openmp.cc (gfc_trans_omp_clauses): Handle full, partial and
+ sizes clauses. Use tree_cons + nreverse instead of
+ temporary vector and build_tree_list_vec for tile_list handling.
+ (gfc_expr_list_len): New function.
+ (gfc_trans_omp_do): Rename tile to oacc_tile. Handle sizes clause.
+ Don't assert code->op is EXEC_DO. Handle EXEC_OMP_TILE and
+ EXEC_OMP_UNROLL.
+ (gfc_trans_omp_directive): Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL.
+ * dump-parse-tree.cc (show_omp_clauses): Dump full, partial and
+ sizes clauses.
+ (show_omp_node): Handle EXEC_OMP_TILE and EXEC_OMP_UNROLL.
+ (show_code_node): Likewise.
+
+2024-06-05 Kewen Lin <linkw@linux.ibm.com>
+
+ * trans-intrinsic.cc (build_round_expr): Use TYPE_PRECISION of
+ long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
+ * trans-types.cc (gfc_build_real_type): Use TYPE_PRECISION of
+ {float,double,long_double}_type_node to replace
+ {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE.
+
+2024-06-04 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/83865
+ * trans-stmt.cc (gfc_trans_allocate): Restrict special case for
+ source-expression with zero-length character to rank 0, so that
+ the array shape is not discarded.
+
+2024-05-29 Andre Vehreschild <vehre@gcc.gnu.org>
+
+ PR fortran/90069
+ * trans-expr.cc (gfc_conv_procedure_call): Evaluate
+ expressions with side-effects only ones and ensure
+ old is freeed.
+
+2024-05-24 Harald Anlauf <anlauf@gmx.de>
+ Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/93635
+ * symbol.cc (conflict_std): Helper function for reporting attribute
+ conflicts depending on the Fortran standard version.
+ (conf_std): Helper macro for checking standard-dependent conflicts.
+ (gfc_check_conflict): Use it.
+
+2024-05-24 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/86100
+ * trans-array.cc (gfc_conv_ss_startstride): Use abridged_ref_name
+ to generate a more user-friendly name for bounds-check messages.
+ * trans-expr.cc (gfc_copy_class_to_class): Fix bounds check for
+ rank>1 by looping over the dimensions.
+
+2024-05-23 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/103312
+ * dependency.cc (gfc_dep_compare_expr): Handle component call
+ expressions. Return -2 as default and return 0 if compared with
+ a function expression that is from an interface body and has
+ the same name.
+ * expr.cc (gfc_reduce_init_expr): If the expression is a comp
+ call do not attempt to reduce, defer to resolution and return
+ false.
+ * trans-types.cc (gfc_get_dtype_rank_type,
+ gfc_get_nodesc_array_type): Fix whitespace.
+
+2024-05-20 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/99798
+ * symbol.cc (gfc_release_symbol): Move the condition guarding
+ the handling cyclic references...
+ (cyclic_reference_break_needed): ... here as a new predicate.
+ Remove superfluous parts. Add a condition preventing any premature
+ release with submodule symbols.
+
+2024-05-20 Tobias Burnus <tburnus@baylibre.com>
+
+ PR fortran/115150
+ * trans-intrinsic.cc (gfc_conv_intrinsic_bound): Fix SHAPE
+ for zero-size arrays
+
+2024-05-20 Tobias Burnus <tburnus@baylibre.com>
+
+ * invoke.texi (fcoarray): Link to OpenCoarrays.org;
+ mention libcaf_single.
+
+2024-05-17 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/114874
+ * gfortran.h: Add 'assoc_name_inferred' to gfc_namespace.
+ * match.cc (gfc_match_select_type): Set 'assoc_name_inferred'
+ in select type namespace if the selector has inferred type.
+ * primary.cc (gfc_match_varspec): If a select type temporary
+ is apparently scalar and a left parenthesis has been detected,
+ check the current namespace has 'assoc_name_inferred' set. If
+ so, set inferred_type.
+ * resolve.cc (resolve_variable): If the namespace of a select
+ type temporary is marked with 'assoc_name_inferred' call
+ gfc_fixup_inferred_type_refs to ensure references are OK.
+ (gfc_fixup_inferred_type_refs): Catch invalid array refs..
+
+2024-05-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/115103
+ * openmp.cc (resolve_omp_clauses): Diagnose grainsize
+ used together with num_tasks or nogroup used together with
+ reduction.
+
+2024-05-13 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/113363
+ * trans-array.cc (gfc_array_init_size): Use the expr3 dtype so
+ that the correct element size is used.
+ * trans-expr.cc (gfc_conv_procedure_call): Remove restriction
+ that ss and ss->loop be present for the finalization of class
+ array function results.
+ (trans_class_assignment): Use free and malloc, rather than
+ realloc, for character expressions assigned to unlimited poly
+ entities.
+ * trans-stmt.cc (gfc_trans_allocate): Build a correct rhs for
+ the assignment of an unlimited polymorphic 'source'.
+
+2024-05-12 Harald Anlauf <anlauf@gmx.de>
+
+ * primary.cc (gfc_match_varspec): Replace 'ref' argument to
+ is_inquiry_ref() by NULL when the result is not needed to avoid
+ a memleak.
+
+2024-05-12 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/84006
+ PR fortran/100027
+ PR fortran/98534
+ * iresolve.cc (gfc_resolve_transfer): Emit a TODO error for
+ unlimited polymorphic mold.
+ * trans-expr.cc (gfc_resize_class_size_with_len): Use the fold
+ even if a block is not available in which to fix the result.
+ (trans_class_assignment): Enable correct assignment of
+ character expressions to unlimited polymorphic variables using
+ lhs _len field and rse string_length.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_storage_size): Extract
+ the class expression so that the unlimited polymorphic class
+ expression can be used in gfc_resize_class_size_with_len to
+ obtain the storage size for character payloads. Guard the use
+ of GFC_DECL_SAVED_DESCRIPTOR by testing for DECL_LANG_SPECIFIC
+ to prevent the ICE. Also, invert the order to use the class
+ expression extracted from the argument.
+ (gfc_conv_intrinsic_transfer): In same way as 'storage_size',
+ use the _len field to obtaining the correct length for arg 1.
+ Add a branch for the element size in bytes of class expressions
+ with provision to make use of the unlimited polymorphic _len
+ field. Again, the class references are explicitly identified.
+ 'mold_expr' was already declared. Use it instead of 'arg'. Do
+ not fix 'dest_word_len' for deferred character sources because
+ reallocation on assign makes use of it before it is assigned.
+
+2024-05-11 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/115039
+ * expr.cc (gfc_traverse_expr): An inquiry ref does not constitute
+ a dependency and cannot collide with a symbol.
+
+2024-05-05 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114827
+ * trans-array.cc (gfc_alloc_allocatable_for_assignment): Take into
+ account _len of unlimited polymorphic entities when calculating
+ the effective element size for allocation size and array span.
+ Set _len of lhs to _len of rhs.
+ * trans-expr.cc (trans_class_assignment): Take into account _len
+ of unlimited polymorphic entities for allocation size.
+
+2024-04-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * expr.cc (check_transformational): Add SELECTED_LOGICAL_KIND
+ to allowed functions for Fortran 2023.
+ * gfortran.h (GFC_ISYM_SL_KIND): New.
+ * gfortran.texi: Mention SELECTED_LOGICAL_KIND.
+ * intrinsic.cc (add_functions): Add SELECTED_LOGICAL_KIND.
+ (gfc_intrinsic_func_interface): Allow it in initialization
+ expressions.
+ * intrinsic.h (gfc_simplify_selected_logical_kind): New proto.
+ * intrinsic.texi: Add SELECTED_LOGICAL_KIND.
+ * simplify.cc (gfc_simplify_selected_logical_kind): New
+ function.
+ * trans-decl.cc (gfc_build_intrinsic_function_decls): Initialize
+ gfor_fndecl_sl_kind.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_sl_kind): New function.
+ (gfc_conv_intrinsic_function): Call it for GFC_ISYM_SL_KIND.
+ * trans.h (gfor_fndecl_sl_kind): New symbol.
+
+2024-04-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * iso-fortran-env.def: Add logical{8,16,32,64} and
+ real16 named constants.
+
+2024-04-29 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/114959
+ * trans-expr.cc (gfc_trans_class_init_assign): Return NULL_TREE
+ if the default initializer has all NULL fields. Guard this
+ by a requirement that the code not be EXEC_INIT_ASSIGN and that
+ the object be an INTENT_OUT dummy.
+ * trans-stmt.cc (gfc_trans_allocate): Change the initializer
+ code for allocate with mold to EXEC_ALLOCATE to allow an
+ initializer with all NULL fields.
+
+2024-04-25 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/93678
+ * trans-expr.cc (gfc_conv_procedure_call): Use the interface,
+ where possible, to obtain the type of character procedure
+ pointers of class entities.
+
+2024-04-25 Paul Thomas <pault@gcc.gnu.org>
+ Jakub Jelinek <jakub@gcc.gnu.org>
+
+ PR fortran/89462
+ * decl.cc (build_sym): Add an extra argument 'elem'. If 'elem'
+ is greater than 1, gfc_new_charlen is called to generate a new
+ charlen, registered in the symbol namespace.
+ (variable_decl, enumerator_decl): Set the new argument in the
+ calls to build_sym.
+
+2024-04-21 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/103471
+ * resolve.cc (resolve_actual_arglist): Catch variables silently
+ set as untyped, resetting the flag so that gfc_resolve_expr can
+ generate the no implicit type error.
+ (gfc_resolve_index_1): Block index expressions of unknown type
+ from being converted to default integer, avoiding the fatal
+ error in trans-decl.cc.
+ * symbol.cc (gfc_set_default_type): Remove '(symbol)' from the
+ 'no IMPLICIT type' error message.
+ * trans-decl.cc (gfc_get_symbol_decl): Change fatal error locus
+ to that of the symbol declaration.
+ (gfc_trans_deferred_vars): Remove two trailing tabs.
+
+2024-04-18 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/114739
+ * primary.cc (gfc_match_varspec): Check for default type before
+ checking for derived types with the right component name.
+
+2024-04-16 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113793
+ * resolve.cc (resolve_allocate_expr): Reject ALLOCATE with SOURCE=
+ or MOLD= specifier for unequal length.
+ * trans-stmt.cc (gfc_trans_allocate): If an allocatable character
+ variable has fixed length, use it and do not use the source length.
+ With bounds-checking enabled, add a runtime check for same length.
+
+2024-04-10 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/106500
+ * check.cc (is_c_interoperable): Fix checks for C_SIZEOF.
+ (gfc_check_c_f_pointer): Reject function returning a pointer as FPTR,
+ and improve an error message.
+
+2024-04-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/114535
+ * resolve.cc (resolve_symbol): Remove last chunk that checked
+ for finalization of unreferenced symbols.
+
+2024-04-09 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/113956
+ * trans-expr.cc (gfc_trans_pointer_assignment): Remove assert
+ causing the ICE since it was unnecesary.
+
+2024-04-02 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/106999
+ * interface.cc (gfc_compare_interfaces): Add error for a
+ subroutine proc pointer passed to a variable formal.
+ (compare_parameter): If a procedure pointer is being passed to
+ a non-procedure formal arg, and there is an an interface, use
+ gfc_compare_interfaces to check and provide a more useful error
+ message.
+
+2024-04-02 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/112407
+ * resolve.cc (resolve_procedure_expression): Change the test for
+ for recursion in the case of hidden procedures from modules.
+ (resolve_typebound_static): Add warning for possible recursive
+ calls to typebound procedures.
+ * trans-expr.cc (gfc_trans_class_init_assign): Do not apply
+ default initializer to class dummy where component initializers
+ are all null.
+
+2024-03-29 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/50410
+ * trans-expr.cc (gfc_conv_structure): Check for NULL pointer.
+
+2024-03-29 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/36337
+ PR fortran/110987
+ PR fortran/113885
+ * trans-expr.cc (gfc_trans_assignment_1): Place finalization
+ block before rhs post block for elemental rhs.
+ * trans.cc (gfc_finalize_tree_expr): Check directly if a type
+ has no components, rather than the zero components attribute.
+ Treat elemental zero component expressions in the same way as
+ scalars.
+
+2024-03-28 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114474
+ * primary.cc (gfc_variable_attr): Catch variables used in structure
+ constructors within DATA statements that are still tagged with a
+ temporary type BT_PROCEDURE from match_actual_arg and which have the
+ target attribute, and fix their typespec.
+
+2024-03-28 Mikael Morin <mikael@gcc.gnu.org>
+ Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/111781
+ PR fortran/114475
+ * expr.cc (check_restricted): In submodules, allow variables host-
+ associated from the parent module.
+
+2024-03-22 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/55978
+ * interface.cc (gfc_compare_actual_formal): Skip size check for
+ NULL() actual without MOLD argument.
+
+2024-03-22 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/107426
+ * gfortran.h (gfc_save_module_list, gfc_restore_old_module_list):
+ New declarations.
+ * module.cc (old_module_list_tail): New global variable.
+ (gfc_save_module_list, gfc_restore_old_module_list): New functions.
+ (gfc_use_modules): Set module_list and old_module_list_tail.
+ * parse.cc (next_statement): Save module_list before doing any work.
+ (reject_statement): Restore module_list to its saved value.
+
+2024-03-22 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/111781
+ * symbol.cc (gfc_get_procedure_ns, gfc_get_spec_ns): New functions.
+ * gfortran.h (gfc_get_procedure_ns, gfc_get_spec ns): Declare them.
+ (gfc_is_formal_arg): Remove.
+ * expr.cc (check_restricted): Remove special case allowing local
+ variable in dummy argument bound expressions. Use gfc_get_spec_ns
+ to get the right namespace.
+ * resolve.cc (gfc_is_formal_arg, formal_arg_flag): Remove.
+ (gfc_resolve_formal_arglist): Set gfc_current_ns. Quit loop and
+ restore gfc_current_ns instead of early returning.
+ (resolve_symbol): Factor common array spec resolution code to...
+ (resolve_symbol_array_spec): ... this new function. Additionnally
+ set and restore gfc_current_ns.
+
+2024-03-21 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/30802
+ * trans-array.cc (abridged_ref_name): New helper function.
+ (trans_array_bound_check): Use it.
+ (array_bound_check_elemental): Likewise.
+ (gfc_conv_array_ref): Likewise.
+
+2024-03-20 Jakub Jelinek <jakub@redhat.com>
+
+ * trans-array.cc (structure_alloc_comps): Use integer_zero_node
+ instead of build_zero_cst (integer_type_node) or
+ build_int_cst (integer_type_node, 0) and integer_one_node instead of
+ build_int_cst (integer_type_node, 1).
+ * trans-expr.cc (conv_scalar_char_value): Likewise.
+ * trans-stmt.cc (gfc_trans_form_team, gfc_trans_change_team,
+ gfc_trans_sync_team, gfc_trans_sync): Likewise.
+ * trans-decl.cc (create_main_function): Likewise.
+ * trans-intrinsic.cc (trans_this_image, conv_intrinsic_move_alloc):
+ Likewise.
+ * trans.cc (gfc_allocate_using_caf_lib, gfc_deallocate_with_status):
+ Likewise.
+
+2024-03-18 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/103715
+ * frontend-passes.cc (check_externals_expr): Prevent invalid read
+ in case of mismatch of external subroutine with function.
+
+2024-03-17 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/101135
+ * trans-array.cc (gfc_get_dataptr_offset): Check for optional
+ arguments being present before dereferencing data pointer.
+
+2024-03-15 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/87477
+ PR fortran/89645
+ PR fortran/99065
+ PR fortran/114141
+ PR fortran/114280
+ * class.cc (gfc_change_class): New function needed for
+ associate names, when rank changes or a derived type is
+ produced by resolution
+ * dump-parse-tree.cc (show_code_node): Make output for SELECT
+ TYPE more comprehensible.
+ * expr.cc (find_inquiry_ref): Do not simplify expressions of
+ an inferred type.
+ * gfortran.h : Add 'gfc_association_list' to structure
+ 'gfc_association_list'. Add prototypes for
+ 'gfc_find_derived_types', 'gfc_fixup_inferred_type_refs' and
+ 'gfc_change_class'. Add macro IS_INFERRED_TYPE.
+ * match.cc (copy_ts_from_selector_to_associate): Add bolean arg
+ 'select_type' with default false. If this is a select type name
+ and the selector is a inferred type, build the class type and
+ apply it to the associate name.
+ (build_associate_name): Pass true to 'select_type' in call to
+ previous.
+ * parse.cc (parse_associate): If the selector is inferred type
+ the associate name is too. Make sure that function selector
+ class and rank, if known, are passed to the associate name. If
+ a function result exists, pass its typespec to the associate
+ name.
+ * primary.cc (resolvable_fcns): New function to check that all
+ the function references are resolvable.
+ (gfc_match_varspec): If a scalar derived type select type
+ temporary has an array reference, match the array reference,
+ treating this in the same way as an equivalence member. Do not
+ set 'inquiry' if applied to an unknown type the inquiry name
+ is ambiguous with the component of an accessible derived type.
+ Check that resolution of the target expression is OK by testing
+ if the symbol is declared or is an operator expression, then
+ using 'resolvable_fcns' recursively. If all is well, resolve
+ the expression. If this is an inferred type with a component
+ reference, call 'gfc_find_derived_types' to find a suitable
+ derived type. If there is an inquiry ref and the symbol either
+ is of unknown type or is inferred to be a derived type, set the
+ primary and symbol TKR appropriately.
+ * resolve.cc (resolve_variable): Call new function below.
+ (gfc_fixup_inferred_type_refs): New function to ensure that the
+ expression references for a inferred type are consistent with
+ the now fixed up selector.
+ (resolve_assoc_var): Ensure that derived type or class function
+ selectors transmit the correct arrayspec to the associate name.
+ (resolve_select_type): If the selector is an associate name of
+ inferred type and has no component references, the associate
+ name should have its typespec. Simplify the conversion of a
+ class array to class scalar by calling 'gfc_change_class'.
+ Make sure that a class, inferred type selector with an array
+ ref transfers the typespec from the symbol to the expression.
+ * symbol.cc (gfc_set_default_type): If an associate name with
+ unknown type has a selector expression, try resolving the expr.
+ (find_derived_types, gfc_find_derived_types): New functions
+ that search for a derived type with a given name.
+ * trans-expr.cc (gfc_conv_variable): Some inferred type exprs
+ escape resolution so call 'gfc_fixup_inferred_type_refs'.
+ * trans-stmt.cc (trans_associate_var): Tidy up expression for
+ 'class_target'. Finalize and free class function results.
+ Correctly handle selectors that are class functions and class
+ array references, passed as derived types.
+
+2024-03-14 Thomas Schwinge <thomas@codesourcery.com>
+
+ * dump-parse-tree.cc (show_omp_clauses): Handle 'self_expr'.
+ * openmp.cc (gfc_free_omp_clauses): Likewise.
+ * trans-openmp.cc (gfc_split_omp_clauses): Don't handle 'self_expr'.
+
+2024-03-14 Chung-Lin Tang <cltang@baylibre.com>
+
+ * dump-parse-tree.cc (show_omp_namelist): Print "readonly," for
+ OMP_LIST_MAP and OMP_LIST_CACHE if n->u.map.readonly is set.
+ Adjust 'n->u.map_op' to 'n->u.map.op'.
+ * gfortran.h (typedef struct gfc_omp_namelist): Adjust map_op as
+ 'ENUM_BITFIELD (gfc_omp_map_op) op:8', add 'bool readonly' field,
+ change to named struct field 'map'.
+ * openmp.cc (gfc_match_omp_map_clause): Adjust 'n->u.map_op' to
+ 'n->u.map.op'.
+ (gfc_match_omp_clause_reduction): Likewise.
+ (gfc_match_omp_clauses): Add readonly modifier parsing for OpenACC
+ copyin clause, set 'n->u.map.op' and 'n->u.map.readonly' for parsed
+ clause. Adjust 'n->u.map_op' to 'n->u.map.op'.
+ (gfc_match_oacc_declare): Adjust 'n->u.map_op' to 'n->u.map.op'.
+ (gfc_match_oacc_cache): Add readonly modifier parsing for OpenACC
+ cache directive.
+ (resolve_omp_clauses): Adjust 'n->u.map_op' to 'n->u.map.op'.
+ * trans-decl.cc (add_clause): Adjust 'n->u.map_op' to 'n->u.map.op'.
+ (finish_oacc_declare): Likewise.
+ * trans-openmp.cc (gfc_trans_omp_clauses): Set OMP_CLAUSE_MAP_READONLY,
+ OMP_CLAUSE__CACHE__READONLY to 1 when readonly is set. Adjust
+ 'n->u.map_op' to 'n->u.map.op'.
+ (gfc_add_clause_implicitly): Adjust 'n->u.map_op' to 'n->u.map.op'.
+
+2024-03-13 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114001
+ * expr.cc (gfc_is_simply_contiguous): Adjust logic so that CLASS
+ symbols are also handled.
+
+2024-03-13 Tobias Burnus <tburnus@baylibre.com>
+
+ PR fortran/114283
+ * trans-openmp.cc (gfc_omp_predetermined_mapping): Map dummy
+ procedures as firstprivate.
+
+2024-03-12 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/110826
+ * array.cc (gfc_array_dimen_size): When walking the ref chain of an
+ array and the ultimate component is a procedure pointer, do not try
+ to figure out its dimension even if it is a array-valued function.
+
+2024-03-06 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/103707
+ PR fortran/106987
+ * arith.cc (is_hard_arith_error): New helper function to determine
+ whether an arithmetic error is "hard" or not.
+ (check_result): Use it.
+ (gfc_arith_divide): Set "Division by zero" only for regular
+ numerators of real and complex divisions.
+ (reduce_unary): Use is_hard_arith_error to determine whether a hard
+ or (recoverable) soft error was encountered. Terminate immediately
+ on hard error, otherwise remember code of first soft error.
+ (reduce_binary_ac): Likewise.
+ (reduce_binary_ca): Likewise.
+ (reduce_binary_aa): Likewise.
+
+2024-03-01 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/104819
+ * check.cc (gfc_check_null): Handle nested NULL()s.
+ (is_c_interoperable): Check for MOLD argument of NULL() as part of
+ the interoperability check.
+ * interface.cc (gfc_compare_actual_formal): Extend checks for NULL()
+ actual arguments for presence of MOLD argument when required by
+ Interp J3/22-146.
+
+2024-02-29 Alexander Westbrooks <alexanderw@gcc.gnu.org>
+
+ PR fortran/82943
+ PR fortran/86148
+ PR fortran/86268
+ * decl.cc (gfc_get_pdt_instance): Set the PDT instance field
+ 'f2k_derived', if not set already, to point to the given
+ PDT template 'f2k_derived' namespace in order to give the
+ PDT instance referential access to the typebound procedures
+ of the template.
+ * gfortran.h (gfc_pdt_is_instance_of): Add prototype.
+ * resolve.cc (resolve_typebound_procedure): If the derived type
+ does not have the attribute 'pdt_template' set, compare the
+ dummy argument to the 'resolve_bindings_derived' type like usual.
+ If the derived type is a 'pdt_template', then check if the
+ dummy argument is an instance of the PDT template. If the derived
+ type is a PDT template, and the dummy argument is an instance of
+ that template, but the dummy argument 'param_list' is not
+ SPEC_ASSUMED, check if there are any LEN parameters in the
+ dummy argument. If there are no LEN parameters, then this implies
+ that there are only KIND parameters in the dummy argument.
+ If there are LEN parameters, this would be an error, for all
+ LEN parameters for the dummy argument MUST be assumed for
+ typebound procedures of PDTs.
+ (resolve_pdt): Add a check for ALLOCATABLE and POINTER attributes for
+ SPEC_DEFERRED parameters of PDT class symbols. ALLOCATABLE and
+ POINTER attributes for a PDT class symbol are stored in the
+ 'class_pointer' and 'allocatable' attributes of the '_data'
+ component respectively.
+ * symbol.cc (gfc_pdt_is_instance_of): New function.
+
+2024-02-26 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114012
+ * trans-expr.cc (gfc_conv_procedure_call): Evaluate non-trivial
+ arguments just once before assigning to an unlimited polymorphic
+ dummy variable.
+
+2024-02-23 Steve Kargl <kargl@gcc.gnu.org>
+ Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114024
+ * trans-stmt.cc (gfc_trans_allocate): When a source expression has
+ substring references, part-refs, or %re/%im inquiries, wrap the
+ entity in parentheses to force evaluation of the expression.
+
+2024-02-23 Tobias Burnus <tburnus@baylibre.com>
+
+ * openmp.cc (gfc_match_omp_depobj): Use OPT_Wopenmp
+ as warning category in gfc_warning.
+
+2024-02-20 Peter Hill <peter.hill@york.ac.uk>
+
+ PR fortran/105658
+ * trans-expr.cc (gfc_conv_intrinsic_to_class): When passing an
+ array component reference of intrinsic type to a procedure
+ with an unlimited polymorphic dummy argument, a temporary
+ should be created.
+
+2024-02-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/113503
+ * trans-expr.cc (alloc_scalar_allocatable_subcomponent): Don't
+ overwrite expr2->ts.u.cl->backend_decl, instead set size to
+ expr2->ts.u.cl->backend_decl first and use size instead of
+ expr2->ts.u.cl->backend_decl.
+ (gfc_trans_subcomponent_assign): Emit se.pre into block
+ before calling alloc_scalar_allocatable_subcomponent instead of
+ after it.
+
+2024-02-17 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113911
+ * trans-array.cc (gfc_trans_deferred_array): Do not clobber
+ deferred length for a character variable passed as dummy argument.
+
+2024-02-15 Kwok Cheung Yeung <kcyeung@baylibre.com>
+
+ * dump-parse-tree.cc (show_attr): Handle omp_declare_target_indirect
+ attribute.
+ * f95-lang.cc (gfc_gnu_attributes): Add entry for 'omp declare
+ target indirect'.
+ * gfortran.h (symbol_attribute): Add omp_declare_target_indirect
+ field.
+ (struct gfc_omp_clauses): Add indirect field.
+ * openmp.cc (omp_mask2): Add OMP_CLAUSE_INDIRECT.
+ (gfc_match_omp_clauses): Match indirect clause.
+ (OMP_DECLARE_TARGET_CLAUSES): Add OMP_CLAUSE_INDIRECT.
+ (gfc_match_omp_declare_target): Check omp_device_type and apply
+ omp_declare_target_indirect attribute to symbol if indirect clause
+ active. Show warning if there are only device_type and/or indirect
+ clauses on the directive.
+ * trans-decl.cc (add_attributes_to_decl): Add 'omp declare target
+ indirect' attribute if symbol has indirect attribute set.
+
+2024-02-14 Steve Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/105847
+ * trans-io.cc (transfer_namelist_element): When building the
+ namelist object name, if the use rename attribute is set, use
+ the local name specified in the use statement.
+
+2024-02-14 Jakub Jelinek <jakub@redhat.com>
+
+ * error.cc (error_print): For u printing of ptrdiff_t,
+ print ptrdiff_t argument converted to unsigned long long and
+ masked with 2ULL * PTRDIFF_MAX + 1.
+
+2024-02-13 Tobias Burnus <tburnus@baylibre.com>
+
+ PR middle-end/113904
+ * trans-openmp.cc (gfc_trans_omp_declare_variant): Handle splitting of
+ OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
+ * openmp.cc (gfc_match_omp_context_selector): Likewise; rejects
+ non-const device_num/condition; improve diagnostic.
+
+2024-02-13 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113866
+ * trans-expr.cc (gfc_conv_procedure_call): When passing an optional
+ dummy argument to an optional dummy argument of a bind(c) procedure
+ and the dummy argument is passed via a CFI descriptor, no special
+ presence check and passing of a default NULL pointer is needed.
+
+2024-02-13 Steve Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/113883
+ * trans-array.cc (gfc_trans_deferred_array): Set length to zero,
+ avoiding extraneous diagnostics.
+
+2024-02-10 Jakub Jelinek <jakub@redhat.com>
+
+ * error.cc (error_print): Handle z and t modifiers on d, i and u.
+ * check.cc (gfc_check_transfer): Use %zd instead of %ld and casts to
+ long.
+ * primary.cc (gfc_convert_to_structure_constructor): Use %td instead
+ of %ld and casts to long.
+
+2024-02-10 Jakub Jelinek <jakub@redhat.com>
+
+ * trans-common.cc (build_common_decl): Use %wu instead of %lu and
+ casts to unsigned long.
+ * resolve.cc (resolve_ordinary_assign): Use %wd instead of %ld and
+ casts to long.
+ * array.cc (gfc_resolve_character_array_constructor): Likewise.
+ * data.cc (create_character_initializer): Likewise.
+
+2024-02-09 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113799
+ * arith.cc (reduce_unary): Remember any overflow encountered during
+ reduction of unary arithmetic operations on array constructors and
+ continue, and return error status, but terminate on serious errors.
+
+2024-01-28 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113377
+ * trans-expr.cc (conv_dummy_value): Treat NULL actual argument to
+ optional dummy with the VALUE attribute as not present.
+ (gfc_conv_procedure_call): Likewise.
+
+2024-01-27 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/104908
+ * trans-array.cc (gfc_conv_array_ref): Restrict use of transformed
+ descriptor (sym->backend_decl) to the unlimited polymorphic case.
+
+2024-01-24 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113377
+ * trans-expr.cc (conv_dummy_value): New.
+ (gfc_conv_procedure_call): Factor code for handling dummy arguments
+ with the VALUE attribute in the scalar case into conv_dummy_value().
+ Reuse and adjust for calling elemental procedures.
+
+2024-01-21 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113377
+ * trans-expr.cc (gfc_conv_procedure_call): Fix handling of optional
+ scalar arguments of intrinsic type with the VALUE attribute.
+
+2024-01-20 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/48776
+ PR fortran/111291
+ * parse.cc: Restore current interface to its previous value on error.
+
+2024-01-19 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113471
+ * trans-array.cc (array_bound_check_elemental): Array bounds check
+ shall apply here to elemental dimensions of an array section only.
+
+2024-01-13 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/67277
+ * trans-intrinsic.cc (gfc_conv_intrinsic_ishftc): Handle optional
+ dummy argument for SIZE passed to ISHFTC. Set default value to
+ BIT_SIZE(I) when missing.
+
+2024-01-13 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113305
+ * gfortran.h (gfc_loop_annot): New.
+ (gfc_iterator, gfc_forall_iterator): Use for annotation control.
+ * array.cc (gfc_copy_iterator): Adjust.
+ * gfortran.texi: Document annotations IVDEP, UNROLL n, VECTOR,
+ NOVECTOR as applied to DO CONCURRENT.
+ * parse.cc (parse_do_block): Parse annotations IVDEP, UNROLL n,
+ VECTOR, NOVECTOR as applied to DO CONCURRENT. Apply UNROLL only to
+ first loop control variable.
+ * trans-stmt.cc (iter_info): Use gfc_loop_annot.
+ (gfc_trans_simple_do): Adjust.
+ (gfc_trans_forall_loop): Annotate loops with IVDEP, UNROLL n,
+ VECTOR, NOVECTOR as needed for DO CONCURRENT.
+ (gfc_trans_forall_1): Handle loop annotations.
+
+2024-01-08 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/113245
+ * trans-intrinsic.cc (gfc_conv_intrinsic_size): Use
+ gfc_conv_expr_present() for proper check of optional DIM argument.
+
+2024-01-06 Harald Anlauf <anlauf@gmx.de>
+ José Rui Faustino de Sousa <jrfsousa@gmail.com>
+
+ PR fortran/96724
+ * iresolve.cc (gfc_resolve_repeat): Force conversion to
+ gfc_charlen_int_kind before call to gfc_multiply.
+
+2024-01-04 David Malcolm <dmalcolm@redhat.com>
+
+ * lang.opt.urls: New file, autogenerated by
+ regenerate-opt-urls.py.
+
+2024-01-03 Harald Anlauf <anlauf@gmx.de>
+
+ * trans-types.cc (gfc_get_nodesc_array_type): Clear used gmp
+ variables.
+
+2024-01-03 Jakub Jelinek <jakub@redhat.com>
+
+ * gfortranspec.cc (lang_specific_driver): Update copyright notice
+ dates.
+ * gfc-internals.texi: Bump @copying's copyright year.
+ * gfortran.texi: Ditto.
+ * intrinsic.texi: Ditto.
+ * invoke.texi: Ditto.
+
+Copyright (C) 2024 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.