mirror of git://gcc.gnu.org/git/gcc.git
2583 lines
94 KiB
Plaintext
2583 lines
94 KiB
Plaintext
2025-09-22 Steve Kargl <pault@gcc.gnu.org>
|
||
|
||
PR fortran/103508
|
||
* decl.cc (gfc_match_end): Remove only the current partial
|
||
rather than removing the entire sibling chain.
|
||
|
||
2025-09-21 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/109010
|
||
* st.cc (gfc_free_statement): Also free components expr3 and expr4.
|
||
|
||
2025-09-21 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/121161
|
||
* invoke.texi: Mention that -ffrontend-optimize is required
|
||
for -fexternal-blas64.
|
||
* options.cc (gfc_post_options): Fatal error if -fexternal-blas64
|
||
is specified without -ffrontend-optimize.
|
||
* trans-types.cc (gfc_init_kinds): Fatal error if -fexternal-blas64
|
||
is specified on a system which does not have 64-bit ptrdiff_t.
|
||
|
||
2025-09-21 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/108581
|
||
* trans-array.cc (gfc_conv_expr_descriptor): Take the dynamic
|
||
string length into account when deriving the dataptr offset for
|
||
a deferred-length character array.
|
||
|
||
2025-09-20 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/83746
|
||
* trans-decl.cc (gfc_trans_deferred_vars): If a procedure with
|
||
an non-allocatable, non-pointer explicit PDT result has no
|
||
default initializer, the parameterized components should be
|
||
allocated.
|
||
|
||
2025-09-19 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/83746
|
||
* trans-array.cc (structure_alloc_comps): Add the pre and post
|
||
blocks to 'fnblock' for all the evaluations of parameterized
|
||
expressions in PDT component allocatation.
|
||
|
||
2025-09-18 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/114815
|
||
* decl.cc (gfc_get_pdt_instance): Copy the contents of 'tb' and
|
||
not the pointer.
|
||
* primary.cc (gfc_match_rvalue): If there is only one actual
|
||
argument list, use if for the type spec parameter values. If
|
||
this fails try the default type specification values and use
|
||
the actual arguments for the component values.
|
||
* resolve.cc (build_init_assign): Don't initialize implicit PDT
|
||
function results.
|
||
|
||
2025-09-17 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* frontend-passes.cc (optimize_namespace): Handle
|
||
flag_external_blas64.
|
||
(call_external_blas): If flag_external_blas is set, use
|
||
gfc_integer_4_kind as the argument kind, gfc_integer_8_kind otherwise.
|
||
* gfortran.h (gfc_integer_8_kind): Define.
|
||
* invoke.texi: Document -fexternal-blas64.
|
||
* lang.opt: Add -fexternal-blas64.
|
||
* lang.opt.urls: Regenerated.
|
||
* options.cc (gfc_post_options): -fexternal-blas is incompatible
|
||
with -fexternal-blas64.
|
||
|
||
2025-09-15 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/83763
|
||
* trans-decl.cc (gfc_trans_deferred_vars): Ensure that the
|
||
parameterized components of PDTs that do not have allocatable
|
||
components are deallocated on leaving scope.
|
||
* trans-expr.cc (gfc_trans_assignment_1): Do a dependency check
|
||
on PDT assignments. If there is a dependency between lhs and
|
||
rhs, deallocate the lhs parameterized components after the rhs
|
||
has been evaluated.
|
||
|
||
2025-09-14 Yuao Ma <c8ef@outlook.com>
|
||
|
||
* dump-parse-tree.cc (show_expr): Add support for EXPR_CONDITIONAL.
|
||
* expr.cc (gfc_get_conditional_expr): Add cond-expr constructor.
|
||
(gfc_copy_expr, free_expr0, gfc_is_constant_expr,
|
||
simplify_conditional, gfc_simplify_expr, gfc_check_init_expr,
|
||
check_restricted, gfc_traverse_expr): Add support for EXPR_CONDITIONAL.
|
||
* frontend-passes.cc (gfc_expr_walker): Ditto.
|
||
* gfortran.h (enum expr_t): Add EXPR_CONDITIONAL.
|
||
(gfc_get_operator_expr): Format fix.
|
||
(gfc_get_conditional_expr): New decl.
|
||
* matchexp.cc
|
||
(match_conditional, match_primary): Parsing for EXPR_CONDITIONAL.
|
||
* module.cc (mio_expr): Add support for EXPR_CONDITIONAL.
|
||
* resolve.cc (resolve_conditional, gfc_resolve_expr): Ditto.
|
||
* trans-array.cc (gfc_walk_conditional_expr, gfc_walk_subexpr): Ditto.
|
||
* trans-expr.cc
|
||
(gfc_conv_conditional_expr): Codegen for EXPR_CONDITIONAL.
|
||
(gfc_apply_interface_mapping_to_expr, gfc_conv_expr,
|
||
gfc_conv_expr_reference): Add support for EXPR_CONDITIONAL.
|
||
|
||
2025-09-11 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/121616
|
||
* primary.cc (gfc_variable_attr): Properly set dimension attribute
|
||
from a component ref.
|
||
|
||
2025-09-09 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
* trans-intrinsic.cc (conv_intrinsic_fstat_lstat_stat_sub): Init
|
||
some variables.
|
||
|
||
2025-09-09 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/82480
|
||
* check.cc (error_unsupported_kind): Helper function to report an
|
||
unsupported kind of an argument.
|
||
(check_minrange4): Helper function to report if an integer variable
|
||
does not have a decimal range of at least four.
|
||
(gfc_check_fstat): Adjust checks for generalization of instrinsic
|
||
function FSTAT.
|
||
(gfc_check_fstat_sub): Likewise for subroutine FSTAT.
|
||
(gfc_check_stat): Likewise for functio STAT.
|
||
(gfc_check_stat_sub): Likewise for subroutine STAT.
|
||
* intrinsic.texi: Document generalized versions of intrinsics
|
||
STAT/LSTAT/FSTAT.
|
||
* iresolve.cc (gfc_resolve_stat): STAT function result shall have
|
||
the same kind as the VALUES argument.
|
||
(gfc_resolve_lstat): Likewise for LSTAT.
|
||
(gfc_resolve_fstat): Likewise for FSTAT.
|
||
(gfc_resolve_stat_sub): Resolve proper library subroutine for STAT.
|
||
(gfc_resolve_lstat_sub): Likewise for LSTAT.
|
||
* trans-decl.cc (gfc_build_intrinsic_function_decls): Declare
|
||
fndecls for required subroutines in runtine library.
|
||
* trans-intrinsic.cc (conv_intrinsic_fstat_lstat_stat_sub): Emit
|
||
runtime wrapper code for the library functions, taking care of
|
||
possible kind conversion of the optional STATUS argument of the
|
||
subroutine versions of the intrinsics.
|
||
(gfc_conv_intrinsic_subroutine): Use it.
|
||
* trans.h (GTY): Declare prototypes.
|
||
|
||
2025-09-08 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/84008
|
||
* decl.cc (insert_parameter_exprs): Correct the typespec of new
|
||
variable declarations, where the type is set to BT_PROCEDURE as
|
||
a precaution for resolution of the whole program unit.
|
||
|
||
2025-09-06 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/84119
|
||
* resolve.cc (reset_array_ref_to_scalar): New function using
|
||
chunk broken out from gfc_resolve_ref.
|
||
(gfc_resolve_ref): Call the new function, the first time for
|
||
PDT type parameters and the second time for LEN inquiry refs.
|
||
|
||
2025-09-05 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/84432
|
||
PR fortran/114815
|
||
* expr.cc (gfc_check_assign_symbol): Check that components in a
|
||
PDT with a default initializer have type and length parameters
|
||
that reduce to constant integer expressions.
|
||
* trans-expr.cc (gfc_trans_assignment_1): Parameterized
|
||
components cannot have default initializers so they must be
|
||
allocated after initialization.
|
||
|
||
2025-09-05 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/83762
|
||
PR fortran/102457
|
||
* decl.cc (gfc_get_pdt_instance): Check that variable PDT parm
|
||
expressions are of type integer. Note that the symbol must be
|
||
tested since the expression often appears as BT_PROCEDURE.
|
||
|
||
2025-09-03 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/121263
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_transfer): For an
|
||
unlimited polymorphic SOURCE to TRANSFER use saved descriptor
|
||
if possible.
|
||
|
||
2025-09-02 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/89707
|
||
* decl.cc (gfc_get_pdt_instance): Copy the typebound procedure
|
||
field from the PDT template. If the template interface has
|
||
kind=0, provide the new instance with an interface with a type
|
||
spec that points to that of the parameterized component.
|
||
(match_ppc_decl): When 'saved_kind_expr' this is a PDT and the
|
||
expression should be copied to the component kind_expr.
|
||
* gfortran.h: Define gfc_get_tbp.
|
||
|
||
2025-09-02 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/87669
|
||
* expr.cc (gfc_spec_list_type): If no LEN components are seen,
|
||
unconditionally return 'SPEC_ASSUMED'. This suppresses an
|
||
invalid error in match.cc(gfc_match_type_is).
|
||
|
||
2025-09-01 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/121727
|
||
* trans-expr.cc (gfc_const_length_character_type_p): New helper
|
||
function.
|
||
(conv_dummy_value): Use it to determine if a character actual
|
||
argument has a constant length. If a character actual argument is
|
||
constant and longer than the dummy, truncate it at compile time.
|
||
|
||
2025-08-31 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/99709
|
||
* trans-array.cc (structure_alloc_comps): For the case
|
||
COPY_ALLOC_COMP, do a deep copy of non-allocatable PDT arrays
|
||
Suppress the use of 'duplicate_allocatable' for PDT arrays.
|
||
* trans-expr.cc (conv_dummy_value): When passing to a PDT dummy
|
||
with the VALUE attribute, do a deep copy to ensure that
|
||
parameterized components are reallocated.
|
||
|
||
2025-08-29 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/93330
|
||
* interface.cc (get_sym_storage_size): Add argument size_known to
|
||
indicate that the storage size could be successfully determined.
|
||
(get_expr_storage_size): Likewise.
|
||
(gfc_compare_actual_formal): Use them to handle zero-sized dummy
|
||
and actual arguments.
|
||
If a character formal argument has the pointer or allocatable
|
||
attribute, or is an array that is not assumed or explicit size,
|
||
we generate an error by default unless -std=legacy is specified,
|
||
which falls back to just giving a warning.
|
||
If -Wcharacter-truncation is given, warn on a character actual
|
||
argument longer than the dummy. Generate an error for too short
|
||
scalar character arguments if -std=f* is given instead of just a
|
||
warning.
|
||
|
||
2025-08-28 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/82843
|
||
* intrinsic.cc (gfc_convert_type_warn): If the 'from_ts' is a
|
||
PDT instance, copy the derived type to the target ts.
|
||
* resolve.cc (gfc_resolve_ref): A PDT component in a component
|
||
reference can be that of the pdt_template. Unconditionally use
|
||
component of the PDT instance to ensure that the backend_decl
|
||
is set during translation. Likewise if a component is
|
||
encountered that is a PDT template type, use the component
|
||
parmeters to convert to the correct PDT instance.
|
||
|
||
2025-08-28 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/82205
|
||
* decl.cc (gfc_get_pdt_instance): Copy the default initializer
|
||
for components that are not PDT parameters or parameterized. If
|
||
any component is a pointer or allocatable set the attributes
|
||
'pointer_comp' or 'alloc_comp' of the new PDT instance.
|
||
* primary.cc (gfc_match_rvalue): Implement the correct form of
|
||
PDT constructors with 'name (type parms)(component values)'.
|
||
* trans-array.cc (structure_alloc_comps): Apply scalar default
|
||
initializers. Array initializers await the coming change in PDT
|
||
representation.
|
||
* trans-io.cc (transfer_expr): Do not output the type parms of
|
||
a PDT in list directed output.
|
||
|
||
2025-08-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/114611
|
||
* io.cc: Issue an error on use of the H descriptor in
|
||
a format with -std=f95 or higher. Otherwise, issue a
|
||
warning.
|
||
|
||
2025-08-26 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
PR middle-end/118839
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Error if variant
|
||
is the same as base.
|
||
|
||
2025-08-26 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* openmp.cc (gfc_match_omp_declare_variant): Make check for a
|
||
missing "match" clause unconditional.
|
||
|
||
2025-08-21 Steven G. Kargl <kargl@gcc.gnu.org>
|
||
|
||
PR fortran/121627
|
||
* module.cc (create_int_parameter_array): Avoid NULL
|
||
pointer dereference and enhance error message.
|
||
|
||
2025-08-21 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/84122
|
||
PR fortran/85942
|
||
* parse.cc (parse_derived): PDT type parameters are not allowed
|
||
an explicit access specification and must appear before a
|
||
PRIVATE statement. If a PRIVATE statement is seen, mark all the
|
||
other components as PRIVATE.
|
||
* simplify.cc (get_kind): Convert a PDT KIND component into a
|
||
specification expression using the default initializer.
|
||
|
||
2025-08-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
* intrinsic.texi: Correct the example given for FRACTION.
|
||
Move the TEAM_NUMBER section to after the TANPI to align
|
||
with the order gven in the index.
|
||
|
||
2025-08-16 H.J. Lu <hjl.tools@gmail.com>
|
||
|
||
PR fortran/107421
|
||
* trans-common.cc (build_common_decl): Call set_decl_tls_model
|
||
after processing a variable.
|
||
* trans-decl.cc (gfc_finish_var_decl): Likewise.
|
||
(get_proc_pointer_decl): Likewise.
|
||
|
||
2025-08-13 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/89092
|
||
* resolve.cc (was_declared): Add subroutine attribute.
|
||
|
||
2025-08-12 Yuao Ma <c8ef@outlook.com>
|
||
|
||
* check.cc (gfc_check_c_f_pointer): Check lower arg legitimacy.
|
||
* intrinsic.cc (add_subroutines): Teach c_f_pointer about lower arg.
|
||
* intrinsic.h (gfc_check_c_f_pointer): Add lower arg.
|
||
* intrinsic.texi: Update lower arg for c_f_pointer.
|
||
* trans-intrinsic.cc (conv_isocbinding_subroutine): Add logic handle lower.
|
||
|
||
2025-08-11 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/121398
|
||
* resolve.cc (check_pdt_args): New function.
|
||
(check_generic_tbp_ambiguity): Use it to ensure that args to
|
||
typebound procedures that do not have the same declared type as
|
||
the containing derived type have 'pass1/2' set to null. This
|
||
avoids false ambiguity errors.
|
||
(resolve_typebound_procedure): Do not generate a wrong type
|
||
error for typebound procedures marked as pass if they are of a
|
||
different declared type to the containing pdt_type.
|
||
|
||
2025-08-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gfortran.h (gfc_case): Fix comment typo, singe -> single.
|
||
|
||
2025-08-09 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/121182
|
||
* decl.cc (match_generic_stmt): New function based on original
|
||
gfc_match_generic but feeding namespace rather than typebound
|
||
generics.
|
||
(match_typebound_generic): Renamed original gfc_match_generic.
|
||
(gfc_match_generic): New function that selects between type
|
||
bound generic and other generic statements and calls one of the
|
||
above two functions as appropriate.
|
||
* parse.cc (decode_specification_statement): Allow generic
|
||
statements.
|
||
(parse_spec): Accept a generic statement in a specification
|
||
block.
|
||
|
||
2025-08-05 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
* trans-stmt.cc (trans_associate_var): Remove overwrite of
|
||
the polymorphic associate variable's array descriptor offset.
|
||
|
||
2025-08-05 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
* trans-array.cc (trans_array_constructor): Remove the update of
|
||
the array descriptor upper bound after array constructor
|
||
expansion.
|
||
|
||
2025-08-05 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
* trans-array.cc (gfc_conv_expr_descriptor): Remove
|
||
isolated initialization of the span field before passing to
|
||
the function that will do the initialization.
|
||
|
||
2025-08-05 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
* trans-decl.cc (gfc_trans_deferred_vars): Don't default
|
||
initialize the span of local pointer arrays.
|
||
|
||
2025-08-05 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
* trans-stmt.cc (trans_associate_var): Remove overwrite of the
|
||
span field of the associate variable's array descriptor.
|
||
|
||
2025-08-05 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
* trans-expr.cc (gfc_trans_pointer_assignment): Remove overwrite
|
||
of the span after assignment of the array descriptor in the
|
||
polymorphic function result to non-polymorphic pointer case.
|
||
|
||
2025-08-05 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans.h (gfc_se): Remove field use_offset.
|
||
* trans-expr.cc (gfc_conv_intrinsic_to_class): Remove use_offset
|
||
initialization.
|
||
(gfc_conv_procedure_call): Likewise.
|
||
* trans-stmt.cc (trans_associate_var): Likewise.
|
||
|
||
2025-08-05 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans-array.cc (gfc_alloc_allocatable_for_assignment): Use the
|
||
offset setter instead of generating a write to the offset.
|
||
(gfc_conv_array_parameter): Use the offset setter instead of
|
||
generating a write to the value returned by the offset getter.
|
||
* trans-expr.cc (gfc_trans_alloc_subarray_assign): Likewise.
|
||
|
||
2025-08-05 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans-array.cc (gfc_conv_descriptor_data_addr): Remove.
|
||
* trans-array.h (gfc_conv_descriptor_data_addr): Remove.
|
||
* trans-decl.cc (gfc_trans_deferred_vars): Use
|
||
gfc_conv_descriptor_data_get.
|
||
|
||
2025-08-05 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans.cc (gfc_finalize_tree_expr): Use the data setter instead
|
||
of writing to the value returned by the data getter.
|
||
* trans-decl.cc (gfc_trans_deferred_vars): Likewise.
|
||
* trans-stmt.cc (trans_associate_var): Use the data setter
|
||
instead of writing to the value dereferenced from the data
|
||
address.
|
||
|
||
2025-08-01 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans-decl.cc (gfc_trans_deferred_vars): Fix closing brace in
|
||
a comment.
|
||
|
||
2025-07-31 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
PR fortran/121342
|
||
* trans-expr.cc (gfc_conv_subref_array_arg): Remove offset
|
||
update.
|
||
(gfc_conv_procedure_call): For polymorphic functions, move the
|
||
scalarizer descriptor information...
|
||
* trans-array.cc (gfc_add_loop_ss_code): ... here, and evaluate
|
||
the bounds to fresh variables.
|
||
(get_class_info_from_ss): Remove offset update.
|
||
(gfc_conv_ss_startstride): Don't set a zero value for function
|
||
result upper bounds.
|
||
(late_set_loop_bounds): New.
|
||
(gfc_conv_loop_setup): If the bounds of a function result have
|
||
been set, and no other array provided loop bounds for a
|
||
dimension, use the function result bounds as loop bounds for
|
||
that dimension.
|
||
(gfc_set_delta): Don't skip delta setting for polymorphic
|
||
function results.
|
||
|
||
2025-07-30 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
* trans-array.cc (gfc_array_init_size): Remove the nelems
|
||
argument.
|
||
(gfc_array_allocate): Update caller. Remove the nelems
|
||
argument.
|
||
* trans-stmt.cc (gfc_trans_allocate): Update caller. Remove the
|
||
nelems variable.
|
||
* trans-array.h (gfc_array_allocate): Update prototype.
|
||
|
||
2025-07-30 Yuao Ma <c8ef@outlook.com>
|
||
|
||
* check.cc (gfc_check_split): Argument check for SPLIT.
|
||
* gfortran.h (enum gfc_isym_id): Define GFC_ISYM_SPLIT.
|
||
* intrinsic.cc (add_subroutines): Register SPLIT intrinsic.
|
||
* intrinsic.h (gfc_check_split): New decl.
|
||
(gfc_resolve_split): Ditto.
|
||
* intrinsic.texi: SPLIT documentation.
|
||
* iresolve.cc (gfc_resolve_split): Add resolved_sym for SPLIT.
|
||
* trans-decl.cc (gfc_build_intrinsic_function_decls): Add decl for
|
||
SPLIT in libgfortran.
|
||
* trans-intrinsic.cc (conv_intrinsic_split): SPLIT codegen.
|
||
(gfc_conv_intrinsic_subroutine): Handle SPLIT case.
|
||
* trans.h (GTY): Declare gfor_fndecl_string_split{, _char4}.
|
||
|
||
2025-07-27 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/121185
|
||
* trans-expr.cc (gfc_trans_assignment_1): Use the same condition
|
||
to set the is_alloc_lhs flag and to decide to generate
|
||
reallocation code. Add explicit call to gfc_fix_class_refs
|
||
before evaluating the condition.
|
||
|
||
2025-07-27 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/121185
|
||
* trans-array.cc (set_factored_descriptor_value): Also trigger
|
||
the saving of the previously selected reference on encountering
|
||
an INDIRECT_REF. Extract the saving code...
|
||
(save_ref): ... here as a new function.
|
||
|
||
2025-07-27 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/121185
|
||
* trans-expr.cc (gfc_get_class_from_expr): Give up class
|
||
container lookup on the second COMPONENT_REF after an array
|
||
descriptor.
|
||
|
||
2025-07-25 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* error.cc: Make diagnostics::context::m_source_printing private.
|
||
|
||
2025-07-25 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* cpp.cc: Update usage of "diagnostic_info" to explicitly refer to
|
||
"diagnostics::diagnostic_info".
|
||
* error.cc: Likewise.
|
||
|
||
2025-07-25 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* cpp.cc: Update for diagnostic_t becoming
|
||
enum class diagnostics::kind.
|
||
* error.cc: Likewise.
|
||
* options.cc: Likewise.
|
||
|
||
2025-07-25 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* cpp.cc: Update for renaming of
|
||
diagnostic_option_id to diagnostics::option_id.
|
||
|
||
2025-07-25 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* error.cc: Update for move of diagnostic-color.h to
|
||
diagnostics/color.h.
|
||
|
||
2025-07-25 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* error.cc: Update for diagnostic_context becoming
|
||
diagnostics::context.
|
||
|
||
2025-07-25 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* error.cc: Update to add "m_" prefix to fields of
|
||
diagnostic_info throughout.
|
||
|
||
2025-07-25 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* error.cc: Update for move of diagnostics output formats into
|
||
namespace "diagnostics" as "sinks".
|
||
* gfortran.h: Likewise.
|
||
|
||
2025-07-23 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/121203
|
||
* trans-expr.cc (gfc_conv_procedure_call): Obtain the character
|
||
length of an assumed character length procedure from the typespec
|
||
of the actual argument even if there is no explicit interface.
|
||
|
||
2025-07-21 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans-decl.cc (gfc_trans_deferred_vars): Fix indentation.
|
||
|
||
2025-07-21 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/119106
|
||
* expr.cc (simplify_constructor): Do not simplify constants.
|
||
(gfc_simplify_expr): Continue to simplify expression when an
|
||
iterator is present.
|
||
|
||
2025-07-21 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans-array.cc (gfc_conv_ss_descriptor): Move the descriptor
|
||
expression initialisation...
|
||
(set_factored_descriptor_value): ... to this new function.
|
||
Before initialisation, walk the reference expression passed as
|
||
argument and save some of its subexpressions to a variable.
|
||
(substitute_t): New struct.
|
||
(maybe_substitute_expr): New function.
|
||
(substitute_subexpr_in_expr): New function.
|
||
|
||
2025-07-18 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/121145
|
||
* trans-expr.cc (gfc_conv_procedure_call): Do not create pointer
|
||
check for proc-pointer actual passed to optional dummy.
|
||
|
||
2025-07-16 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/121060
|
||
* interface.cc (matching_typebound_op): Defer determination of
|
||
specific procedure until resolution by returning NULL.
|
||
|
||
2025-07-16 Steve Kargl <sgk@troutmask.apl.washington.edu>
|
||
|
||
* decl.cc (gfc_match_import): Correct minor whitespace snafu
|
||
and fix NULL pointer dereferences in two places.
|
||
|
||
2025-07-15 Kwok Cheung Yeung <kcyeung@baylibre.com>
|
||
|
||
PR fortran/104428
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Check that proc_st
|
||
is non-NULL before dereferencing. Add line number to error message.
|
||
|
||
2025-07-15 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* gfortran.h (gfc_symbol): Remove field allocated_in_scope.
|
||
* trans-array.cc (gfc_array_allocate): Don't set it.
|
||
(gfc_alloc_allocatable_for_assignment): Likewise.
|
||
Generate the unallocated descriptor bounds initialisation
|
||
before the opening of the reallocation code block. Create a
|
||
variable and use it as additional condition to the unallocated
|
||
descriptor bounds initialisation.
|
||
|
||
2025-07-15 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans-array.cc (gfc_conv_ss_descriptor): Don't evaluate
|
||
offset and data to a variable if is_alloc_lhs is set. Move the
|
||
existing evaluation decision condition for data...
|
||
(save_descriptor_data): ... here as a new predicate.
|
||
(evaluate_bound): Add argument save_value. Omit the evaluation
|
||
of the value to a variable if that argument isn't set.
|
||
(gfc_conv_expr_descriptor): Update caller.
|
||
(gfc_conv_section_startstride): Update caller. Set save_value
|
||
if is_alloc_lhs is not set. Omit the evaluation of stride to a
|
||
variable if save_value isn't set.
|
||
(gfc_set_delta): Omit the evaluation of delta to a variable
|
||
if is_alloc_lhs is set.
|
||
(gfc_is_reallocatable_lhs): Return false if flag_realloc_lhs
|
||
isn't set.
|
||
(gfc_alloc_allocatable_for_assignment): Don't update
|
||
the variables that may be stored in saved_offset, delta, and
|
||
data. Call instead...
|
||
(update_reallocated_descriptor): ... this new procedure.
|
||
* trans-expr.cc (gfc_trans_assignment_1): Don't omit setting the
|
||
is_alloc_lhs flag if the right hand side is an intrinsic
|
||
function. Clear the flag if the right hand side is scalar.
|
||
|
||
2025-07-15 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans-expr.cc (gfc_trans_assignment_1): Generate array
|
||
reallocation code before entering the scalarisation loops.
|
||
|
||
2025-07-15 Filip Kastl <fkastl@suse.cz>
|
||
|
||
* resolve.cc (resolve_select_type): Fix indentation.
|
||
|
||
2025-07-12 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* invoke.texi (-Wsurprising): Note about OpenACC warning
|
||
related to PARAMATER.
|
||
* openmp.cc (resolve_omp_clauses, gfc_resolve_oacc_declare):
|
||
Accept PARAMETER for OpenACC but add surprising warning.
|
||
* trans-openmp.cc (gfc_trans_omp_variable_list,
|
||
gfc_trans_omp_clauses): Ignore PARAMETER inside clauses.
|
||
|
||
2025-07-11 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/106035
|
||
* decl.cc (build_sym): Emit an error if a symbol associated by
|
||
an IMPORT, ONLY or IMPORT, all statement is being redeclared.
|
||
(gfc_match_import): Parse and check the F2018 versions of the
|
||
IMPORT statement. For scopes other than and interface body, if
|
||
the symbol cannot be found in the host scope, generate it and
|
||
set it up such that gfc_fixup_sibling_symbols can transfer its
|
||
'imported attribute' if it turnes out to be a not yet parsed
|
||
procedure. Test for violations of C897-8100.
|
||
* gfortran.h : Add 'import_only' to the gfc_symtree structure.
|
||
Add the enum, 'importstate', which is used for values the new
|
||
field 'import_state' in gfc_namespace.
|
||
* parse.cc (gfc_fixup_sibling_symbols): Transfer the attribute
|
||
'imported' to the new symbol.
|
||
* resolve.cc (check_sym_import_status, check_import_status):
|
||
New functions to test symbols and expressions for violations of
|
||
F2018:C8102.
|
||
(resolve_call): Test the 'resolved_sym' against C8102 by a call
|
||
to 'check_sym_import_status'.
|
||
(gfc_resolve_expr): If the expression is OK and an IMPORT
|
||
statement has been registered in the current scope, test C102
|
||
by calling 'check_import_status'.
|
||
(resolve_select_type): Test the declared derived type in TYPE
|
||
IS and CLASS IS statements.
|
||
|
||
2025-07-08 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/120637
|
||
* class.cc (finalize_component): Return true, when a finalizable
|
||
component was detect and do not free it.
|
||
|
||
2025-07-07 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
* trans-intrinsic.cc (conv_intrinsic_move_alloc): Add pre and
|
||
post code for the FROM and TO arguments.
|
||
|
||
2025-07-04 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* io.cc (format_asterisk): Add a brace around static initialization
|
||
location part of the field locus.
|
||
|
||
2025-07-03 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/120843
|
||
* resolve.cc (resolve_operator): Remove conformability check,
|
||
because it is not in the standard.
|
||
|
||
2025-07-01 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
* coarray.cc (check_add_new_component): Treat pure and elemental
|
||
intrinsic functions the same as non-intrinsic ones.
|
||
(create_caf_add_data_parameter_type): Fix front-end memleaks.
|
||
* trans-intrinsic.cc (conv_caf_func_index): Likewise.
|
||
|
||
2025-07-01 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/120847
|
||
* coarray.cc (check_add_new_comp_handle_array): Make the count
|
||
of components static to be able to create more than one. Create
|
||
an array component only for array expressions.
|
||
|
||
2025-07-01 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/120843
|
||
* resolve.cc (resolve_operator): Report inconsistent coranks
|
||
only when not referencing this_image.
|
||
(gfc_op_rank_conformable): Treat coranks as inconformable only
|
||
when a coindex other then implicit this_image is used.
|
||
|
||
2025-06-27 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/120784
|
||
* interface.cc (gfc_match_end_interface): Detect empty local_name.
|
||
|
||
2025-06-26 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* match.cc (gfc_match_nullify): Initialize p to NULL;
|
||
|
||
2025-06-26 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
* trans.cc (gfc_allocate_using_malloc): Prevent possible memory
|
||
leak when allocation was already done.
|
||
|
||
2025-06-26 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
* resolve.cc (resolve_fl_derived0): Do not create the token
|
||
component when not in coarray lib mode.
|
||
* trans-types.cc: Do not access the token when not in coarray
|
||
lib mode.
|
||
|
||
2025-06-26 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/120711
|
||
* trans-array.cc (gfc_trans_array_ctor_element): Store the value
|
||
of the offset for reuse.
|
||
|
||
2025-06-24 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* trans-stmt.cc (gfc_trans_call_acc_attach_detach): New.
|
||
(gfc_trans_call): Call it.
|
||
|
||
2025-06-24 Harald Anlauf <anlauf@gmx.de>
|
||
Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/120743
|
||
* trans-expr.cc (gfc_conv_substring): Substring indices are of
|
||
type gfc_charlen_type_node. Convert to size_type_node for
|
||
pointer arithmetic only after offset adjustments have been made.
|
||
|
||
2025-06-24 Mikael Morin <morin-mikael@orange.fr>
|
||
|
||
* misc.cc (gfc_var_name_for_select_type_temp): New function.
|
||
* gfortran.h (gfc_var_name_for_select_type_temp): Declare it.
|
||
* resolve.cc (resolve_select_type): Pick a discriminating name
|
||
from the SELECT TYPE variable reference and use it in the name
|
||
of the temporary variable that is generated. Truncate name to
|
||
the buffer size.
|
||
* match.cc (select_type_set_tmp): Likewise. Pass the
|
||
discriminating name...
|
||
(select_intrinsic_set_tmp): ... to this function. Use the
|
||
discriminating name likewise. Augment the buffer size to match
|
||
that of select_type_set_tmp and resolve_select_type.
|
||
|
||
2025-06-23 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* openmp.cc (OACC_WAIT_CLAUSES): Add if clause.
|
||
* trans-openmp.cc (gfc_trans_oacc_wait_directive): Handle it.
|
||
|
||
2025-06-23 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/120784
|
||
* interface.cc (gfc_match_end_interface): If a use-associated
|
||
symbol is renamed, use the local_name for checking.
|
||
|
||
2025-06-19 Mikael Morin <mikael@gcc.gnu.org>
|
||
|
||
PR fortran/120713
|
||
* trans-array.cc (gfc_trans_deferred_array): Statically
|
||
initialize deferred length variable for SAVEd character arrays.
|
||
|
||
2025-06-18 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/82480
|
||
* check.cc (gfc_check_fstat): Extend checks to INTENT(OUT) arguments.
|
||
(gfc_check_fstat_sub): Likewise.
|
||
(gfc_check_stat): Likewise.
|
||
(gfc_check_stat_sub): Likewise.
|
||
* intrinsic.texi: Adjust documentation.
|
||
|
||
2025-06-16 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/51961
|
||
* resolve.cc (conformable_arrays): Use modified rank check when
|
||
MOLD= expression is given.
|
||
|
||
2025-06-12 Yuao Ma <c8ef@outlook.com>
|
||
Steven G. Kargl <kargl@gcc.gnu.org>
|
||
|
||
PR fortran/113152
|
||
* intrinsic.texi: Document new half-revolution trigonometric
|
||
functions. Reorder doc for atand.
|
||
|
||
2025-06-06 Tobias Burnus <tburnus@baylibre.com>
|
||
Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* f95-lang.cc (ATTR_PURE_NOTHROW_LIST): Define.
|
||
* trans-expr.cc (get_builtin_fn): Handle omp_get_num_devices
|
||
and omp_get_intrinsic_device.
|
||
* gfortran.h (gfc_option_t): Add disable_omp_... for them.
|
||
* options.cc (gfc_handle_option): Handle them with
|
||
-fno-builtin-.
|
||
|
||
2025-06-04 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/120483
|
||
* trans-expr.cc (gfc_conv_substring): Use pointer arithmetic on
|
||
static allocatable char arrays.
|
||
|
||
2025-06-03 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/99838
|
||
* data.cc (gfc_assign_data_value): For a new initializer use the
|
||
location from the constructor as fallback.
|
||
|
||
2025-05-30 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/102599
|
||
PR fortran/114022
|
||
* expr.cc (simplify_complex_array_inquiry_ref): Helper function for
|
||
simplification of inquiry references (%re/%im) of constant complex
|
||
arrays.
|
||
(find_inquiry_ref): Use it for handling %re/%im inquiry references
|
||
of complex arrays.
|
||
(scalarize_intrinsic_call): Fix frontend memleak.
|
||
* primary.cc (gfc_match_varspec): When the reference is NULL, the
|
||
previous simplification has succeeded in evaluating inquiry
|
||
references also of arrays.
|
||
|
||
2025-05-30 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/120355
|
||
* interface.cc (compare_parameter): If the global function has a
|
||
result clause, take typespec from there for the comparison against
|
||
the dummy argument.
|
||
|
||
2025-05-30 Julian Brown <julian@codesourcery.com>
|
||
Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* parse.cc (tree.h, fold-const.h, tree-hash-traits.h): Add includes
|
||
(for additions to omp-general.h).
|
||
|
||
2025-05-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/120049
|
||
* check.cc(check_c_ptr_2): Rephrase error message
|
||
for clarity.
|
||
|
||
2025-05-28 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/113152
|
||
* simplify.cc (gfc_simplify_cospi, gfc_simplify_sinpi): Avoid using
|
||
mpfr_fmod_ui in the MPFR < 4.2.0 version.
|
||
|
||
2025-05-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/119856
|
||
* io.cc: Set missing comma error checks to STD_STD_LEGACY.
|
||
|
||
2025-05-28 Yuao Ma <c8ef@outlook.com>
|
||
Steven G. Kargl <kargl@gcc.gnu.org>
|
||
|
||
PR fortran/113152
|
||
* gfortran.h (enum gfc_isym_id): Add new enum.
|
||
* intrinsic.cc (add_functions): Register new intrinsics. Changing the call
|
||
from gfc_resolve_trigd{,2} to gfc_resolve_trig{,2}.
|
||
* intrinsic.h (gfc_simplify_acospi, gfc_simplify_asinpi,
|
||
gfc_simplify_asinpi, gfc_simplify_atanpi, gfc_simplify_atan2pi,
|
||
gfc_simplify_cospi, gfc_simplify_sinpi, gfc_simplify_tanpi): New.
|
||
(gfc_resolve_trig): Rename from gfc_resolve_trigd.
|
||
(gfc_resolve_trig2): Rename from gfc_resolve_trigd2.
|
||
* iresolve.cc (gfc_resolve_trig): Rename from gfc_resolve_trigd.
|
||
(gfc_resolve_trig2): Rename from gfc_resolve_trigd2.
|
||
* mathbuiltins.def: Add 7 new math builtins and re-align.
|
||
* simplify.cc (gfc_simplify_acos, gfc_simplify_asin,
|
||
gfc_simplify_acosd, gfc_simplify_asind): Revise error message.
|
||
(gfc_simplify_acospi, gfc_simplify_asinpi,
|
||
gfc_simplify_asinpi, gfc_simplify_atanpi, gfc_simplify_atan2pi,
|
||
gfc_simplify_cospi, gfc_simplify_sinpi, gfc_simplify_tanpi): New.
|
||
|
||
2025-05-27 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/101735
|
||
* primary.cc (gfc_match_varspec): Correct order of logic.
|
||
|
||
2025-05-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/120049
|
||
* check.cc (gfc_check_c_associated): Use new helper functions.
|
||
Only call check_c_ptr_1 if optional c_ptr_2 tests succeed.
|
||
(check_c_ptr_1): Handle only c_ptr_1 checks.
|
||
(check_c_ptr_2): Expand checks for c_ptr_2 and handle cases
|
||
where there is no derived pointer in the gfc_expr and check
|
||
the inmod_sym_id only if it exists.
|
||
* misc.cc (gfc_typename): Handle the case for BT_VOID rather
|
||
than throw an internal error.
|
||
|
||
2025-05-27 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/101735
|
||
* expr.cc (find_inquiry_ref): If an inquiry reference applies to
|
||
a substring, use that, and calculate substring length if needed.
|
||
* primary.cc (extend_ref): Also handle attaching to end of
|
||
reference chain for appending.
|
||
(gfc_match_varspec): Discrimate between arrays of character and
|
||
substrings of them. If a substring is taken from a character
|
||
component of a derived type, get the proper typespec so that
|
||
inquiry references work correctly.
|
||
(gfc_match_rvalue): Handle corner case where we hit a seemingly
|
||
dangling '%' and missed an inquiry reference. Try another match.
|
||
|
||
2025-05-27 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
PR other/116792
|
||
* error.cc (gfc_diagnostic_start_span): Update for diagnostic.h
|
||
changes.
|
||
|
||
2025-05-19 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/120099
|
||
* trans-types.cc (gfc_return_by_reference): Intrinsic functions
|
||
returning complex numbers may return their result by reference
|
||
with -ff2c.
|
||
|
||
2025-05-15 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/85750
|
||
* resolve.cc (resolve_symbol): Reorder conditions when to apply
|
||
default-initializers.
|
||
|
||
2025-05-15 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* trans-openmp.cc (gfc_omp_deep_mapping_do): Handle SSA_NAME if
|
||
a def_stmt is available.
|
||
|
||
2025-05-14 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/120139
|
||
* dump-parse-tree.cc (get_c_type_name): If no constant
|
||
size of an array exists, output an asterisk.
|
||
|
||
2025-05-14 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/120107
|
||
* dump-parse-tree.cc (write_type): Do not dump non-interoperable
|
||
types.
|
||
|
||
2025-05-14 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/120225
|
||
* simplify.cc (gfc_simplify_cotand): Fix used argument in
|
||
mpfr_tanu call.
|
||
|
||
2025-05-14 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/120225
|
||
* simplify.cc: Include "trigd_fe.inc" only with MPFR < 4.2.0.
|
||
(rad2deg, rad2deg): Only define if MPFR < 4.2.0.
|
||
(gfc_simplify_acosd, gfc_simplify_asind, gfc_simplify_atand,
|
||
gfc_simplify_atan2d, gfc_simplify_cosd, gfc_simplify_tand,
|
||
gfc_simplify_cotand): Use mpfr_...u functions with MPFR >= 4.2.0.
|
||
|
||
2025-05-13 Yuao Ma <c8ef@outlook.com>
|
||
Steven G. Kargl <kargl@gcc.gnu.org>
|
||
|
||
PR fortran/113413
|
||
* intrinsic.cc (do_check): Minor doc polish.
|
||
(add_functions): Add atand(y, x) mapping.
|
||
* intrinsic.texi: Update atand example.
|
||
|
||
2025-05-13 Jakub Jelinek <jakub@redhat.com>
|
||
Daniil Kochergin <daniil2472s@gmail.com>
|
||
Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/120191
|
||
* trans-intrinsic.cc (strip_kind_from_actual): Remove.
|
||
(gfc_conv_intrinsic_minmaxloc): Don't call strip_kind_from_actual.
|
||
Free and clear kind_arg->expr if non-NULL. Set back_arg->name to
|
||
"%VAL" instead of a loop looking for last argument. Remove actual
|
||
variable, use array_arg instead. Free and clear dim_arg->expr if
|
||
non-NULL for BT_CHARACTER cases instead of using a loop.
|
||
|
||
2025-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/120163
|
||
* gfortran.h: Add formal_resolved to gfc_symbol.
|
||
* resolve.cc (gfc_resolve_formal_arglist): Set it.
|
||
(resolve_function): Do not call gfc_get_formal_from_actual_arglist
|
||
if we already resolved a formal arglist.
|
||
(resolve_call): Likewise.
|
||
|
||
2025-05-10 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/102891
|
||
* dependency.cc (gfc_ref_needs_temporary_p): Within an array
|
||
reference, inquiry references of complex variables generally
|
||
need a temporary.
|
||
|
||
2025-05-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/120193
|
||
* trans-types.cc (gfc_init_types): For flag_unsigned use
|
||
build_distinct_type_copy or build_variant_type_copy from
|
||
gfc_character_types[index_char] if index_char > -1 instead of
|
||
gfc_character_types[index_char] or
|
||
gfc_build_unsigned_type (&gfc_unsigned_kinds[index]).
|
||
|
||
2025-05-08 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/120179
|
||
* match.cc (gfc_match_do): Do not attempt to match end-of-statement
|
||
twice.
|
||
|
||
2025-05-07 Paul Thomas <pault@gcc.gnu.org>
|
||
and Steven G. Kargl <kargl@gcc.gnu.org>
|
||
|
||
PR fortran/119948
|
||
* primary.cc (match_variable): Module procedures with sym the
|
||
same as result can be treated as variables, although marked
|
||
external.
|
||
|
||
2025-05-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/120049
|
||
* check.cc (gfc_check_c_associated): Modify checks to avoid
|
||
ICE and allow use, intrinsic :: iso_c_binding from a separate
|
||
module file.
|
||
|
||
2025-05-06 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/119928
|
||
* interface.cc (gfc_check_dummy_characteristics): Do not issue
|
||
error if one dummy symbol has been generated from an actual
|
||
argument and the other one has OPTIONAL, INTENT, ALLOCATABLE,
|
||
POINTER, TARGET, VALUE, ASYNCHRONOUS or CONTIGUOUS.
|
||
(gfc_get_formal_from_actual_arglist): Do nothing if symbol
|
||
is a class.
|
||
|
||
2025-05-04 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/119986
|
||
* expr.cc (is_subref_array): When searching for array references,
|
||
do not terminate early so that inquiry references to complex
|
||
components work.
|
||
* primary.cc (gfc_variable_attr): A substring reference can refer
|
||
to either a scalar or array character variable. Adjust search
|
||
accordingly.
|
||
|
||
2025-05-01 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/119948
|
||
* resolve.cc (gfc_impure_variable): The result of a module
|
||
procedure with an interface declaration is not impure even if
|
||
the current namespace is not the same as the symbol's.
|
||
|
||
2025-04-25 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/102900
|
||
* trans-decl.cc (gfc_generate_function_code): Use sym->result
|
||
when generating fake result decl for functions returning
|
||
allocatable or pointer results.
|
||
* trans-expr.cc (gfc_conv_procedure_call): When checking the
|
||
pointer status of an actual argument passed to a non-allocatable,
|
||
non-pointer dummy which is of type CLASS, do not check the
|
||
class container of the actual if it is just a procedure pointer.
|
||
(gfc_trans_pointer_assignment): Fix treatment of assignment to
|
||
NULL of a procedure pointer.
|
||
|
||
2025-04-23 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/119200
|
||
* check.cc (gfc_check_lcobound): Use locus from intrinsic_where.
|
||
(gfc_check_image_index): Same.
|
||
(gfc_check_num_images): Same.
|
||
(gfc_check_team_number): Same.
|
||
(gfc_check_this_image): Same.
|
||
(gfc_check_ucobound): Same.
|
||
|
||
2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
* match.cc (match_exit_cycle): Allow to exit team block.
|
||
(gfc_match_end_team): Create end_team node also without
|
||
parameter list.
|
||
* trans-intrinsic.cc (conv_stat_and_team): Team and team_number
|
||
only need to be a single pointer.
|
||
* trans-stmt.cc (trans_associate_var): Create a mapping coarray
|
||
token for coarray associations or it is not addressed correctly.
|
||
* trans.h (enum gfc_coarray_regtype): Add mapping mode to
|
||
coarray register.
|
||
|
||
2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
* check.cc (gfc_check_image_index): Check for team or
|
||
team_number correctnes.
|
||
(gfc_check_num_images): Same.
|
||
* gfortran.texi: Update documentation on num_images' API
|
||
function.
|
||
* intrinsic.cc (add_functions): Update signature of image_index
|
||
and num_images. Both can take either a team handle or number.
|
||
* intrinsic.h (gfc_check_num_images): Update signature to take
|
||
either team or team_number.
|
||
(gfc_check_image_index): Can take coarray, subscripts and team
|
||
or team number now.
|
||
(gfc_simplify_image_index): Same.
|
||
(gfc_simplify_num_images): Same.
|
||
(gfc_resolve_image_index): Same.
|
||
* intrinsic.texi: Update documentation of num_images() Fortran
|
||
function.
|
||
* iresolve.cc (gfc_resolve_image_index): Update signature.
|
||
* simplify.cc (gfc_simplify_num_images): Update signature and
|
||
remove undocumented failed argument.
|
||
(gfc_simplify_image_index): Add team or team number argument.
|
||
* trans-intrinsic.cc (conv_stat_and_team): Because being
|
||
optional teams need to be a pointer to the opaque pointer.
|
||
(conv_caf_sendget): Correct call; was two arguments short.
|
||
(trans_image_index): Support team or team_number.
|
||
(trans_num_images): Same.
|
||
(conv_intrinsic_cobound): Adapt to changed signature of
|
||
num_images in call.
|
||
* trans-stmt.cc (gfc_trans_sync): Same.
|
||
|
||
2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/87326
|
||
* check.cc (gfc_check_this_image): Check the three different
|
||
parameter lists possible for this_image and sort them correctly.
|
||
* gfortran.texi: Update documentation on this_image's API.
|
||
* intrinsic.cc (add_functions): Update this_image's signature.
|
||
(check_specific): Add specific check for this_image.
|
||
* intrinsic.h (gfc_check_this_image): Change to flexible
|
||
argument list.
|
||
* intrinsic.texi: Update documentation on this_image().
|
||
* iresolve.cc (gfc_resolve_this_image): Resolve the different
|
||
arguments.
|
||
* simplify.cc (gfc_simplify_this_image): Simplify the simplify
|
||
routine.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Update
|
||
signature of this_image.
|
||
* trans-expr.cc (gfc_caf_get_image_index): Use correct signature
|
||
of this_image.
|
||
* trans-intrinsic.cc (trans_this_image): Adapt to correct
|
||
signature.
|
||
|
||
2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/88154
|
||
PR fortran/88960
|
||
PR fortran/97210
|
||
PR fortran/103001
|
||
* check.cc (team_type_check): Check a type for being team_type
|
||
from the iso_fortran_env module.
|
||
(gfc_check_image_status): Use team_type check.
|
||
(gfc_check_get_team): Check for level argument.
|
||
(gfc_check_team_number): Use team_type check.
|
||
* expr.cc (gfc_check_assign): Add treatment for returning
|
||
team_type in caf-single mode.
|
||
* gfortran.texi: Add/Update documentation for get_team and
|
||
team_number API functions.
|
||
* intrinsic.cc (add_functions): Update get_team signature.
|
||
* intrinsic.h (gfc_resolve_get_team): Add prototype.
|
||
* intrinsic.texi: Add/Update documentation for get_team and
|
||
team_number Fortran functions.
|
||
* iresolve.cc (gfc_resolve_get_team): Resolve return type to be
|
||
of type team_type.
|
||
* iso-fortran-env.def: Update STAT_LOCK constants. They have
|
||
nothing to do with files. Add level constants for get_team.
|
||
* libgfortran.h: Add level and unlock_stat constants.
|
||
* simplify.cc (gfc_simplify_get_team): Simply to correct return
|
||
type team_type.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Update
|
||
get_team and image_status API prototypes to correct signatures.
|
||
* trans-intrinsic.cc (conv_intrinsic_image_status): Translate
|
||
second parameter correctly.
|
||
(conv_intrinsic_team_number): Translate optional single team
|
||
argument correctly.
|
||
(gfc_conv_intrinsic_function): Add translation of get_team.
|
||
|
||
2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/87326
|
||
PR fortran/87556
|
||
PR fortran/88254
|
||
PR fortran/103796
|
||
* coarray.cc (split_expr_at_caf_ref): Treat polymorphic types
|
||
correctly. Ensure resolve of expression after coindex.
|
||
(create_allocated_callback): Fix parameter of allocated function
|
||
for coarrays.
|
||
(coindexed_expr_callback): Improve detection of coarrays in
|
||
allocated function.
|
||
* decl.cc (gfc_match_end): Add team block matching.
|
||
* dump-parse-tree.cc (show_code_node): Dump change team block as
|
||
such.
|
||
* frontend-passes.cc (gfc_code_walker): Recognice team block.
|
||
* gfortran.texi: Add documentation for team api functions.
|
||
* intrinsic.texi: Add documentation about team_type in
|
||
iso_fortran_env module.
|
||
* iso-fortran-env.def (team_type): Use helper to get pointer
|
||
kind.
|
||
* match.cc (gfc_match_associate): Factor out matching of
|
||
association list, because it is used in change team as well.
|
||
(check_coarray_assoc): Ensure, that the association is to a
|
||
coarray.
|
||
(match_association_list): Match a list of association either in
|
||
associate or in change team.
|
||
(gfc_match_form_team): Match form team correctly include
|
||
new_index.
|
||
(gfc_match_change_team): Match change team with association
|
||
list.
|
||
(gfc_match_end_team): Match end team including stat and errmsg.
|
||
(gfc_match_return): Prevent return from team block.
|
||
* parse.cc (decode_statement): Sort team block.
|
||
(next_statement): Same.
|
||
(check_statement_label): Same.
|
||
(accept_statement): Same.
|
||
(verify_st_order): Same.
|
||
(parse_associate): Renamed to move_associates_to_block...
|
||
(move_associates_to_block): ... to enable reuse for change team.
|
||
(parse_change_team): Parse it as block.
|
||
(parse_executable): Same.
|
||
* parse.h (enum gfc_compile_state): Add team block as compiler
|
||
state.
|
||
* resolve.cc (resolve_scalar_argument): New function to resolve
|
||
an argument to a statement as a scalar.
|
||
(resolve_form_team): Resolve its members.
|
||
(resolve_change_team): Same.
|
||
(resolve_branch): Prevent branch from jumping out of team block.
|
||
(check_team): Removed.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Add stat and
|
||
errmsg to team API functions and update their arguments.
|
||
* trans-expr.cc (gfc_trans_subcomponent_assign): Also null the
|
||
token when moving memory or an allocated() will not detect a
|
||
free.
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_caf_is_present_remote):
|
||
Adapt to signature change no longer a pointer-pointer.
|
||
* trans-stmt.cc (gfc_trans_form_team): Translate a form team
|
||
including new_index.
|
||
(gfc_trans_change_team): Translate a change team as a block.
|
||
|
||
2025-04-22 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/87939
|
||
* check.cc (gfc_check_move_alloc): Add stat and errmsg to
|
||
move_alloc.
|
||
* dump-parse-tree.cc (show_sync_stat): New helper function.
|
||
(show_code_node): Use show_sync_stat to print stat and errmsg.
|
||
* gfortran.h (struct sync_stat): New struct to unify stat and
|
||
errmsg handling.
|
||
* intrinsic.cc (add_subroutines): Correct signature of
|
||
move_alloc.
|
||
* intrinsic.h (gfc_check_move_alloc): Correct signature of
|
||
check_move_alloc.
|
||
* match.cc (match_named_arg): Match an optional argument to a
|
||
statement.
|
||
(match_stat_errmsg): Match a stat= or errmsg= named argument.
|
||
(gfc_match_critical): Use match_stat_errmsg to match the named
|
||
arguments.
|
||
(gfc_match_sync_team): Same.
|
||
* resolve.cc (resolve_team_argument): Resolve an expr to have
|
||
type TEAM_TYPE from iso_fortran_env.
|
||
(resolve_scalar_variable_as_arg): Resolve an argument as a
|
||
scalar type.
|
||
(resolve_sync_stat): Resolve stat and errmsg expressions.
|
||
(resolve_sync_team): Resolve a sync team statement using
|
||
sync_stat helper.
|
||
(resolve_end_team): Same.
|
||
(resolve_critical): Same.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Correct
|
||
sync_team signature.
|
||
* trans-intrinsic.cc (conv_intrinsic_move_alloc): Store stat
|
||
an errmsg optional arguments in helper struct and use helper
|
||
to translate.
|
||
* trans-stmt.cc (trans_exit): Implement DRY pattern for
|
||
generating an _exit().
|
||
(gfc_trans_sync_stat): Translate stat and errmsg contents.
|
||
(gfc_trans_end_team): Use helper to translate stat and errmsg.
|
||
(gfc_trans_sync_team): Same.
|
||
(gfc_trans_critical): Same.
|
||
* trans-stmt.h (gfc_trans_sync_stat): New function.
|
||
* trans.cc (gfc_deallocate_with_status): Parameterize check at
|
||
runtime to allow unallocated (co-)array when freeing a
|
||
structure.
|
||
(gfc_deallocate_scalar_with_status): Same and also add errmsg.
|
||
* trans.h (gfc_deallocate_with_status): Signature changes.
|
||
(gfc_deallocate_scalar_with_status): Same.
|
||
|
||
2025-04-19 Steven G. Kargl <kargl@gcc.gnu.org>
|
||
|
||
PR fortran/119836
|
||
* resolve.cc (check_pure_function): Fix checking for
|
||
an impure subprogram within a DO CONCURRENT construct.
|
||
(pure_subroutine): Ditto.
|
||
|
||
2025-04-16 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/106948
|
||
* resolve.cc (gfc_pure_function): If a function has been resolved,
|
||
but esym is not yet set, look at its attributes to see whether it
|
||
is pure or elemental.
|
||
|
||
2025-04-15 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* f95-lang.cc (LANG_HOOKS_OMP_DEEP_MAPPING,
|
||
LANG_HOOKS_OMP_DEEP_MAPPING_P, LANG_HOOKS_OMP_DEEP_MAPPING_CNT):
|
||
Define.
|
||
* openmp.cc (gfc_match_omp_clause_reduction): Fix location setting.
|
||
(resolve_omp_clauses): Permit allocatable components, reject
|
||
them and polymorphic variables in PRIVATE/FIRSTPRIVATE.
|
||
* trans-decl.cc (add_clause): Set clause location.
|
||
* trans-openmp.cc (gfc_has_alloc_comps): Add ptr_ok and
|
||
shallow_alloc_only Boolean arguments.
|
||
(gfc_omp_replace_alloc_by_to_mapping): New.
|
||
(gfc_omp_private_outer_ref, gfc_walk_alloc_comps,
|
||
gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
|
||
gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Update call to it.
|
||
(gfc_omp_finish_clause): Minor cleanups, improve location data,
|
||
handle allocatable components.
|
||
(gfc_omp_deep_mapping_map, gfc_omp_deep_mapping_item,
|
||
gfc_omp_deep_mapping_comps, gfc_omp_gen_simple_loop,
|
||
gfc_omp_get_array_size, gfc_omp_elmental_loop,
|
||
gfc_omp_deep_map_kind_p, gfc_omp_deep_mapping_int_p,
|
||
gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_do,
|
||
gfc_omp_deep_mapping_cnt, gfc_omp_deep_mapping): New.
|
||
(gfc_trans_omp_array_section): Save array descriptor in case
|
||
deep-mapping lang hook will need it.
|
||
(gfc_trans_omp_clauses): Likewise; use better clause location data.
|
||
* trans.h (gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_cnt,
|
||
gfc_omp_deep_mapping): Add function prototypes.
|
||
|
||
2025-04-13 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/119669
|
||
* interface.cc (compare_parameter): Error when mismatch between
|
||
formal argument as subroutine and function. If the dummy
|
||
argument is a known function, set its typespec.
|
||
|
||
2025-04-12 Thomas Schwinge <tschwinge@baylibre.com>
|
||
|
||
PR fortran/101602
|
||
* trans-stmt.cc (gfc_trans_concurrent_locality_spec): Fix
|
||
'static_assert'.
|
||
|
||
2025-04-09 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/119656
|
||
* interface.cc (gfc_compare_actual_formal): Fix front-end memleak
|
||
when searching for matching interfaces.
|
||
* trans-expr.cc (gfc_conv_procedure_call): If there is a formal
|
||
dummy corresponding to an absent argument, use its type, and only
|
||
fall back to inferred type otherwise.
|
||
|
||
2025-04-09 Paul Thomas <pault@gcc.gnu.org>
|
||
and Harald Anlauf <anlauf@gcc.gnu.org>
|
||
|
||
PR fortran/119460
|
||
* iresolve.cc (generate_reduce_op_wrapper): Increase the size
|
||
of 'tname'. Change intent of 'a' and 'b' to intent_in.
|
||
* trans-decl.cc (add_argument_checking): Do not test artificial
|
||
formal symbols.
|
||
* trans-expr.cc (gfc_conv_procedure_call): Remove reduce_scalar
|
||
and the blocks triggered by it.
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_function): Set the
|
||
result of non-character, scalar reduce to be allocatable.
|
||
|
||
2025-04-09 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/101602
|
||
* resolve.cc (resolve_locality_spec): Remove 'sorry, unimplemented'.
|
||
* trans-stmt.cc (struct symbol_and_tree_t): New.
|
||
(gfc_trans_concurrent_locality_spec): New.
|
||
(gfc_trans_forall_1): Call it; update to handle local and local_init.
|
||
* trans-decl.cc (gfc_start_saved_local_decls,
|
||
gfc_stop_saved_local_decls): New; moved code from ...
|
||
(gfc_process_block_locals): ... here. Call it.
|
||
* trans.h (gfc_start_saved_local_decls,
|
||
gfc_stop_saved_local_decls): Declare.
|
||
|
||
2025-04-02 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
PR middle-end/118965
|
||
* openmp.cc (gfc_parser_omp_clause_init_modifiers): Fix some
|
||
inconsistent code indentation. Remove code for recognizing
|
||
clauses without modifiers. Diagnose prefer_type without a
|
||
following paren. Adjust error message for an unrecognized modifier.
|
||
Diagnose missing target/targetsync modifier.
|
||
(gfc_match_omp_init): Fix more inconsistent code indentation.
|
||
|
||
2025-03-28 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
* check.cc (gfc_invalid_boz): Correct spelling of compiler flag in
|
||
hint to -fallow-invalid-boz.
|
||
|
||
2025-03-26 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/118796
|
||
* resolve.cc: Do not apply default initialization to a derived-type
|
||
function result if the resolved function is use-associated.
|
||
|
||
2025-03-25 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/119419
|
||
* dump-parse-tree.cc (write_funptr_fcn): New function.
|
||
(write_type): Invoke it for C_FUNPTR.
|
||
(write_interop_decl): Do not dump vtabs.
|
||
|
||
2025-03-25 Sandra Loosemore <sloosemore@baylibre.com>
|
||
Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Remove accidental
|
||
redeclaration of pref.
|
||
|
||
2025-03-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* resolve.cc (resolve_procedure_expression): Remove extraneous space
|
||
from the middle of diagnostics.
|
||
|
||
2025-03-21 Paul-Antoine Arras <parras@baylibre.com>
|
||
Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* trans-openmp.cc (gfc_trans_omp_clauses): Make OMP_CLAUSE_DESTROY and
|
||
OMP_CLAUSE_INIT addressable.
|
||
* types.def (BT_FN_VOID_INT_INT_PTR_PTR_PTR_INT_PTR_INT_PTR_UINT_PTR):
|
||
New.
|
||
|
||
2025-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/119406
|
||
* resolve.cc (resolve_locality_spec): Add space in error
|
||
message.
|
||
|
||
2025-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/119403
|
||
* interface.cc (compare_parameter): Fix typo.
|
||
|
||
2025-03-21 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/85836
|
||
* check.cc (get_ul_from_cst_cl): New function used in
|
||
check_operation.
|
||
(check_operation): New function used in check_reduce and
|
||
check_co_reduce.
|
||
(gfc_check_co_reduce): Use it.
|
||
(gfc_check_reduce): New function.
|
||
(gfc_check_rename): Add prototype for intrinsic with 6 arguments.
|
||
* gfortran.h : Add isym id for reduce and prototype for f6.
|
||
* intrinsic.cc (do_check): Add another argument expression and use
|
||
it in the call to the six argument specific check.
|
||
(add_sym_6): New function.
|
||
(add_functions): Add the discription of the reduce intrinsic and
|
||
add it to the intrinsic list.
|
||
* intrinsic.h : Add prototypes for gfc_check_reduce and
|
||
gfc_resolve_reduce.
|
||
* iresolve.cc (generate_reduce_op_wrapper): Generate a wrapper
|
||
subroutine for the 'operation' function to enable the library
|
||
implementation to be type agnostic and use pointer arithmetic
|
||
throughout.
|
||
(gfc_resolve_reduce): New function.
|
||
* trans-expr.cc (gfc_conv_procedure_call): Add flag for scalar
|
||
reduce. Generate a return variable 'sr' for scalar reduce, pass its
|
||
address to the library function and return it as the scalar result.
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_function): Array valued
|
||
reduce is called in same way as reshape. Fall through for call to
|
||
the scalar version.
|
||
|
||
2025-03-21 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/119380
|
||
* trans-array.cc (structure_alloc_comps): Prevent freeing of
|
||
procedure pointer components.
|
||
|
||
2025-03-21 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/119349
|
||
* trans-expr.cc (gfc_conv_procedure_call): Prevent deallocation
|
||
of array temporary for polymorphic temporary argument.
|
||
|
||
2025-03-19 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/116706
|
||
* trans-array.cc (gfc_is_reallocatable_lhs): Fix check on
|
||
allocatable components of derived type or class objects.
|
||
|
||
2025-03-19 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/119272
|
||
* resolve.cc (resolve_compcall): Postpone error report when
|
||
symbol is not resolved yet for component call resolve.
|
||
|
||
2025-03-18 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/119338
|
||
* resolve.cc (resolve_allocate_expr): Check F2003:C626: Type-spec
|
||
in ALLOCATE of an assumed-length character dummy argument shall be
|
||
an asterisk.
|
||
|
||
2025-03-16 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/60560
|
||
* expr.cc (gfc_traverse_expr): Do not descend into length type
|
||
parameter for negative values of auxiliary parameter f.
|
||
* resolve.cc (gfc_find_var_in_expr): New helper function to check
|
||
dependence of an expression on given variable.
|
||
(resolve_allocate_expr): Use it to determine if array bounds in an
|
||
ALLOCATE statement depend explicitly on a variable.
|
||
|
||
2025-03-15 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/115271
|
||
* module.cc (mio_omp_declare_simd_clauses): New, moved from ...
|
||
(mio_omp_declare_simd): ... here. Update call, write empty '( )'
|
||
if there is no declare simd but a declare variant.
|
||
(mio_omp_declare_variant): New.
|
||
(mio_symbol): Call it.
|
||
* openmp.cc (gfc_match_omp_context_selector): Add comment about
|
||
module.cc to TODO note.
|
||
* trans-stmt.h (gfc_trans_omp_declare_variant): Take additional
|
||
parent_ns argument.
|
||
* trans-decl.cc (create_function_arglist,
|
||
gfc_create_function_decl): Update call.
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Take new
|
||
argument, add some special case handling for attr.use_assoc.
|
||
|
||
2025-03-13 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/119118
|
||
* dependency.cc (contains_forall_index_p): Let loop over elements
|
||
of a constructor update its control variable. Handle REF_INQUIRY
|
||
in switch statement.
|
||
(gfc_contains_implied_index_p): Likewise.
|
||
|
||
2025-03-12 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/98903
|
||
* array.cc (gfc_copy_array_ref): Copy team, team_type and stat.
|
||
(match_team_or_stat): Match a single team(_number)= or stat=.
|
||
(gfc_match_array_ref): Add switching to image_selector_parsing
|
||
and error handling when indices come after named arguments.
|
||
* coarray.cc (move_coarray_ref): Move also team_type.
|
||
* expr.cc (gfc_free_ref_list): Free team and stat expression.
|
||
(gfc_find_team_co): Find team or team_number in array-ref.
|
||
* gfortran.h (enum gfc_array_ref_team_type): New enum to
|
||
distinguish unset, team or team_number expression.
|
||
(gfc_find_team_co): Default searching to team= expressions.
|
||
* resolve.cc (resolve_array_ref): Check for type correctness of
|
||
team(_number) and stats in coindices.
|
||
* trans-array.cc (gfc_conv_array_ref): Ensure stat is cleared
|
||
when fcoarray=single is used.
|
||
* trans-intrinsic.cc (conv_stat_and_team): Including team_number
|
||
in conversion.
|
||
(gfc_conv_intrinsic_caf_get): Propagate team_number to ABI
|
||
routine.
|
||
(conv_caf_send_to_remote): Same.
|
||
(conv_caf_sendget): Same.
|
||
|
||
2025-03-11 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/119199
|
||
* decl.cc (gfc_match_save): Reject SAVE statement of a COMMON block
|
||
when in a BLOCK construct.
|
||
* trans-common.cc (translate_common): Avoid NULL pointer dereference.
|
||
|
||
2025-03-11 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/119078
|
||
* frontend-passes.cc (check_against_globals): Do not check
|
||
for abstract interfaces or dummy arguments.
|
||
* resolve.cc (gfc_verify_binding_labels): Adjust comment.
|
||
Do not put abstract interfaces or dummy argument into global
|
||
namespace.
|
||
|
||
2025-03-10 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107143
|
||
* dependency.cc (check_data_pointer_types): Do not just compare
|
||
for derived type, but for same derived type.
|
||
|
||
2025-03-09 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/119157
|
||
* gfortran.h (gfc_pop_undo_symbol): Remove prototype.
|
||
* interface.cc (gfc_get_formal_from_actual_arglist): Use
|
||
gfc_commit_symbol() instead of gfc_pop_undo_symbol().
|
||
* symbol.cc (gfc_pop_undo_symbol): Remove.
|
||
|
||
2025-03-08 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/119157
|
||
* gfortran.h (gfc_symbol): Make ext_dummy_arglist_mismatch a
|
||
one-bit bitfield
|
||
(gfc_pop_undo_symbol): Declare prototype.
|
||
* symbol.cc (gfc_pop_undo_symbol): New function.
|
||
* interface.cc (gfc_get_formal_from_actual_arglist): Call it
|
||
for artificially introduced formal variables.
|
||
|
||
2025-03-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/119054
|
||
* resolve.cc (resolve_elemental_actual): When checking other
|
||
actual arguments to elemental procedures, don't check
|
||
attributes of literals and function calls.
|
||
|
||
2025-03-06 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/119118
|
||
* dependency.cc (gfc_contains_implied_index_p): Helper function to
|
||
determine if an expression has a dependence on an implied-do index.
|
||
* dependency.h (gfc_contains_implied_index_p): Add prototype.
|
||
* trans-expr.cc (gfc_conv_substring): Adjust logic to not generate
|
||
substring bounds checks before implied-do indices have been
|
||
substituted.
|
||
|
||
2025-03-05 Mark Wielaard <mark@klomp.org>
|
||
|
||
* lang.opt.urls: Regenerated.
|
||
|
||
2025-03-05 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/104684
|
||
* trans-array.cc (gfc_conv_expr_descriptor): Look at the
|
||
lang-specific akind and do a view convert when only the akind
|
||
attribute differs between pointer and allocatable array.
|
||
|
||
2025-03-04 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/119049
|
||
PR fortran/119074
|
||
* dump-parse-tree.cc (seen_conflict): New static varaible.
|
||
(gfc_dump_external_c_prototypes): Initialize it. If it was
|
||
set, write out a warning that -std=c23 will not work.
|
||
(write_proc): Move the work of actually writing out the
|
||
formal arglist to...
|
||
(write_formal_arglist): New function. Handle external dummy
|
||
parameters and their argument lists. If there were mismatched
|
||
arguments, output an empty argument list in pre-C23 style.
|
||
* gfortran.h (struct gfc_symbol): Add ext_dummy_arglist_mismatch
|
||
flag and formal_at.
|
||
* invoke.texi: Document -Wexternal-argument-mismatch.
|
||
* lang.opt: Put it in.
|
||
* resolve.cc (resolve_function): If warning about external
|
||
argument mismatches, build a formal from actual arglist the
|
||
first time around, and later compare and warn.
|
||
(resolve_call): Likewise
|
||
|
||
2025-03-04 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/103391
|
||
* trans-expr.cc (gfc_trans_assignment_1): Do not use poly assign
|
||
for pointer arrays on lhs (as it is done for allocatables
|
||
already).
|
||
|
||
2025-03-04 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/77872
|
||
* trans-expr.cc (gfc_get_tree_for_caf_expr): Pick up token from
|
||
decl when it is present there for class types.
|
||
|
||
2025-03-04 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/77872
|
||
* trans-expr.cc (gfc_conv_procedure_call): Use attr instead of
|
||
doing type check and branching for BT_CLASS.
|
||
|
||
2025-03-03 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/101577
|
||
* symbol.cc (verify_bind_c_derived_type): Generate error message
|
||
for derived type with no components in standard conformance mode,
|
||
indicating that this is a GNU extension.
|
||
|
||
2025-03-03 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/118747
|
||
* trans-array.cc (gfc_trans_array_ctor_element): Remove copy to
|
||
temporary variable.
|
||
* trans-expr.cc (gfc_conv_procedure_call): Use references to
|
||
array members instead of copies when freeing after use.
|
||
Formatting fix.
|
||
|
||
2025-03-02 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* intrinsic.texi: Fix inconsistent capitalization of argument
|
||
names and other minor copy-editing.
|
||
|
||
2025-03-02 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
PR fortran/47928
|
||
* intrinsic.texi: Move the "Standard" subheading farther down.
|
||
|
||
2025-03-02 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
PR fortran/47928
|
||
* gfortran.texi: Move all the "Syntax" subheadings ahead of
|
||
"Description", and rename to "Synopsis".
|
||
* intrinsic.texi: Likewise.
|
||
|
||
2025-03-02 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
PR fortran/47928
|
||
* intrinsic.texi: Put a blank line between "@item @emph{}"
|
||
subheadings, but not more than one.
|
||
|
||
2025-03-02 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
PR fortran/47928
|
||
* gfortran.texi: Consistently use "@emph{Notes}:" instead of
|
||
other spellings.
|
||
* intrinsic.texi: Likewise. Also fix an inconsistent capitalization
|
||
and remove a redundant "Standard" entry.
|
||
|
||
2025-03-01 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
* match.cc (gfc_match_nullify): Free matched expression when
|
||
cleaning up.
|
||
* primary.cc (match_variable): Initialize result to NULL.
|
||
|
||
2025-02-28 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/118730
|
||
* resolve.cc: Mark unused derived type variable with finalizers
|
||
referenced to execute finalizer when leaving scope.
|
||
|
||
2025-02-27 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/118789
|
||
* trans-stmt.cc (trans_associate_var): Compare pointed to types when
|
||
expr to associate is already a pointer.
|
||
|
||
2025-02-26 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/108233
|
||
* trans-expr.cc (gfc_trans_assignment_1): Remove SAVE_EXPR on lhs.
|
||
|
||
2025-02-25 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* coarray.cc (fixup_comp_refs): For class types set correct
|
||
component (class) type.
|
||
(split_expr_at_caf_ref): Provide location.
|
||
* trans-intrinsic.cc (conv_caf_send_to_remote): Look at
|
||
generated formal argument and not declared one to detect
|
||
descriptor arrays.
|
||
(conv_caf_sendget): Same.
|
||
|
||
2025-02-25 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* trans-intrinsic.cc (conv_caf_sendget): Use the size of data
|
||
transferred between the two images and not the descritor's size.
|
||
|
||
2025-02-21 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/48958
|
||
* trans-array.cc (gfc_trans_deferred_array): Initialize the data
|
||
component of non-saved pointers when -fcheck=pointer is set.
|
||
|
||
2025-02-21 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* trans-array.cc (gfc_full_array_size): Obtain the rank from
|
||
the array descriptor for assumed rank.
|
||
(gfc_tree_array_size): Likewise; permit expr = NULL to operate
|
||
only the tree.
|
||
(gfc_conv_descriptor_stride_get): Update for added assumed-rank
|
||
array types.
|
||
* trans-openmp.cc (gfc_omp_finish_clause): Likewise.
|
||
* trans-types.cc (gfc_build_array_type, gfc_get_derived_type,
|
||
gfc_get_array_descr_info): Likewise.
|
||
* trans.h (enum gfc_array_kind): Add
|
||
GFC_ARRAY_ASSUMED_RANK_{ALLOCATABLE,POINTER{,_CONT}}.
|
||
|
||
2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* gfortran.texi: Remove deprecated functions from documentation.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Remove
|
||
decprecated function decls.
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_exponent): Remove
|
||
deprecated/no longer needed routines.
|
||
* trans.h: Remove unused decls.
|
||
|
||
2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* coarray.cc (rewrite_caf_send): Rewrite to
|
||
transfer_between_remotes when both sides of the assignment have
|
||
a coarray.
|
||
(coindexed_code_callback): Prevent duplicate rewrite.
|
||
* gfortran.texi: Add documentation for transfer_between_remotes.
|
||
* intrinsic.cc (add_subroutines): Add intrinsic symbol for
|
||
caf_sendget to allow easy rewrite to transfer_between_remotes.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Add
|
||
prototype for transfer_between_remotes.
|
||
* trans-intrinsic.cc (conv_caf_vector_subscript_elem): Mark as
|
||
deprecated.
|
||
(conv_caf_vector_subscript): Same.
|
||
(compute_component_offset): Same.
|
||
(conv_expr_ref_to_caf_ref): Same.
|
||
(conv_stat_and_team): Extract stat and team from expr.
|
||
(gfc_conv_intrinsic_caf_get): Use conv_stat_and_team.
|
||
(conv_caf_send_to_remote): Same.
|
||
(has_ref_after_cafref): Mark as deprecated.
|
||
(conv_caf_sendget): Translate to transfer_between_remotes.
|
||
* trans.h: Add prototype for transfer_between_remotes.
|
||
|
||
2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* coarray.cc (move_coarray_ref): Move the coarray reference out
|
||
of the given one. Especially when there is a regular array ref.
|
||
(fixup_comp_refs): Move components refs to a derived type where
|
||
the codim has been removed, aka a new type.
|
||
(split_expr_at_caf_ref): Correctly split the reference chain.
|
||
(remove_caf_ref): Simplify.
|
||
(create_get_callback): Fix some deficiencies.
|
||
(create_allocated_callback): Adapt to new signature of split.
|
||
(create_send_callback): New function.
|
||
(rewrite_caf_send): Rewrite a call to caf_send to
|
||
caf_send_to_remote.
|
||
(coindexed_code_callback): Treat caf_send and caf_sendget
|
||
correctly.
|
||
* gfortran.h (enum gfc_isym_id): Add SENDGET-isym.
|
||
* gfortran.texi: Add documentation for send_to_remote.
|
||
* resolve.cc (gfc_resolve_code): No longer generate send_by_ref
|
||
when allocatable coarray (component) is on the lhs.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Add
|
||
caf_send_to_remote decl.
|
||
* trans-intrinsic.cc (conv_caf_func_index): Ensure the static
|
||
variables created are not in a block-scope.
|
||
(conv_caf_send_to_remote): Translate caf_send_to_remote calls.
|
||
(conv_caf_send): Renamed to conv_caf_sendget.
|
||
(conv_caf_sendget): Renamed from conv_caf_send.
|
||
(gfc_conv_intrinsic_subroutine): Branch correctly for
|
||
conv_caf_send and sendget.
|
||
* trans.h: Correct decl.
|
||
|
||
2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* coarray.cc (create_allocated_callback): Add creating remote
|
||
side procedure for checking allocation status of coarray.
|
||
(rewrite_caf_allocated): Rewrite ALLOCATED on coarray to use caf
|
||
routine.
|
||
(coindexed_expr_callback): Exempt caf_is_present_on_remote from
|
||
being rewritten again.
|
||
* gfortran.h (enum gfc_isym_id): Add caf_is_present_on_remote
|
||
id.
|
||
* gfortran.texi: Add documentation for caf_is_present_on_remote.
|
||
* intrinsic.cc (add_functions): Add caf_is_present_on_remote
|
||
symbol.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Define
|
||
interface of caf_is_present_on_remote.
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_caf_is_present_remote):
|
||
Translate caf_is_present_on_remote.
|
||
(trans_caf_is_present): Remove.
|
||
(caf_this_image_ref): Remove.
|
||
(gfc_conv_allocated): Take out coarray treatment, because that
|
||
is rewritten to caf_is_present_on_remote now.
|
||
(gfc_conv_intrinsic_function): Handle caf_is_present_on_remote
|
||
calls.
|
||
* trans.h: Add symbol for caf_is_present_on_remote and remove
|
||
old one.
|
||
|
||
2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* coarray.cc (get_arrayspec_from_expr): Treat array result of
|
||
function calls correctly.
|
||
(remove_coarray_from_derived_type): Prevent memory loss.
|
||
(add_caf_get_from_remote): Correct locus.
|
||
(find_comp): New function to find or create a new component in a
|
||
derived type.
|
||
(check_add_new_comp_handle_array): Handle allocatable arrays or
|
||
non-pure/non-elemental functions in indexes of coarrays.
|
||
(check_add_new_component): Use above function.
|
||
(create_get_parameter_type): Rename to
|
||
create_caf_add_data_parameter_type.
|
||
(create_caf_add_data_parameter_type): Renaming of variable and
|
||
make the additional data a coarray.
|
||
(remove_caf_ref): Factor out to reuse in other caf-functions.
|
||
(create_get_callback): Use function factored out, set locus
|
||
correctly and ensure a kind is set for parameters.
|
||
(add_caf_get_intrinsic): Rename to add_caf_get_from_remote and
|
||
rename some variables.
|
||
(coindexed_expr_callback): Skip over function created by the
|
||
rewriter.
|
||
(coindexed_code_callback): Filter some intrinsics not to
|
||
process.
|
||
(gfc_coarray_rewrite): Rewrite also contained functions.
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_caf_get): Reflect
|
||
changed order on caf_get_from_remote ().
|
||
|
||
2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* gfortran.texi: Rename caf_get_by_ct to caf_get_from_remote.
|
||
* trans-decl.cc (gfc_build_builtin_function_decls): Rename
|
||
intrinsic.
|
||
* trans-intrinsic.cc (conv_caf_func_index): Factor out
|
||
functionality to be reused by other caf-functions.
|
||
(conv_caf_add_call_data): Same.
|
||
(gfc_conv_intrinsic_caf_get): Use functions factored out.
|
||
* trans.h: Rename intrinsic symbol.
|
||
|
||
2025-02-20 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/107635
|
||
* Make-lang.in: Add coarray.cc.
|
||
* coarray.cc: New file.
|
||
* gfortran.h (gfc_coarray_rewrite): New procedure.
|
||
* parse.cc (rewrite_expr_tree): Add entrypoint for rewriting
|
||
expression trees.
|
||
* resolve.cc (gfc_resolve_ref): Remove caf_lhs handling.
|
||
(get_arrayspec_from_expr): Moved to rewrite.cc.
|
||
(remove_coarray_from_derived_type): Same.
|
||
(convert_coarray_class_to_derived_type): Same.
|
||
(split_expr_at_caf_ref): Same.
|
||
(check_add_new_component): Same.
|
||
(create_get_parameter_type): Same.
|
||
(create_get_callback): Same.
|
||
(add_caf_get_intrinsic): Same.
|
||
(resolve_variable): Remove caf_lhs handling.
|
||
|
||
2025-02-17 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/115271
|
||
* gfortran.h (gfc_omp_namelist): Change need_device_ptr to adj_args
|
||
union and add more flags.
|
||
* openmp.cc (gfc_match_omp_declare_variant,
|
||
gfc_resolve_omp_declare): For adjust_args, handle need_device_addr
|
||
and numeric values/ranges besides dummy argument names.
|
||
(resolve_omp_dispatch): Remove bogus a adjust_args check.
|
||
* trans-decl.cc (gfc_handle_omp_declare_variant): New.
|
||
(gfc_generate_module_vars, gfc_generate_function_code): Call it.
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Handle numeric
|
||
values/ranges besides dummy argument names.
|
||
|
||
2025-02-17 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/118862
|
||
* trans-expr.cc (gfc_conv_cst_int_power): Use functions for
|
||
unsigned wide integer.
|
||
(gfc_conv_cst_uint_power): Avoid generating the mask if it would
|
||
overflow an unsigned HOST_WIDE_INT. Format fixes.
|
||
|
||
2025-02-16 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* dump-parse-tree.cc (show_attr): Remove double output
|
||
of attr->save.
|
||
|
||
2025-02-15 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/118080
|
||
* gfortran.texi: Adjust documentation.
|
||
* trans-decl.cc (create_function_arglist): Adjust to pass hidden
|
||
presence flag also for derived type dummies with VALUE,OPTIONAL
|
||
attribute.
|
||
* trans-expr.cc (gfc_conv_expr_present): Expect hidden presence
|
||
flag also for derived type dummies with VALUE,OPTIONAL attribute.
|
||
(conv_cond_temp): Adjust to allow derived types.
|
||
(conv_dummy_value): Extend to handle derived type dummies with
|
||
VALUE,OPTIONAL attribute.
|
||
(gfc_conv_procedure_call): Adjust for actual arguments passed to
|
||
derived type dummies with VALUE,OPTIONAL attribute.
|
||
* trans-types.cc (gfc_get_function_type): Adjust fndecl for
|
||
hidden presence flag.
|
||
|
||
2025-02-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/117430
|
||
* resolve.cc (resolve_transfer): Change gfc_notify_std to
|
||
gfc_error.
|
||
|
||
2025-02-15 Andrew Pinski <pinskia@gcc.gnu.org>
|
||
|
||
PR fortran/118159
|
||
* invoke.texi: Remove mention of defunct web site for Coco.
|
||
|
||
2025-02-15 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* frontend-passes.cc (check_externals_procedure): Copy
|
||
typespec from old to new symbol.
|
||
|
||
2025-02-13 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/118845
|
||
* interface.cc (compare_parameter): If the formal attribute has been
|
||
generated from an actual argument list, also output an pointer to
|
||
there in case of an error.
|
||
(gfc_get_formal_from_actual_arglist): Set function and subroutine
|
||
attributes and (if it is a function) the typespec from the actual
|
||
argument.
|
||
|
||
2025-02-11 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Update call to
|
||
omp_check_context_selector.
|
||
(gfc_trans_omp_metadirective): Likewise.
|
||
|
||
2025-02-10 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/24878
|
||
* interface.cc (compare_parameter): Better wording on
|
||
error message.
|
||
|
||
2025-02-10 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/56423
|
||
* resolve.cc (resolve_structure_cons): Check rank of pointer target;
|
||
reject pointer target with vector subscripts.
|
||
|
||
2025-02-09 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/24878
|
||
* interface.cc (compare_parameter): Check global subroutines
|
||
passed as actual arguments for subroutine / function and
|
||
function type.
|
||
|
||
2025-02-08 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
PR middle-end/107067
|
||
* parse.cc (parse_omp_do): Diagnose missing "OMP END METADIRECTIVE"
|
||
after loop.
|
||
(parse_omp_structured_block): Likewise for strictly structured block.
|
||
(parse_omp_metadirective_body): Use better test for variants ending
|
||
at different places. Issue a user diagnostic at the end if any
|
||
were inconsistent, instead of calling gcc_assert.
|
||
|
||
2025-02-07 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/59252
|
||
* trans-expr.cc (gfc_trans_subcomponent_assign): Initialize
|
||
allocatable non-deferred character with NULL properly.
|
||
|
||
2025-02-07 Tomáš Trnka <trnka@scm.com>
|
||
|
||
PR fortran/116829
|
||
* trans-decl.cc (init_intent_out_dt): Always call
|
||
gfc_init_default_dt() for BT_DERIVED to apply s->value if the
|
||
symbol isn't allocatable. Also simplify the logic a bit.
|
||
|
||
2025-02-06 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/118750
|
||
* resolve.cc (resolve_assoc_var): If the target expression has
|
||
a rank, do not use gfc_expression_rank, since it will return 0
|
||
if the function is elemental. Resolution will have produced the
|
||
correct rank.
|
||
|
||
2025-02-05 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/118740
|
||
* openmp.cc (gfc_match_omp_context_selector, match_omp_metadirective):
|
||
Change sorry to sorry_at and use gfc_current_locus as location.
|
||
* trans-openmp.cc (gfc_trans_omp_clauses): Likewise, but use n->where.
|
||
|
||
2025-02-05 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/118745
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Use
|
||
append_args_list in the condition for the append_arg location.
|
||
|
||
2025-02-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||
|
||
PR fortran/47485
|
||
* cpp.cc: fix -MT/-MQ adding additional target instead of
|
||
replacing the default.
|
||
|
||
2025-02-04 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* arith.cc (arith_power): Handle modular arithmetic for
|
||
BT_UNSIGNED.
|
||
(eval_intrinsic): Error for unsigned exponentiation with
|
||
-pedantic.
|
||
* expr.cc (gfc_type_convert_binary): Use type of first
|
||
argument for unsigned exponentiation.
|
||
* gfortran.texi: Mention arithmetic exponentiation.
|
||
* resolve.cc (resolve_operator): Allow unsigned exponentiation.
|
||
* trans-decl.cc (gfc_build_intrinsic_function_decls): Build
|
||
declarations for unsigned exponentiation.
|
||
* trans-expr.cc (gfc_conv_cst_uint_power): New function.
|
||
(gfc_conv_power_op): Call it. Handle unsigned exponentiation.
|
||
* trans.h (gfor_fndecl_unsigned_pow_list): Add declaration.
|
||
|
||
2025-02-03 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/93289
|
||
* decl.cc (gfc_set_constant_character_len): Downgrade different
|
||
string lengths in character array constructor to legacy extension.
|
||
|
||
2025-01-31 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/108454
|
||
* resolve.cc (resolve_common_blocks): Initialize variable.
|
||
(resolve_symbol): If a symbol is already registered with a COMMON
|
||
block, do not search for an interface with the same name.
|
||
|
||
2025-01-31 Paul-Antoine Arras <parras@baylibre.com>
|
||
|
||
PR fortran/118714
|
||
* parse.cc (parse_omp_dispatch): Add missing pop_state.
|
||
|
||
2025-01-30 Sandra Loosemore <sloosemore@baylibre.com>
|
||
Kwok Cheung Yeung <kcy@codesourcery.com>
|
||
Sandra Loosemore <sandra@codesourcery.com>
|
||
Tobias Burnus <tobias@codesourcery.com>
|
||
Paul-Antoine Arras <pa@codesourcery.com>
|
||
|
||
PR middle-end/112779
|
||
PR middle-end/113904
|
||
* decl.cc (gfc_match_end): Handle COMP_OMP_BEGIN_METADIRECTIVE and
|
||
COMP_OMP_METADIRECTIVE.
|
||
* dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_METADIRECTIVE.
|
||
(show_code_node): Likewise.
|
||
* gfortran.h (enum gfc_statement): Add ST_OMP_METADIRECTIVE,
|
||
ST_OMP_BEGIN_METADIRECTIVE, and ST_OMP_END_METADIRECTIVE.
|
||
(struct gfc_omp_clauses): Rename target_first_st_is_teams to
|
||
target_first_st_is_teams_or_meta.
|
||
(struct gfc_omp_variant): New.
|
||
(gfc_get_omp_variant): New.
|
||
(struct gfc_st_label): Add omp_region field.
|
||
(enum gfc_exec_op): Add EXEC_OMP_METADIRECTIVE.
|
||
(struct gfc_code): Add omp_variants fields.
|
||
(gfc_free_omp_variants): Declare.
|
||
(match_omp_directive): Declare.
|
||
(is_omp_declarative_stmt): Declare.
|
||
* io.cc (format_asterisk): Adjust initializer.
|
||
* match.h (gfc_match_omp_begin_metadirective): Declare.
|
||
(gfc_match_omp_metadirective): Declare.
|
||
* openmp.cc (gfc_omp_directives): Uncomment metadirective.
|
||
(gfc_match_omp_eos): Adjust to match context selectors.
|
||
(gfc_free_omp_variants): New.
|
||
(gfc_match_omp_clauses): Remove context_selector parameter and adjust
|
||
to use gfc_match_omp_eos instead.
|
||
(match_omp): Adjust call to gfc_match_omp_clauses.
|
||
(gfc_match_omp_context_selector): Add metadirective_p parameter and
|
||
adjust error-checking. Adjust matching of simd clauses.
|
||
(gfc_match_omp_context_selector_specification): Adjust parameters
|
||
so it can be used for metadirective as well as declare variant.
|
||
(match_omp_metadirective): New.
|
||
(gfc_match_omp_begin_metadirective): New.
|
||
(gfc_match_omp_metadirective): New.
|
||
(resolve_omp_metadirective): New.
|
||
(resolve_omp_target): Handle metadirectives.
|
||
(gfc_resolve_omp_directive): Handle EXEC_OMP_METADIRECTIVE.
|
||
* parse.cc (gfc_matching_omp_context_selector): New.
|
||
(gfc_in_omp_metadirective_body): New.
|
||
(gfc_omp_region_count): New.
|
||
(decode_omp_directive): Handle ST_OMP_BEGIN_METADIRECTIVE and
|
||
ST_OMP_METADIRECTIVE.
|
||
(match_omp_directive): New.
|
||
(case_omp_structured_block): Define.
|
||
(case_omp_do): Define.
|
||
(gfc_ascii_statement): Handle ST_OMP_BEGIN_METADIRECTIVE,
|
||
ST_OMP_END_METADIRECTIVE, and ST_OMP_METADIRECTIVE.
|
||
(accept_statement): Handle ST_OMP_METADIRECTIVE and
|
||
ST_OMP_BEGIN_METADIRECTIVE.
|
||
(gfc_omp_end_stmt): New, split from...
|
||
(parse_omp_do): ...here, and...
|
||
(parse_omp_structured_block): ...here. Handle metadirectives,
|
||
plus "allocate", "atomic", and "dispatch" which were missing.
|
||
(parse_omp_oacc_atomic): Handle "end metadirective".
|
||
(parse_openmp_allocate_block): Likewise.
|
||
(parse_omp_dispatch): Likewise.
|
||
(parse_omp_metadirective_body): New.
|
||
(parse_executable): Handle metadirective. Use new case macros
|
||
defined above.
|
||
(gfc_parse_file): Initialize metadirective state.
|
||
(is_omp_declarative_stmt): New.
|
||
* parse.h (enum gfc_compile_state): Add COMP_OMP_METADIRECTIVE
|
||
and COMP_OMP_BEGIN_METADIRECTIVE.
|
||
(gfc_omp_end_stmt): Declare.
|
||
(gfc_matching_omp_context_selector): Declare.
|
||
(gfc_in_omp_metadirective_body): Declare.
|
||
(gfc_omp_metadirective_region_count): Declare.
|
||
* resolve.cc (gfc_resolve_code): Handle EXEC_OMP_METADIRECTIVE.
|
||
* st.cc (gfc_free_statement): Likewise.
|
||
* symbol.cc (compare_st_labels): Handle labels within a metadirective
|
||
body.
|
||
(gfc_get_st_label): Likewise.
|
||
* trans-decl.cc (gfc_get_label_decl): Encode the metadirective region
|
||
in the label_name.
|
||
* trans-openmp.cc (gfc_trans_omp_directive): Handle
|
||
EXEC_OMP_METADIRECTIVE.
|
||
(gfc_trans_omp_set_selector): New, split/adapted from code....
|
||
(gfc_trans_omp_declare_variant): ...here.
|
||
(gfc_trans_omp_metadirective): New.
|
||
* trans-stmt.h (gfc_trans_omp_metadirective): Declare.
|
||
* trans.cc (trans_code): Handle EXEC_OMP_METADIRECTIVE.
|
||
|
||
2025-01-30 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* gfortran.h (gfc_omp_declare_variant): Add append_args_list.
|
||
* openmp.cc (gfc_parser_omp_clause_init_modifiers): New;
|
||
splitt of from ...
|
||
(gfc_match_omp_init): ... here; call it.
|
||
(gfc_match_omp_declare_variant): Update to handle append_args
|
||
clause; some syntax handling fixes.
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Handle
|
||
append_args clause; add some diagnostic.
|
||
|
||
2025-01-29 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/118683
|
||
* trans-expr.cc (gfc_conv_procedure_call): The bounds update for
|
||
passing to assumed-rank dummies shall also handle component
|
||
references besides inquiry references.
|
||
|
||
2025-01-27 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/110993
|
||
* frontend-passes.cc (check_externals_procedure): Do not compare
|
||
interfaces of a non-bind(C) procedure against a bind(C) global one.
|
||
(check_against_globals): Use local name from rename-on-use in the
|
||
search for interfaces.
|
||
|
||
2025-01-27 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/118640
|
||
* resolve.cc (generate_component_assignments): Make sure that
|
||
the rhs temporary does not pick up the optional attribute from
|
||
the lhs.
|
||
|
||
2025-01-26 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* openmp.cc (gfc_omp_directives): Uncomment unroll and tile lines
|
||
as the directives are by now implemented.
|
||
|
||
2025-01-26 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* openmp.cc (resolve_omp_atomic): Fix typo in error message.
|
||
|
||
2025-01-25 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/58857
|
||
* class.cc (gfc_find_derived_vtab): Declare some frontend generated
|
||
variables and procedures (_vtab, _copy, _deallocate) as artificial.
|
||
(find_intrinsic_vtab): Likewise.
|
||
* trans-decl.cc (check_block_data_decls): New helper function.
|
||
(gfc_generate_block_data): Use it to emit warnings for variables
|
||
declared in a BLOCK DATA program unit but not in a COMMON block.
|
||
|
||
2025-01-23 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/118613
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_minmaxval): Adjust algorithm
|
||
for inlined version of MINLOC and MAXLOC so that arguments are only
|
||
evaluted once, and create temporaries where necessary. Document
|
||
change of algorithm.
|
||
|
||
2025-01-23 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/96087
|
||
* trans-decl.cc (gfc_get_symbol_decl): If a dummy is missing a
|
||
backend decl, it is likely that it has come from a module proc
|
||
interface. Look for the formal symbol by name in the containing
|
||
proc and use its backend decl.
|
||
* trans-expr.cc (gfc_apply_interface_mapping_to_expr): For the
|
||
same reason, match the name, rather than the symbol address to
|
||
perform the mapping.
|
||
|
||
2025-01-20 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/107122
|
||
* openmp.cc (resolve_omp_clauses): Add 'with' to error message text.
|
||
|
||
2025-01-20 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/81978
|
||
* trans-array.cc (gfc_conv_array_parameter): Do not copy back data
|
||
if actual array parameter has the PARAMETER attribute.
|
||
* trans-expr.cc (gfc_conv_subref_array_arg): Likewise.
|
||
|
||
2025-01-16 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/118321
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Honor hidden
|
||
arguments for append_arg's need_device_ptr.
|
||
|
||
2025-01-16 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/118359
|
||
* dump-parse-tree.cc (show_external_symbol): New function.
|
||
(write_type): Add prototype, put in restrictions on what not to dump.
|
||
(has_cfi_cdesc): New function.
|
||
(need_iso_fortran_binding): New function.
|
||
(gfc_dump_c_prototypes): Adjust to take only a file output. Add
|
||
"#include <ISO_Fortran_binding.h" if CFI_cdesc_t is found.
|
||
Traverse global namespaces to dump types and the globalsymol list
|
||
to dump external symbols.
|
||
(gfc_dump_external_c_prototypes): Traverse global namespaces.
|
||
(get_c_type_name): Handle CFI_cdesc_t.
|
||
(write_proc): Also pass array spec to get_c_type_name.
|
||
* gfortran.h (gfc_dump_c_prototypes): Adjust prototype.
|
||
* parse.cc (gfc_parse_file): Adjust call to gfc_dump_c_prototypes.
|
||
|
||
2025-01-16 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* openmp.cc (gfc_omp_absent_contains_clause): Use an Oxford comma
|
||
in the message.
|
||
|
||
2025-01-16 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
PR fortran/118441
|
||
* trans-intrinsic.cc (gfc_get_symbol_for_expr): Use
|
||
gfc_new_charlen for character-returning functions.
|
||
|
||
2025-01-15 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/71884
|
||
* resolve.cc (resolve_allocate_expr): Reject intrinsic NULL as
|
||
source-expr.
|
||
|
||
2025-01-14 Sandra Loosemore <sloosemore@baylibre.com>
|
||
Kwok Cheung Yeung <kcy@codesourcery.com>
|
||
Sandra Loosemore <sandra@codesourcery.com>
|
||
Marcel Vollweiler <marcel@codesourcery.com>
|
||
|
||
PR middle-end/114596
|
||
PR middle-end/112779
|
||
PR middle-end/113904
|
||
* trans-openmp.cc (gfc_trans_omp_declare_variant): Update for changes
|
||
to omp-general.h interfaces.
|
||
|
||
2025-01-14 Anuj Mohite <anujmohite001@gmail.com>
|
||
|
||
* dump-parse-tree.cc (show_code_node): Updated to use
|
||
c->ext.concur.forall_iterator instead of c->ext.forall_iterator.
|
||
* frontend-passes.cc (index_interchange): Updated to
|
||
use c->ext.concur.forall_iterator instead of c->ext.forall_iterator.
|
||
(gfc_code_walker): Likewise.
|
||
* gfortran.h (enum locality_type): Added new enum for locality types
|
||
in DO CONCURRENT constructs.
|
||
* match.cc (match_simple_forall): Updated to use
|
||
new_st.ext.concur.forall_iterator instead of new_st.ext.forall_iterator.
|
||
(gfc_match_forall): Likewise.
|
||
(gfc_match_do): Implemented support for matching DO CONCURRENT locality
|
||
specifiers (LOCAL, LOCAL_INIT, SHARED, DEFAULT(NONE), and REDUCE).
|
||
* parse.cc (parse_do_block): Updated to use
|
||
new_st.ext.concur.forall_iterator instead of new_st.ext.forall_iterator.
|
||
* resolve.cc (struct check_default_none_data): Added struct
|
||
check_default_none_data.
|
||
(do_concur_locality_specs_f2023): New function to check compliance
|
||
with F2023's C1133 constraint for DO CONCURRENT.
|
||
(check_default_none_expr): New function to check DEFAULT(NONE)
|
||
compliance.
|
||
(resolve_locality_spec): New function to resolve locality specs.
|
||
(gfc_count_forall_iterators): Updated to use
|
||
code->ext.concur.forall_iterator.
|
||
(gfc_resolve_forall): Updated to use code->ext.concur.forall_iterator.
|
||
* st.cc (gfc_free_statement): Updated to free locality specifications
|
||
and use p->ext.concur.forall_iterator.
|
||
* trans-stmt.cc (gfc_trans_forall_1): Updated to use
|
||
code->ext.concur.forall_iterator.
|
||
|
||
2025-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* dump-parse-tree.cc (show_attr): Fix typos for in_equivalence.
|
||
|
||
2025-01-13 Paul-Antoine Arras <parras@baylibre.com>
|
||
|
||
* openmp.cc (gfc_match_omp_declare_variant): Match comma after directive
|
||
name and between clauses. Emit more useful diagnostics.
|
||
|
||
2025-01-12 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* dump-parse-tree.cc (show_attr): Dump all symbol attributes.
|
||
|
||
2025-01-12 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/115788
|
||
* check.cc (gfc_check_out_of_range): Check arguments to intrinsic.
|
||
* expr.cc (free_expr0): Fix a memleak with unsigned literals.
|
||
* gfortran.h (enum gfc_isym_id): Define GFC_ISYM_OUT_OF_RANGE.
|
||
* gfortran.texi: Add OUT_OF_RANGE to list of intrinsics supporting
|
||
UNSIGNED.
|
||
* intrinsic.cc (add_functions): Add Fortran prototype. Break some
|
||
nearby lines with excessive length.
|
||
* intrinsic.h (gfc_check_out_of_range): Add prototypes.
|
||
* intrinsic.texi: Fortran documentation of OUT_OF_RANGE.
|
||
* simplify.cc (gfc_simplify_out_of_range): Compile-time simplification
|
||
of OUT_OF_RANGE.
|
||
* trans-intrinsic.cc (gfc_conv_intrinsic_out_of_range): Generate
|
||
inline expansion of runtime code for OUT_OF_RANGE.
|
||
(gfc_conv_intrinsic_function): Use it.
|
||
|
||
2025-01-12 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
PR fortran/118432
|
||
* frontend-passes.cc (doloop_code): Select correct member
|
||
of co->ext.union for inquire.
|
||
|
||
2025-01-11 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* gfortran.h: Add OMP_LIST_INTEROP to the unnamed OMP_LIST_ enum.
|
||
* openmp.cc (gfc_match_omp_variable_list): Add reverse_order
|
||
boolean argument, defaulting to false.
|
||
(enum omp_mask2, OMP_DISPATCH_CLAUSES): Add OMP_CLAUSE_INTEROP.
|
||
(gfc_match_omp_clauses, resolve_omp_clauses): Handle dispatch's
|
||
'interop' clause.
|
||
* trans-decl.cc (gfc_get_extern_function_decl): Use sym->declared_at
|
||
instead input_location as DECL_SOURCE_LOCATION.
|
||
* trans-openmp.cc (gfc_trans_omp_clauses): Handle OMP_LIST_INTEROP.
|
||
|
||
2025-01-11 Paul Thomas <pault@gcc.gnu.org>
|
||
|
||
PR fortran/108434
|
||
* class.cc (generate_finalization_wrapper): To avoid memory
|
||
leaks from callocs, return immediately if the derived type
|
||
error flag is set.
|
||
* decl.cc (build_struct): If the declaration of a derived type
|
||
or class component does not have a deferred arrayspec, correct,
|
||
set the error flag of the derived type and emit an immediate
|
||
error.
|
||
|
||
2025-01-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/118337
|
||
* module.cc (use_iso_fortran_env_module): Add a comment explaining
|
||
the optimization performed. Add gcc_checking_assert that i was
|
||
incremented for all the elements. Formatting fix.
|
||
|
||
2025-01-09 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/118337
|
||
* resolve.cc (resolve_fl_derived0): Exempt vtypes from cycle
|
||
detection.
|
||
|
||
2025-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/118337
|
||
* module.cc (COMPAT_MOD_VERSIONS): Define.
|
||
(use_iso_fortran_env_module): Don't assume all NAMED_INTCSTs come
|
||
first followed by NAMED_UINTCSTs.
|
||
(gfc_use_module): Accept also COMPAT_MOD_VERSIONS for compatibility.
|
||
* iso-c-binding.def: Reorder entries so that the GCC 14 ones come
|
||
before the ones new in GCC 15.
|
||
* iso-fortran-env.def: Likewise.
|
||
|
||
2025-01-09 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* types.def (BT_FN_PTRMODE_PTR_INT_PTR): Add.
|
||
|
||
2025-01-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/118337
|
||
* module.cc (MOD_VERSION): Bump to "16".
|
||
|
||
2025-01-07 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* intrinsic.texi (ISO_FORTRAN_ENV): Also mention INT8 in the
|
||
text. Document UINT8, UINT16, UINT32 and UINT64.
|
||
(ISO_C_BINDING): New table for unsigned KIND numbers.
|
||
|
||
2025-01-07 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/114612
|
||
* trans-array.cc (structure_alloc_comps): Ensure deep copy is
|
||
also done for types having cycles.
|
||
|
||
2025-01-07 Andre Vehreschild <vehre@gcc.gnu.org>
|
||
|
||
PR fortran/116669
|
||
* class.cc (gfc_find_derived_vtab): Use attr to determine cyclic
|
||
type dependendies.
|
||
* expr.cc (gfc_has_default_initializer): Prevent endless
|
||
recursion by storing already visited derived types.
|
||
* resolve.cc (resolve_cyclic_derived_type): Determine if a type
|
||
is used in its hierarchy in a cyclic way.
|
||
(resolve_fl_derived0): Call resolve_cyclic_derived_type.
|
||
(resolve_fl_derived): Ensure vtab is generated when cyclic
|
||
derived types have allocatable components.
|
||
* trans-array.cc (structure_alloc_comps): Prevent endless loop
|
||
for derived type cycles.
|
||
* trans-expr.cc (gfc_get_ultimate_alloc_ptr_comps_caf_token):
|
||
Off topic, just prevent memory leaks.
|
||
|
||
2025-01-03 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||
|
||
* gfortran.texi: New subsection "Generating C prototypes from
|
||
Fortran".
|
||
|
||
2025-01-03 Harald Anlauf <anlauf@gmx.de>
|
||
|
||
PR fortran/106692
|
||
* trans-expr.cc (gfc_conv_expr_op): Inhibit excessive optimization
|
||
of Cray pointers by treating them as volatile in comparisons.
|
||
|
||
2025-01-03 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* intrinsic.texi (ATAN): Add missing verb.
|
||
|
||
2025-01-02 Tobias Burnus <tburnus@baylibre.com>
|
||
|
||
* openmp.cc (OMP_DISPATCH_CLAUSES): Add OMP_CLAUSE_HAS_DEVICE_ADDR.
|
||
|
||
2025-01-02 Paul-Antoine Arras <parras@baylibre.com>
|
||
|
||
* dump-parse-tree.cc (show_omp_clauses): Handle novariants and nocontext
|
||
clauses.
|
||
(show_omp_node): Handle EXEC_OMP_DISPATCH.
|
||
(show_code_node): Likewise.
|
||
* frontend-passes.cc (gfc_code_walker): Handle novariants and nocontext.
|
||
* gfortran.h (enum gfc_statement): Add ST_OMP_DISPATCH.
|
||
(symbol_attribute): Add omp_declare_variant_need_device_ptr.
|
||
(gfc_omp_clauses): Add novariants and nocontext.
|
||
(gfc_omp_declare_variant): Add need_device_ptr_arg_list.
|
||
(enum gfc_exec_op): Add EXEC_OMP_DISPATCH.
|
||
* match.h (gfc_match_omp_dispatch): Declare.
|
||
* openmp.cc (gfc_free_omp_clauses): Free novariants and nocontext
|
||
clauses.
|
||
(gfc_free_omp_declare_variant_list): Free need_device_ptr_arg_list
|
||
namelist.
|
||
(enum omp_mask2): Add OMP_CLAUSE_NOVARIANTS and OMP_CLAUSE_NOCONTEXT.
|
||
(gfc_match_omp_clauses): Handle OMP_CLAUSE_NOVARIANTS and
|
||
OMP_CLAUSE_NOCONTEXT.
|
||
(OMP_DISPATCH_CLAUSES): Define.
|
||
(gfc_match_omp_dispatch): New function.
|
||
(gfc_match_omp_declare_variant): Parse adjust_args.
|
||
(resolve_omp_clauses): Handle adjust_args, novariants and nocontext.
|
||
Adjust handling of OMP_LIST_IS_DEVICE_PTR.
|
||
(icode_code_error_callback): Handle EXEC_OMP_DISPATCH.
|
||
(omp_code_to_statement): Likewise.
|
||
(resolve_omp_dispatch): New function.
|
||
(gfc_resolve_omp_directive): Handle EXEC_OMP_DISPATCH.
|
||
* parse.cc (decode_omp_directive): Match dispatch.
|
||
(next_statement): Handle ST_OMP_DISPATCH.
|
||
(gfc_ascii_statement): Likewise.
|
||
(parse_omp_dispatch): New function.
|
||
(parse_executable): Handle ST_OMP_DISPATCH.
|
||
* resolve.cc (gfc_resolve_blocks): Handle EXEC_OMP_DISPATCH.
|
||
* st.cc (gfc_free_statement): Likewise.
|
||
* trans-decl.cc (create_function_arglist): Declare.
|
||
(gfc_get_extern_function_decl): Call it.
|
||
* trans-openmp.cc (gfc_trans_omp_clauses): Handle novariants and
|
||
nocontext.
|
||
(replace_omp_dispatch_call): New function.
|
||
(gfc_trans_omp_dispatch): New function.
|
||
(gfc_trans_omp_directive): Handle EXEC_OMP_DISPATCH.
|
||
(gfc_trans_omp_declare_variant): Handle adjust_args.
|
||
* trans.cc (trans_code): Handle EXEC_OMP_DISPATCH:.
|
||
|
||
2025-01-02 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.
|
||
|
||
2025-01-01 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* gfortran.texi (Function ABI Documentation): Make menu ordering
|
||
consistent with subsection ordering.
|
||
|
||
2025-01-01 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* gfortran.texi: Clean up that/which usage throughout the file.
|
||
* intrinsic.texi: Likewise.
|
||
* invoke.texi: Likewise.
|
||
|
||
2025-01-01 Sandra Loosemore <sloosemore@baylibre.com>
|
||
|
||
* intrinsic.texi: Grammar and markup fixes throughout
|
||
the file.
|
||
|
||
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
|
||
notice and this notice are preserved.
|