aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/ChangeLog
blob: dc66b3a83ea5322cb77a3bc99be2bca8eec494fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
2026-02-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/85547
	* decl.cc (gfc_match_volatile): Fix frontend memleak.
	(gfc_match_asynchronous): Likewise.
	* dump-parse-tree.cc (show_expr): Show type-spec for character
	array constructor when given.
	* simplify.cc (gfc_simplify_len): Simplify LEN() when type-spec
	is provided for character array constructor.
	* trans-intrinsic.cc (gfc_conv_intrinsic_len): Likewise.

2026-02-08  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/123961
	* check.cc (array_check): Extend check to class array functions.
	* class.cc (gfc_add_class_array_ref): Fix NULL pointer dereference.

2026-02-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/123545
	PR fortran/123673
	* decl.cc (gfc_get_pdt_instance): If a pdt_type component is
	allocatable or has allocatable components, mark it alloc_comp.
	(gfc_match_decl_type_spec): Sometimes in compiling contained
	functions, the symtree for the constructor points to the type
	instead of the constructor symbol. This corrects itself later
	in compilation so return MATCH_YES.
	* trans-decl.cc (gfc_generate_function_code): Unconditionally
	nullify allocatable components as well as applying the default
	initializer.
	* trans-expr.cc (gfc_trans_alloc_subarray_assign): Restrict the
	freeing of the destination data to non-allocatable expressions
	and, instead, add the se finalblock to the encompassing final_
	block.

2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	PR middle-end/123892
	* gfortran.h: Replace CONST_CAST with const_cast<>.
	* module.cc: Likewise.
	* openmp.cc: Likewise.
	* options.cc: Likewise.
	* parse.cc: Likewise.
	* scanner.cc: Likewise.
	* st.cc: Likewise.
	* trans-intrinsic.cc: Likewise.

2026-02-04  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/123941
	* intrinsic.texi: SPLIT is a subroutine, not a function.
	Improve documentation of its arguments.

2026-02-03  Kirill Chilikin  <chilikin.k@gmail.com>

	PR fortran/117303
	* trans-intrinsic.cc (conv_isocbinding_function):
	Assign the reference returned by C_FUNLOC to a variable.

2026-02-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/123952
	* symbol.cc (gfc_copy_dummy_sym): Ensure that external, array
	valued destination symbols have the correct interface so that
	conflicts do not arise when adding attributes.

2026-01-31  Paul Thomas  <pault@gcc.gnu.org>

	* array.cc (resolve_array_list): Use macro IS_PDT.
	* gfortran.h : Supply macros IS_PDT and IS_CLASS_PDT.
	* match.cc (gfc_match_type_is): Use IS_PDT and IS_CLASS_PDT as
	appropriate.
	* resolve.cc (gfc_resolve_ref, build_init_assign,
	resolve_component): Likewise.
	* trans-array.cc (gfc_trans_array_constructor_value,
	trans_array_constructor, structure_alloc_comps,
	has_parameterized_comps): Likewise.
	* trans-decl.cc (gfc_get_symbol_decl, gfc_init_default_dt,
	gfc_trans_deferred_vars, gfc_generate_function_code): Likewise.
	* trans-expr.cc (conv_dummy_value, gfc_conv_structure,
	gfc_trans_assignment_1): Likewise.
	* trans-stmt.cc (trans_associate_var, gfc_trans_allocate,
	gfc_trans_deallocate): Likewise.

2026-01-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/123868
	* trans-array.cc (structure_alloc_comps): For COPY_ALLOC_COMP,
	remove the add_when_allocated != NULL_TREE clause that PR121628
	added.  This clause was redundant for scalars and caused double
	allocation for arrays with nested allocatable components.

2026-01-27  Tobias Burnus  <tburnus@baylibre.com>

	* openmp.cc (resolve_omp_clauses): Reject groupprivate/device-local
	variables in MAP clauses.

2026-01-27  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	PR fortran/118955
	* decl.cc (gfc_match_gcc_builtin): Add 'fastmath' option which
	checks for fast-math before accepting a vector function.
	* gfortran.texi (!GCC$ builtin): Update documentation.

2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>

	* lang.opt.urls: Regenerated.

2026-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/123772
	* trans.cc: Add global variable is_assign_call.
	(gfc_finalize_tree_expr): Derived type function results
	with components that have defined assignements are
	handled in resolve.cc(generate_component_assignments), unless
	the assignment was replaced by a subroutine call to the
	subroutine associated with the assignment operator.
	(trans_code): In the case of EXEC_ASSIGN_CALL, set the
	is_asign_call before calling gfc_trans_call, then clear it
	after.

2026-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/123375
	* decl.cc (gfc_match_import): Check that imported entity within
	a interface is not from local scope.

2026-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/122957
	* invoke.texi: Add note that these features are incompatible
	with user defined derived type I/O. (DTIO)

2026-01-17  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/109512
	* resolve.cc (resolve_function): Check if an external
	attribute is required on a call to an external procedure.
	(resolve_call): Likewise.

