Daily bump.
[official-gcc.git] / gcc / fortran / ChangeLog
blobf6b6830698743f863008c05b49f76f4dc9ef79c2
1 2024-02-29  Alexander Westbrooks  <alexanderw@gcc.gnu.org>
3         PR fortran/82943
4         PR fortran/86148
5         PR fortran/86268
6         * decl.cc (gfc_get_pdt_instance): Set the PDT instance field
7         'f2k_derived', if not set already, to point to the given
8         PDT template 'f2k_derived' namespace in order to give the
9         PDT instance referential access to the typebound procedures
10         of the template.
11         * gfortran.h (gfc_pdt_is_instance_of): Add prototype.
12         * resolve.cc (resolve_typebound_procedure): If the derived type
13         does not have the attribute 'pdt_template' set, compare the
14         dummy argument to the 'resolve_bindings_derived' type like usual.
15         If the derived type is a 'pdt_template', then check if the
16         dummy argument is an instance of the PDT template. If the derived
17         type is a PDT template, and the dummy argument is an instance of
18         that template, but the dummy argument 'param_list' is not
19         SPEC_ASSUMED, check if there are any LEN parameters in the
20         dummy argument. If there are no LEN parameters, then this implies
21         that there are only KIND parameters in the dummy argument.
22         If there are LEN parameters, this would be an error, for all
23         LEN parameters for the dummy argument MUST be assumed for
24         typebound procedures of PDTs.
25         (resolve_pdt): Add a check for ALLOCATABLE and POINTER attributes for
26         SPEC_DEFERRED parameters of PDT class symbols.  ALLOCATABLE and
27         POINTER attributes for a PDT class symbol are stored in the
28         'class_pointer' and 'allocatable' attributes of the '_data'
29         component respectively.
30         * symbol.cc (gfc_pdt_is_instance_of): New function.
32 2024-02-26  Harald Anlauf  <anlauf@gmx.de>
34         PR fortran/114012
35         * trans-expr.cc (gfc_conv_procedure_call): Evaluate non-trivial
36         arguments just once before assigning to an unlimited polymorphic
37         dummy variable.
39 2024-02-23  Steve Kargl  <kargl@gcc.gnu.org>
40             Harald Anlauf  <anlauf@gmx.de>
42         PR fortran/114024
43         * trans-stmt.cc (gfc_trans_allocate): When a source expression has
44         substring references, part-refs, or %re/%im inquiries, wrap the
45         entity in parentheses to force evaluation of the expression.
47 2024-02-23  Tobias Burnus  <tburnus@baylibre.com>
49         * openmp.cc (gfc_match_omp_depobj): Use OPT_Wopenmp
50         as warning category in gfc_warning.
52 2024-02-20  Peter Hill  <peter.hill@york.ac.uk>
54         PR fortran/105658
55         * trans-expr.cc (gfc_conv_intrinsic_to_class): When passing an
56         array component reference of intrinsic type to a procedure
57         with an unlimited polymorphic dummy argument, a temporary
58         should be created.
60 2024-02-17  Jakub Jelinek  <jakub@redhat.com>
62         PR fortran/113503
63         * trans-expr.cc (alloc_scalar_allocatable_subcomponent): Don't
64         overwrite expr2->ts.u.cl->backend_decl, instead set size to
65         expr2->ts.u.cl->backend_decl first and use size instead of
66         expr2->ts.u.cl->backend_decl.
67         (gfc_trans_subcomponent_assign): Emit se.pre into block
68         before calling alloc_scalar_allocatable_subcomponent instead of
69         after it.
71 2024-02-17  Harald Anlauf  <anlauf@gmx.de>
73         PR fortran/113911
74         * trans-array.cc (gfc_trans_deferred_array): Do not clobber
75         deferred length for a character variable passed as dummy argument.
77 2024-02-15  Kwok Cheung Yeung  <kcyeung@baylibre.com>
79         * dump-parse-tree.cc (show_attr): Handle omp_declare_target_indirect
80         attribute.
81         * f95-lang.cc (gfc_gnu_attributes): Add entry for 'omp declare
82         target indirect'.
83         * gfortran.h (symbol_attribute): Add omp_declare_target_indirect
84         field.
85         (struct gfc_omp_clauses): Add indirect field.
86         * openmp.cc (omp_mask2): Add OMP_CLAUSE_INDIRECT.
87         (gfc_match_omp_clauses): Match indirect clause.
88         (OMP_DECLARE_TARGET_CLAUSES): Add OMP_CLAUSE_INDIRECT.
89         (gfc_match_omp_declare_target): Check omp_device_type and apply
90         omp_declare_target_indirect attribute to symbol if indirect clause
91         active.  Show warning if there are only device_type and/or indirect
92         clauses on the directive.
93         * trans-decl.cc (add_attributes_to_decl): Add 'omp declare target
94         indirect' attribute if symbol has indirect attribute set.
96 2024-02-14  Steve Kargl  <kargl@gcc.gnu.org>
98         PR fortran/105847
99         * trans-io.cc (transfer_namelist_element): When building the
100         namelist object name, if the use rename attribute is set, use
101         the local name specified in the use statement.
103 2024-02-14  Jakub Jelinek  <jakub@redhat.com>
105         * error.cc (error_print): For u printing of ptrdiff_t,
106         print ptrdiff_t argument converted to unsigned long long and
107         masked with 2ULL * PTRDIFF_MAX + 1.
109 2024-02-13  Tobias Burnus  <tburnus@baylibre.com>
111         PR middle-end/113904
112         * trans-openmp.cc (gfc_trans_omp_declare_variant): Handle splitting of
113         OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
114         * openmp.cc (gfc_match_omp_context_selector): Likewise; rejects
115         non-const device_num/condition; improve diagnostic.
117 2024-02-13  Harald Anlauf  <anlauf@gmx.de>
119         PR fortran/113866
120         * trans-expr.cc (gfc_conv_procedure_call): When passing an optional
121         dummy argument to an optional dummy argument of a bind(c) procedure
122         and the dummy argument is passed via a CFI descriptor, no special
123         presence check and passing of a default NULL pointer is needed.
125 2024-02-13  Steve Kargl  <kargl@gcc.gnu.org>
127         PR fortran/113883
128         * trans-array.cc (gfc_trans_deferred_array): Set length to zero,
129         avoiding extraneous diagnostics.
131 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
133         * error.cc (error_print): Handle z and t modifiers on d, i and u.
134         * check.cc (gfc_check_transfer): Use %zd instead of %ld and casts to
135         long.
136         * primary.cc (gfc_convert_to_structure_constructor): Use %td instead
137         of %ld and casts to long.
139 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
141         * trans-common.cc (build_common_decl): Use %wu instead of %lu and
142         casts to unsigned long.
143         * resolve.cc (resolve_ordinary_assign): Use %wd instead of %ld and
144         casts to long.
145         * array.cc (gfc_resolve_character_array_constructor): Likewise.
146         * data.cc (create_character_initializer): Likewise.
148 2024-02-09  Harald Anlauf  <anlauf@gmx.de>
150         PR fortran/113799
151         * arith.cc (reduce_unary): Remember any overflow encountered during
152         reduction of unary arithmetic operations on array constructors and
153         continue, and return error status, but terminate on serious errors.
155 2024-01-28  Harald Anlauf  <anlauf@gmx.de>
157         PR fortran/113377
158         * trans-expr.cc (conv_dummy_value): Treat NULL actual argument to
159         optional dummy with the VALUE attribute as not present.
160         (gfc_conv_procedure_call): Likewise.
162 2024-01-27  Harald Anlauf  <anlauf@gmx.de>
164         PR fortran/104908
165         * trans-array.cc (gfc_conv_array_ref): Restrict use of transformed
166         descriptor (sym->backend_decl) to the unlimited polymorphic case.
168 2024-01-24  Harald Anlauf  <anlauf@gmx.de>
170         PR fortran/113377
171         * trans-expr.cc (conv_dummy_value): New.
172         (gfc_conv_procedure_call): Factor code for handling dummy arguments
173         with the VALUE attribute in the scalar case into conv_dummy_value().
174         Reuse and adjust for calling elemental procedures.
176 2024-01-21  Harald Anlauf  <anlauf@gmx.de>
178         PR fortran/113377
179         * trans-expr.cc (gfc_conv_procedure_call): Fix handling of optional
180         scalar arguments of intrinsic type with the VALUE attribute.
182 2024-01-20  Mikael Morin  <mikael@gcc.gnu.org>
184         PR fortran/48776
185         PR fortran/111291
186         * parse.cc: Restore current interface to its previous value on error.
188 2024-01-19  Harald Anlauf  <anlauf@gmx.de>
190         PR fortran/113471
191         * trans-array.cc (array_bound_check_elemental): Array bounds check
192         shall apply here to elemental dimensions of an array section only.
194 2024-01-13  Harald Anlauf  <anlauf@gmx.de>
196         PR fortran/67277
197         * trans-intrinsic.cc (gfc_conv_intrinsic_ishftc): Handle optional
198         dummy argument for SIZE passed to ISHFTC.  Set default value to
199         BIT_SIZE(I) when missing.
201 2024-01-13  Harald Anlauf  <anlauf@gmx.de>
203         PR fortran/113305
204         * gfortran.h (gfc_loop_annot): New.
205         (gfc_iterator, gfc_forall_iterator): Use for annotation control.
206         * array.cc (gfc_copy_iterator): Adjust.
207         * gfortran.texi: Document annotations IVDEP, UNROLL n, VECTOR,
208         NOVECTOR as applied to DO CONCURRENT.
209         * parse.cc (parse_do_block): Parse annotations IVDEP, UNROLL n,
210         VECTOR, NOVECTOR as applied to DO CONCURRENT.  Apply UNROLL only to
211         first loop control variable.
212         * trans-stmt.cc (iter_info): Use gfc_loop_annot.
213         (gfc_trans_simple_do): Adjust.
214         (gfc_trans_forall_loop): Annotate loops with IVDEP, UNROLL n,
215         VECTOR, NOVECTOR as needed for DO CONCURRENT.
216         (gfc_trans_forall_1): Handle loop annotations.
218 2024-01-08  Harald Anlauf  <anlauf@gmx.de>
220         PR fortran/113245
221         * trans-intrinsic.cc (gfc_conv_intrinsic_size): Use
222         gfc_conv_expr_present() for proper check of optional DIM argument.
224 2024-01-06  Harald Anlauf  <anlauf@gmx.de>
225             José Rui Faustino de Sousa  <jrfsousa@gmail.com>
227         PR fortran/96724
228         * iresolve.cc (gfc_resolve_repeat): Force conversion to
229         gfc_charlen_int_kind before call to gfc_multiply.
231 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
233         * lang.opt.urls: New file, autogenerated by
234         regenerate-opt-urls.py.
236 2024-01-03  Harald Anlauf  <anlauf@gmx.de>
238         * trans-types.cc (gfc_get_nodesc_array_type): Clear used gmp
239         variables.
241 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
243         * gfortranspec.cc (lang_specific_driver): Update copyright notice
244         dates.
245         * gfc-internals.texi: Bump @copying's copyright year.
246         * gfortran.texi: Ditto.
247         * intrinsic.texi: Ditto.
248         * invoke.texi: Ditto.
251 Copyright (C) 2024 Free Software Foundation, Inc.
253 Copying and distribution of this file, with or without modification,
254 are permitted in any medium without royalty provided the copyright
255 notice and this notice are preserved.