2026-01-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/112460
	* array.cc (resolve_array_list): Stash the first PDT element
	and check its type specification parameters against those of
	subsequent elements.
	* expr.cc (get_parm_list_from_expr): New function to extract the
	type spec lists from expressions to be compared.
	(gfc_check_type_spec_parms): New function to compare type spec
	lists between two expressions. Emit an error if any constant
	values are different.
	(gfc_check_assign): Check that the PDT type specification parms
	are the same on lhs and rhs.
	* gfortran.h : Add prototype for gfc_check_type_spec_parms.
	* trans-expr.cc (copyable_array_p): PDT arrays are not copyable

2026-01-12  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/91960
	* resolve.cc (resolve_fl_parameter): Check the righthand symbol
	is a constant expression.

2026-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/123483
	* trans-array.cc (gfc_deallocate_alloc_comp): Ad the new
	finalization argument and pass it to structure_alloc_comps.
	* trans-array.h (gfc_deallocate_alloc_comp): Add a finalization
	flag that can be passed by gfc_conv_procedure_call.
	* trans-expr.cc (gfc_conv_procedure_call): Use the new
	finalization flag.

2026-01-08  Steve Kargl  <kargl@gcc.gnu.org>

	PR fortran/123321
	* trans-io.cc (transfer_namelist_element):  Adjust the
	conditions determining when to use the local name or
	the var name to build the object name.

2026-01-08  Steve Kargl  <kargl@gcc.gnu.org>

	PR fortran/123012
	* trans-io.cc (transfer_namelist_element): Adjust the
	conditions determining when to use the local name or
	the var name to build the object name.

2026-01-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/123071
	PR fortran/90218
	* resolve.cc (resolve_typebound_function): If a generic
	typebound procedure is marked as overridable and all the
	specific procedures are non-overridable, it is safe to resolve
	the compcall.
	* trans-array.cc (gfc_trans_array_constructor_value): PDT
	structure constructor elements must be finalized.
	(trans_array_constructor): Set 'finalize_required' for PDT
	constructors.
	* trans-decl.cc (gfc_get_symbol_decl): PDT initialization is
	required in contained namespaces as long as the parent is not
	a module.
	(gfc_init_default_pdt): Delete the stmtblock_t argument. Assign
	a variable 'value' expression using gfc_trans_assignment.
	Simplifiy the logic around the call to gfc_init_default_dt. In
	both cases return a tree expression or null tree.
	(gfc_trans_deferred_vars): Only call gfc_allocate_pdt_comp if
	gfc_init_default_pdt returns null tree.
	* trans-expr.cc (gfc_trans_alloc_subarray_assign): Add a static
	stmtblock_t pointer 'final_block'. Free 'dest' data pointer and
	add to final_block.
	(gfc_conv_structure): Set 'final_block' to the se's finalblock.
	(gfc_trans_assignment_1): Do not deallocate PDT array ctrs.
	trans-stmt.cc (gfc_trans_allocate): Also deallocate PDT expr3
	allocatable components.
	(gfc_trans_deallocate): Add PDT deallocation to se.pre instead
	of block.
	* trans-stmt.cc (gfc_trans_allocate): Free the allocatable
	components of a PDT expr3.
	(gfc_trans_deallocate): Add 'tmp' to se.pre rather than block.

2026-01-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/123029
	* io.cc (check_open_constraints): Delete erroneous check.

2026-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* libgfortran.h: Add enum for new LIBERROR_RECURSIVE_IO.

2026-01-06  supers1ngular  <supers1ngular@baylibre.com>

	* openmp.cc (gfc_match_omp_clauses): New diagnostic logic.

2026-01-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/123071
	* resolve.cc (resolve_typebound_function): Make sure that the
	class declared type is resolved.
	(resolve_allocate_deallocate): Any kind of expr3 array ref will
	need resolution not just constant size refs.
	* trans-decl.cc (gfc_trans_deferred_vars): Exclude vtabs from
	initialization.
	(emit_not_set_warning): New function using code extracted from
	gfc_generate_function_code.
	(gfc_generate_function_code): PDT module procedures results
	that have not been referenced must have the fake_result_decl
	added to the symbol and emit_not_set_warning called. Likewise
	replace explicit code with call to emit_not_set_warning.

2026-01-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/123352
	* gfortran.h: Add prototype for gfc_resolve_symbol.
	* interface.cc (matching_typebound_op): If the current
	namespace has not been resolved and the derived type is use
	associated, resolve the derived type with gfc_resolve_symbol.
	* match.cc (match_association_list): If the associate name is
	unknown type and the selector is an operator expression, copy
	the selector and call gfc_extend_expr. Replace the selector if
	there is a match, otherwise free the copy.
	* resolve.cc (gfc_resolve_symbol): New function.

2026-01-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	Revert:
	2026-01-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/119136
	* libgfortran.h: Add enum for new LIBERROR_RECURSIVE_IO.

2026-01-02  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/101399
	* io.cc (match_io): If the -Wtabs option is used, then Issue a
	warning for a <tab> character following a 'print' statement;
	otherwise ignore the <tab>.

2026-01-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/119136
	* libgfortran.h: Add enum for new LIBERROR_RECURSIVE_IO.

2026-01-01  Jakub Jelinek  <jakub@redhat.com>

	* gfortranspec.cc (lang_specific_driver): Update copyright notice
	dates.
	* gfc-internals.texi: Bump @copying's copyright year.
	* gfortran.texi: Ditto.
	* intrinsic.texi: Ditto.
	* invoke.texi: Ditto.


Copyright (C) 2026 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.