]>
Commit | Line | Data |
---|---|---|
8428bcd7 GA |
1 | 2023-11-30 Harald Anlauf <anlauf@gmx.de> |
2 | ||
3 | PR fortran/112764 | |
4 | * primary.cc (gfc_variable_attr): Set TARGET attribute of associating | |
5 | entity dependent on TARGET or POINTER attribute of selector. | |
6 | ||
6c85b8a9 GA |
7 | 2023-11-28 Andrew Jenner <andrew@codesourcery.com> |
8 | Tobias Burnus <tobias@codesourcery.com> | |
9 | ||
10 | PR fortran/110415 | |
11 | * trans-expr.cc (trans_class_vptr_len_assignment): Add | |
12 | from_vptrp parameter. Populate it. Don't check for DECL_P | |
13 | when deciding whether to create temporary. | |
14 | (trans_class_pointer_fcn, gfc_trans_pointer_assignment): Add | |
15 | NULL argument to trans_class_vptr_len_assignment calls. | |
16 | (trans_class_assignment): Get rhs_vptr from | |
17 | trans_class_vptr_len_assignment and use it for determining size | |
18 | for allocation/reallocation. Use return value from realloc. | |
19 | ||
df8dfd78 GA |
20 | 2023-11-26 Harald Anlauf <anlauf@gmx.de> |
21 | ||
22 | PR fortran/111880 | |
23 | * resolve.cc (resolve_common_vars): Do not call gfc_add_in_common | |
24 | for symbols that are USE associated or used in a submodule. | |
25 | ||
77cf1dba GA |
26 | 2023-11-24 Tobias Burnus <tobias@codesourcery.com> |
27 | ||
28 | * lang.opt (Wopenmp): Add, enabled by dafault and documented in C. | |
29 | * openmp.cc (gfc_match_omp_declare_target, resolve_positive_int_expr, | |
30 | resolve_nonnegative_int_expr, resolve_omp_clauses, | |
31 | gfc_resolve_omp_do_blocks): Use OPT_Wopenmp with gfc_warning{,_now}. | |
32 | ||
33 | 2023-11-24 Tobias Burnus <tobias@codesourcery.com> | |
34 | ||
35 | * openmp.cc (gfc_match_omp_depobj): Accept optionally an argument | |
36 | to the destroy clause. | |
37 | ||
6fb55db0 GA |
38 | 2023-11-23 Harald Anlauf <anlauf@gmx.de> |
39 | ||
40 | PR fortran/112609 | |
41 | * check.cc (gfc_check_system_clock): Add checks on integer arguments | |
42 | to SYSTEM_CLOCK specific to F2023. | |
43 | * error.cc (notify_std_msg): Adjust to handle new features added | |
44 | in F2023. | |
45 | * gfortran.texi (_gfortran_set_options): Document GFC_STD_F2023_DEL, | |
46 | remove obsolete option GFC_STD_F2008_TS and fix enumeration values. | |
47 | * libgfortran.h (GFC_STD_F2023_DEL): Add and use in GFC_STD_OPT_F23. | |
48 | * options.cc (set_default_std_flags): Add GFC_STD_F2023_DEL. | |
49 | ||
c63a0bbc GA |
50 | 2023-11-17 Tobias Burnus <tobias@codesourcery.com> |
51 | ||
52 | * gfortran.texi (_gfortran_set_options): Document GFC_STD_F2023. | |
53 | * invoke.texi (std,pedantic,Wampersand,Wtabs): Add -std=2023. | |
54 | * lang.opt (std=f2023): Add. | |
55 | * libgfortran.h (GFC_STD_F2023, GFC_STD_OPT_F23): Add. | |
56 | * options.cc (set_default_std_flags): Add GFC_STD_F2023. | |
57 | (gfc_init_options): Set max_continue_free to 1,000,000. | |
58 | (gfc_post_options): Set flag_free_line_length if unset. | |
59 | (gfc_handle_option): Add OPT_std_f2023, set max_continue_free = 255 | |
60 | for -std=f2003, f2008 and f2018. | |
61 | ||
eaedb56a GA |
62 | 2023-11-14 David Malcolm <dmalcolm@redhat.com> |
63 | ||
64 | * error.cc (gfc_diagnostics_init): Use diagnostic_start_span. | |
65 | ||
c48f1056 GA |
66 | 2023-11-07 Joseph Myers <joseph@codesourcery.com> |
67 | ||
68 | * gfortran.h (gfc_real_info): Refer to C23 instead of C2X in | |
69 | comment. | |
70 | ||
2cca6ae6 GA |
71 | 2023-11-06 Martin Jambor <mjambor@suse.cz> |
72 | ||
73 | * trans-decl.cc (gfc_build_builtin_function_decls): Fix fnspec of | |
74 | generate_error. | |
75 | ||
eb4e1b62 GA |
76 | 2023-11-04 David Malcolm <dmalcolm@redhat.com> |
77 | ||
78 | * cpp.cc: Update for changes to diagnostic_context. | |
79 | * error.cc: Likewise. | |
80 | * options.cc: Likewise. | |
81 | ||
38904b73 GA |
82 | 2023-11-03 Harald Anlauf <anlauf@gmx.de> |
83 | ||
84 | PR fortran/97245 | |
85 | * match.cc (gfc_match_call): If a procedure pointer has already been | |
86 | resolved, do not create a new symbol in a procedure reference of | |
87 | the same name shadowing the first one if it is host-associated. | |
88 | ||
89 | 2023-11-03 Harald Anlauf <anlauf@gmx.de> | |
90 | ||
91 | PR fortran/92887 | |
92 | * trans-expr.cc (conv_cond_temp): Helper function for creation of a | |
93 | conditional temporary. | |
94 | (gfc_conv_procedure_call): Handle passing of allocatable or pointer | |
95 | actual argument to dummy with OPTIONAL + VALUE attribute. Actual | |
96 | arguments that are not allocated or associated are treated as not | |
97 | present. | |
98 | ||
99 | 2023-11-03 Paul Thomas <pault@gcc.gnu.org> | |
100 | ||
101 | PR fortran/98498 | |
102 | * interface.cc (upoly_ok): Defined operators using unlimited | |
103 | polymorphic formal arguments must not override the intrinsic | |
104 | operator use. | |
105 | ||
9daed0b5 GA |
106 | 2023-11-02 Paul Thomas <pault@gcc.gnu.org> |
107 | ||
108 | PR fortran/112316 | |
109 | * parse.cc (parse_associate): Remove condition that caused this | |
110 | regression. | |
111 | ||
a5c157b9 GA |
112 | 2023-10-30 Paul Thomas <pault@gcc.gnu.org> |
113 | ||
114 | PR fortran/104555 | |
115 | * resolve.cc (resolve_select_type): If the selector expression | |
116 | has no class component references and the expression is a | |
117 | derived type, copy the typespec of the symbol to that of the | |
118 | expression. | |
119 | ||
7f974c5f GA |
120 | 2023-10-27 Harald Anlauf <anlauf@gmx.de> |
121 | Steven G. Kargl <kargl@gcc.gnu.org> | |
122 | ||
123 | PR fortran/104649 | |
124 | * decl.cc (gfc_match_formal_arglist): Handle conflicting declarations | |
125 | of a MODULE PROCEDURE when one of the declarations is an alternate | |
126 | return. | |
127 | ||
128 | 2023-10-27 Paul Thomas <pault@gcc.gnu.org> | |
129 | ||
130 | PR fortran/104625 | |
131 | * expr.cc (gfc_check_vardef_context): Check that the target | |
132 | does have a vector index before emitting the specific error. | |
133 | * match.cc (copy_ts_from_selector_to_associate): Ensure that | |
134 | class valued operator expressions set the selector rank and | |
135 | use the rank to provide the associate variable with an | |
136 | appropriate array spec. | |
137 | * resolve.cc (resolve_operator): Reduce stacked parentheses to | |
138 | a single pair. | |
139 | (fixup_array_ref): Extract selector symbol from parentheses. | |
140 | ||
ecca503b GA |
141 | 2023-10-26 Paul-Antoine Arras <pa@codesourcery.com> |
142 | Tobias Burnus <tobias@codesourcery.com> | |
143 | ||
144 | * interface.cc (gfc_compare_types): Return true if one type is C_PTR | |
145 | and the other is a compatible INTEGER(8). | |
146 | * misc.cc (gfc_typename): Handle the case where an INTEGER(8) actually | |
147 | holds a TYPE(C_PTR). | |
148 | ||
f75fc1f0 GA |
149 | 2023-10-25 Thomas Schwinge <thomas@codesourcery.com> |
150 | ||
151 | * openmp.cc (omp_mask2): Split 'OMP_CLAUSE_HOST_SELF' into | |
152 | 'OMP_CLAUSE_SELF', 'OMP_CLAUSE_HOST'. | |
153 | (gfc_match_omp_clauses, OACC_UPDATE_CLAUSES): Adjust. | |
154 | ||
155 | 2023-10-25 Chung-Lin Tang <cltang@codesourcery.com> | |
156 | ||
157 | * gfortran.h (typedef struct gfc_omp_clauses): Add self_expr field. | |
158 | * openmp.cc (enum omp_mask2): Add OMP_CLAUSE_SELF. | |
159 | (gfc_match_omp_clauses): Add handling for OMP_CLAUSE_SELF. | |
160 | (OACC_PARALLEL_CLAUSES): Add OMP_CLAUSE_SELF. | |
161 | (OACC_KERNELS_CLAUSES): Likewise. | |
162 | (OACC_SERIAL_CLAUSES): Likewise. | |
163 | (resolve_omp_clauses): Add handling for omp_clauses->self_expr. | |
164 | * trans-openmp.cc (gfc_trans_omp_clauses): Add handling of | |
165 | clauses->self_expr and building of OMP_CLAUSE_SELF tree clause. | |
166 | (gfc_split_omp_clauses): Add handling of self_expr field copy. | |
167 | ||
168 | 2023-10-25 Thomas Schwinge <thomas@codesourcery.com> | |
169 | ||
170 | * dump-parse-tree.cc (show_omp_clauses): Group handling of 'if' | |
171 | clause without and with modifier. | |
172 | * frontend-passes.cc (gfc_code_walker): Likewise. | |
173 | * gfortran.h (gfc_omp_clauses): Likewise. | |
174 | * openmp.cc (gfc_free_omp_clauses): Likewise. | |
175 | ||
0308461d GA |
176 | 2023-10-18 Tobias Burnus <tobias@codesourcery.com> |
177 | ||
178 | * intrinsic.texi (signal): Add 'intrinsic :: signal, sleep' to | |
179 | the example to make it safer. | |
180 | ||
fb69acff GA |
181 | 2023-10-17 Harald Anlauf <anlauf@gmx.de> |
182 | ||
183 | PR fortran/111837 | |
184 | * frontend-passes.cc (traverse_io_block): Dependency check of loop | |
185 | nest shall be triangular, not banded. | |
186 | ||
187 | 2023-10-17 Tobias Burnus <tobias@codesourcery.com> | |
188 | ||
189 | * intrinsic.texi (signal): Mention that the argument | |
190 | passed to the signal handler procedure is passed by reference. | |
191 | Extend example. | |
192 | ||
d5cfabc6 GA |
193 | 2023-10-15 Tobias Burnus <tobias@codesourcery.com> |
194 | ||
195 | * scanner.cc (skip_free_comments, skip_fixed_comments): Remove | |
196 | leftover 'OpenACC' from comments about OpenMP's conditional | |
197 | compilation sentinel. | |
198 | ||
b3cb98d7 GA |
199 | 2023-10-14 Tobias Burnus <tobias@codesourcery.com> |
200 | ||
201 | * gfortran.h (ext_attr_t): Add omp_allocate flag. | |
202 | * match.cc (gfc_free_omp_namelist): Void deleting same | |
203 | u2.allocator multiple times now that a sequence can use | |
204 | the same one. | |
205 | * openmp.cc (gfc_match_omp_clauses, gfc_match_omp_allocate): Use | |
206 | same allocator expr multiple times. | |
207 | (is_predefined_allocator): Make static. | |
208 | (gfc_resolve_omp_allocate): Update/extend restriction checks; | |
209 | remove sorry message. | |
210 | (resolve_omp_clauses): Reject corarrays in allocate/allocators | |
211 | directive. | |
212 | * parse.cc (check_omp_allocate_stmt): Permit procedure pointers | |
213 | here (rejected later) for less misleading diagnostic. | |
214 | * trans-array.cc (gfc_trans_auto_array_allocation): Propagate | |
215 | size for GOMP_alloc and location to which it should be added to. | |
216 | * trans-decl.cc (gfc_trans_deferred_vars): Handle 'omp allocate' | |
217 | for stack variables; sorry for static variables/common blocks. | |
218 | * trans-openmp.cc (gfc_trans_omp_clauses): Evaluate 'allocate' | |
219 | clause's allocator only once; fix adding expressions to the | |
220 | block. | |
221 | (gfc_trans_omp_single): Pass a block to gfc_trans_omp_clauses. | |
222 | ||
300d7d3a GA |
223 | 2023-10-13 Harald Anlauf <anlauf@gmx.de> |
224 | ||
225 | PR fortran/104351 | |
226 | * decl.cc (get_proc_name): Extend name conflict detection between | |
227 | internal procedure and previous declaration also to derived type. | |
228 | ||
229 | 2023-10-13 Harald Anlauf <anlauf@gmx.de> | |
230 | ||
231 | PR fortran/110957 | |
232 | * invoke.texi: Update documentation to reflect '-ffpe-trap=none'. | |
233 | * options.cc (gfc_handle_fpe_option): Fix mixup up of error messages | |
234 | for options -ffpe-trap and -ffpe-summary. Accept '-ffpe-trap=none' | |
235 | to clear FPU traps previously set on command line. | |
236 | ||
237 | 2023-10-13 Richard Biener <rguenther@suse.de> | |
238 | ||
239 | PR tree-optimization/111779 | |
240 | * trans-expr.cc (gfc_trans_assignment_1): Initialize | |
241 | lhs_caf_attr and rhs_caf_attr codimension flag to avoid | |
242 | false positive -Wuninitialized. | |
243 | ||
f9ef2e6d GA |
244 | 2023-10-12 Paul Thomas <pault@gcc.gnu.org> |
245 | ||
246 | PR fortran/67740 | |
247 | * trans-expr.cc (gfc_trans_pointer_assignment): Set the hidden | |
248 | string length component for pointer assignment to character | |
249 | pointer components. | |
250 | ||
00c67d62 GA |
251 | 2023-10-08 Tobias Burnus <tobias@codesourcery.com> |
252 | ||
253 | * parse.cc (parse_omp_structured_block): Make the user code end | |
254 | up inside of BLOCK construct for strictly structured blocks; | |
255 | fix fallout for 'section' and 'teams'. | |
256 | * openmp.cc (resolve_omp_target): Fix changed BLOCK handling | |
257 | for teams in target checking. | |
258 | ||
bf2e66e3 GA |
259 | 2023-10-04 Paul Thomas <pault@gcc.gnu.org> |
260 | ||
261 | PR fortran/37336 | |
262 | PR fortran/111674 | |
263 | * trans-expr.cc (gfc_trans_scalar_assign): Finalize components | |
264 | on deallocation if derived type is not finalizable. | |
265 | ||
96557ee6 GA |
266 | 2023-10-03 David Malcolm <dmalcolm@redhat.com> |
267 | ||
268 | * error.cc (gfc_format_decoder): Update for "m_" prefixes to | |
269 | text_info fields. | |
270 | ||
41d1c9a9 GA |
271 | 2023-10-02 David Malcolm <dmalcolm@redhat.com> |
272 | ||
273 | * error.cc (gfc_diagnostics_init): Update for change to start_span. | |
274 | ||
275 | 2023-10-02 David Malcolm <dmalcolm@redhat.com> | |
276 | ||
277 | * error.cc (gfc_diagnostic_starter): Update for reorganization of | |
278 | source-printing fields of diagnostic_context. | |
279 | (gfc_diagnostics_init): Likewise. | |
280 | (gfc_diagnostics_finish): Likewise. | |
281 | ||
87c00507 GA |
282 | 2023-09-29 Andre Vehreschild <vehre@gcc.gnu.org> |
283 | ||
284 | PR fortran/37336 | |
285 | * trans-array.cc (structure_alloc_comps): Deref coarray. | |
286 | (gfc_trans_deferred_array): Add freeing of components after | |
287 | check for allocated coarray. | |
288 | ||
1eb80f78 GA |
289 | 2023-09-24 Paul Thomas <pault@gcc.gnu.org> |
290 | ||
291 | PR fortran/68155 | |
292 | PR fortran/111271 | |
293 | * decl.cc (fix_initializer_charlen): New function broken out of | |
294 | add_init_expr_to_sym. | |
295 | (add_init_expr_to_sym, build_struct): Call the new function. | |
296 | * trans-expr.cc (gfc_conv_intrinsic_to_class): Remove repeated | |
297 | condition. | |
298 | ||
08b887fd GA |
299 | 2023-09-23 Harald Anlauf <anlauf@gmx.de> |
300 | ||
301 | PR fortran/95710 | |
302 | * class.cc (gfc_build_class_symbol): Do not try to build class | |
303 | container for invalid typespec. | |
304 | * resolve.cc (resolve_fl_var_and_proc): Prevent NULL pointer | |
305 | dereference. | |
306 | (resolve_symbol): Likewise. | |
307 | ||
590a8bec GA |
308 | 2023-09-19 Harald Anlauf <anlauf@gmx.de> |
309 | ||
310 | PR fortran/70231 | |
311 | * trans-array.cc (trans_array_constructor): In absence of a typespec, | |
312 | use string length determined by get_array_ctor_strlen() to reasonably | |
313 | initialize auxiliary variable for bounds-checking. | |
314 | ||
37bbfd1c GA |
315 | 2023-09-15 Harald Anlauf <anlauf@gmx.de> |
316 | ||
317 | PR fortran/30802 | |
318 | * trans-array.cc (trans_array_bound_check): Add optional argument | |
319 | COMPNAME for explicit specification of array component name. | |
320 | (array_bound_check_elemental): Helper function for generating | |
321 | bounds-checking code for elemental dimensions. | |
322 | (gfc_conv_expr_descriptor): Use bounds-checking also for elemental | |
323 | dimensions, i.e. those not handled by the scalarizer. | |
324 | ||
325 | 2023-09-15 Mikael Morin <mikael@gcc.gnu.org> | |
326 | ||
327 | PR fortran/108957 | |
328 | * gfortran.h (gfc_symbol): Add comment documenting reference counting. | |
329 | * parse.cc (parse_interface): Remove reference count incrementation. | |
330 | ||
a1c20158 GA |
331 | 2023-09-12 Mikael Morin <mikael@gcc.gnu.org> |
332 | ||
333 | PR fortran/110996 | |
334 | * gfortran.h (gfc_release_symbol): Set return type to bool. | |
335 | * symbol.cc (gfc_release_symbol): Ditto. Return whether symbol was | |
336 | freed. | |
337 | (delete_symbol_from_ns): New, outline code from... | |
338 | (gfc_restore_last_undo_checkpoint): ... here. Delete new symbols | |
339 | from two more namespaces. | |
340 | ||
a467cfd0 GA |
341 | 2023-09-09 Mikael Morin <mikael@gcc.gnu.org> |
342 | ||
343 | * bbt.cc (delete_treap): Add argument REMOVED, set it to the removed | |
344 | element from the tree. Change NULL to nullptr. | |
345 | (gfc_delete_bbt): Return the removed element from the tree. | |
346 | * gfortran.h (gfc_delete_symtree): Remove prototype. | |
347 | (gfc_delete_bbt): Set return type to pointer. | |
348 | * symbol.cc (gfc_delete_symtree): Make static. Get the element to be | |
349 | freed from the result of gfc_delete_bbt. Remove the preliminary walk to | |
350 | get it. | |
351 | ||
80907b03 GA |
352 | 2023-09-01 Harald Anlauf <anlauf@gmx.de> |
353 | ||
354 | PR fortran/31059 | |
355 | * trans-array.cc (gfc_conv_ss_startstride): For array bounds checking, | |
356 | consider also array constructors in expressions, and use their shape. | |
357 | ||
65c36ecc GA |
358 | 2023-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
359 | ||
360 | * gfortran.texi: Likewise. | |
361 | ||
ffb8568a GA |
362 | 2023-08-30 Mikael Morin <mikael@gcc.gnu.org> |
363 | ||
364 | PR fortran/48776 | |
365 | * gfortran.h (gfc_drop_interface_elements_before): New prototype. | |
366 | (gfc_current_interface_head): Return a reference to the pointer. | |
367 | * interface.cc (gfc_current_interface_head): Ditto. | |
368 | (free_interface_elements_until): New function, generalizing | |
369 | gfc_free_interface. | |
370 | (gfc_free_interface): Use free_interface_elements_until. | |
371 | (gfc_drop_interface_elements_before): New function. | |
372 | * parse.cc | |
373 | (current_interface_ptr, previous_interface_head): New static variables. | |
374 | (current_interface_valid_p, get_current_interface_ptr): New functions. | |
375 | (decode_statement): Initialize previous_interface_head. | |
376 | (reject_statement): Restore current interface pointer to point to | |
377 | previous_interface_head. | |
378 | ||
7997f0d3 GA |
379 | 2023-08-26 Paul Thomas <pault@gcc.gnu.org> |
380 | ||
381 | PR fortran/92586 | |
382 | * trans-expr.cc (gfc_trans_arrayfunc_assign): Supply a missing | |
383 | dereference for the call to gfc_deallocate_alloc_comp_no_caf. | |
384 | ||
b8863640 GA |
385 | 2023-08-25 Sandra Loosemore <sandra@codesourcery.com> |
386 | ||
387 | * gfortran.h (struct gfc_namespace): Add omp_structured_block bit. | |
388 | * openmp.cc: Include omp-api.h. | |
389 | (resolve_omp_clauses): Consolidate inscan reduction clause conflict | |
390 | checking here. | |
391 | (find_nested_loop_in_chain): New. | |
392 | (find_nested_loop_in_block): New. | |
393 | (gfc_resolve_omp_do_blocks): Set omp_current_do_collapse properly. | |
394 | Handle imperfectly-nested loops when looking for nested omp scan. | |
395 | Refactor to move inscan reduction clause conflict checking to | |
396 | resolve_omp_clauses. | |
397 | (gfc_resolve_do_iterator): Handle imperfectly-nested loops. | |
398 | (struct icode_error_state): New. | |
399 | (icode_code_error_callback): New. | |
400 | (icode_expr_error_callback): New. | |
401 | (diagnose_intervening_code_errors_1): New. | |
402 | (diagnose_intervening_code_errors): New. | |
403 | (make_structured_block): New. | |
404 | (restructure_intervening_code): New. | |
405 | (is_outer_iteration_variable): Do not assume loops are perfectly | |
406 | nested. | |
407 | (check_nested_loop_in_chain): New. | |
408 | (check_nested_loop_in_block_state): New. | |
409 | (check_nested_loop_in_block_symbol): New. | |
410 | (check_nested_loop_in_block): New. | |
411 | (expr_uses_intervening_var): New. | |
412 | (is_intervening_var): New. | |
413 | (expr_is_invariant): Do not assume loops are perfectly nested. | |
414 | (resolve_omp_do): Handle imperfectly-nested loops. | |
415 | * trans-stmt.cc (gfc_trans_block_construct): Generate | |
416 | OMP_STRUCTURED_BLOCK if magic bit is set on block namespace. | |
417 | ||
418 | 2023-08-25 Harald Anlauf <anlauf@gmx.de> | |
419 | ||
420 | PR fortran/35095 | |
421 | * data.cc (get_array_index): Add bounds-checking code and return error | |
422 | status. Overindexing will be allowed as an extension for -std=legacy | |
423 | and generate an error in standard-conforming mode. | |
424 | (gfc_assign_data_value): Use error status from get_array_index for | |
425 | graceful error recovery. | |
426 | ||
427 | 2023-08-25 Uros Bizjak <ubizjak@gmail.com> | |
428 | ||
429 | * match.cc (gfc_match_equivalence): Rename TRUE/FALSE to true/false. | |
430 | * module.cc (check_access): Ditto. | |
431 | * primary.cc (match_real_constant): Ditto. | |
432 | * trans-array.cc (gfc_trans_allocate_array_storage): Ditto. | |
433 | (get_array_ctor_strlen): Ditto. | |
434 | * trans-common.cc (find_equivalence): Ditto. | |
435 | (add_equivalences): Ditto. | |
436 | ||
4e27ba6e GA |
437 | 2023-08-23 Harald Anlauf <anlauf@gmx.de> |
438 | ||
439 | PR fortran/32986 | |
440 | * resolve.cc (is_non_constant_shape_array): Add forward declaration. | |
441 | (resolve_common_vars): Diagnose automatic array object in COMMON. | |
442 | (resolve_symbol): Prevent confusing follow-on error. | |
443 | ||
6cd85273 GA |
444 | 2023-08-22 Tobias Burnus <tobias@codesourcery.com> |
445 | ||
446 | * gfortran.h (enum gfc_omp_defaultmap_category): | |
447 | Add OMP_DEFAULTMAP_CAT_ALL. | |
448 | * openmp.cc (gfc_match_omp_clauses): Parse | |
449 | 'all' as category. | |
450 | * trans-openmp.cc (gfc_trans_omp_clauses): Handle it. | |
451 | ||
452 | 2023-08-22 Harald Anlauf <anlauf@gmx.de> | |
453 | ||
454 | PR fortran/49588 | |
455 | * data.cc (gfc_advance_section): Derive next index set and next offset | |
456 | into DATA variable also for array references using vector sections. | |
457 | Use auxiliary array to keep track of offsets into indexing vectors. | |
458 | (gfc_get_section_index): Set up initial indices also for DATA variables | |
459 | with array references using vector sections. | |
460 | * data.h (gfc_get_section_index): Adjust prototype. | |
461 | (gfc_advance_section): Likewise. | |
462 | * resolve.cc (check_data_variable): Pass vector offsets. | |
463 | ||
8e71ad9e GA |
464 | 2023-08-16 Harald Anlauf <anlauf@gmx.de> |
465 | ||
466 | PR fortran/110360 | |
467 | * trans-expr.cc (conv_scalar_char_value): Use gfc_replace_expr to | |
468 | avoid leaking replaced gfc_expr. | |
469 | ||
b01e96f8 GA |
470 | 2023-08-15 Martin Jambor <mjambor@suse.cz> |
471 | Harald Anlauf <anlauf@gmx.de> | |
472 | ||
473 | PR fortran/110677 | |
474 | * resolve.cc (resolve_structure_cons): Check comp->ts is character | |
475 | type before accessing stuff through comp->ts.u.cl. | |
476 | ||
477 | 2023-08-15 Chung-Lin Tang <cltang@codesourcery.com> | |
478 | Thomas Schwinge <thomas@codesourcery.com> | |
479 | ||
480 | * openmp.cc (OACC_DATA_CLAUSES): Add OMP_CLAUSE_DEFAULT. | |
481 | ||
3cc78cf2 GA |
482 | 2023-08-14 Mikael Morin <mikael@gcc.gnu.org> |
483 | ||
484 | PR fortran/110360 | |
485 | PR fortran/110419 | |
486 | * trans-types.cc (gfc_sym_type): Use a bare character type for length | |
487 | one value character dummy arguments. | |
488 | * trans-expr.cc (gfc_conv_string_parameter): Handle single character | |
489 | case. | |
490 | (gfc_conv_procedure_call): Don't exclude interoperable kinds | |
491 | from single character handling. For single character dummy arguments, | |
492 | extend the existing handling of non-constant expressions to constant | |
493 | expressions. | |
494 | ||
495 | 2023-08-14 Mikael Morin <mikael@gcc.gnu.org> | |
496 | ||
497 | * gfortran.h (gfc_length_one_character_type_p): New inline | |
498 | function. | |
499 | * check.cc (is_c_interoperable): Use | |
500 | gfc_length_one_character_type_p. | |
501 | * decl.cc (verify_bind_c_sym): Same. | |
502 | * trans-expr.cc (gfc_conv_procedure_call): Same. | |
503 | ||
9b099a83 GA |
504 | 2023-08-09 Steve Kargl <sgk@troutmask.apl.washington.edu> |
505 | ||
506 | PR fortran/109684 | |
507 | * resolve.cc (resolve_types): Exclude contained procedures with | |
508 | the artificial attribute from test for pureness. | |
509 | ||
a2f31d79 GA |
510 | 2023-07-31 Chung-Lin Tang <cltang@codesourcery.com> |
511 | ||
512 | * openmp.cc (resolve_omp_clauses): Add checking requiring | |
513 | OpenACC host_data construct to have an use_device clause. | |
514 | ||
e0f91730 GA |
515 | 2023-07-28 Harald Anlauf <anlauf@gmx.de> |
516 | ||
517 | PR fortran/110825 | |
518 | * gfortran.texi: Clarify argument passing convention. | |
519 | * trans-expr.cc (gfc_conv_procedure_call): Do not pass the character | |
520 | length as hidden argument when the declared dummy argument is | |
521 | assumed-type. | |
522 | ||
0c7b0745 GA |
523 | 2023-07-27 Tobias Burnus <tobias@codesourcery.com> |
524 | ||
525 | * openmp.cc (resolve_omp_target): Minor cleanup. | |
526 | * parse.cc (decode_omp_directive): Find TARGET statement | |
527 | also higher in the stack. | |
528 | ||
5278cd6a GA |
529 | 2023-07-26 Harald Anlauf <anlauf@gmx.de> |
530 | ||
531 | PR fortran/68569 | |
532 | * resolve.cc (check_data_variable): Do not accept strings with | |
533 | deferred length or non-constant length in a DATA statement. | |
534 | Reject also substrings of string variables of non-constant length. | |
535 | ||
af37e394 GA |
536 | 2023-07-25 Tobias Burnus <tobias@codesourcery.com> |
537 | ||
538 | PR fortran/110725 | |
539 | PR middle-end/71065 | |
540 | * gfortran.h (gfc_omp_clauses): Add target_first_st_is_teams. | |
541 | * parse.cc (parse_omp_structured_block): Set it if the first | |
542 | statement in the structured block of a TARGET is TEAMS or | |
543 | a combined/composite starting with TEAMS. | |
544 | * openmp.cc (resolve_omp_target): Also show an error for | |
545 | contains_teams_construct without target_first_st_is_teams. | |
546 | ||
87d4356c GA |
547 | 2023-07-24 Tobias Burnus <tobias@codesourcery.com> |
548 | ||
549 | PR fortran/110725 | |
550 | PR middle-end/71065 | |
551 | * gfortran.h (gfc_omp_clauses): Add contains_teams_construct. | |
552 | * openmp.cc (resolve_omp_target): New; check for teams nesting. | |
553 | (gfc_resolve_omp_directive): Call it. | |
554 | * parse.cc (decode_omp_directive): Set contains_teams_construct | |
555 | on enclosing ST_OMP_TARGET. | |
556 | ||
e2bf82d5 GA |
557 | 2023-07-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
558 | ||
559 | * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): Only | |
560 | define it once. | |
561 | ||
562 | 2023-07-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
563 | ||
564 | * f95-lang.cc (gfc_init_builtin_functions): Add __builtin_iseqsig. | |
565 | * trans-intrinsic.cc (conv_intrinsic_ieee_comparison): New | |
566 | function. | |
567 | (gfc_conv_ieee_arithmetic_function): Handle IEEE comparisons. | |
568 | ||
49bed11d GA |
569 | 2023-07-19 Tobias Burnus <tobias@codesourcery.com> |
570 | ||
571 | PR fortran/107424 | |
572 | * trans-openmp.cc (gfc_nonrect_loop_expr): Accept all | |
573 | constant loop steps. | |
574 | (gfc_trans_omp_do): Likewise; use sign to determine | |
575 | loop direction. | |
576 | ||
473c1b58 GA |
577 | 2023-07-17 Harald Anlauf <anlauf@gmx.de> |
578 | ||
579 | PR fortran/95947 | |
580 | PR fortran/110658 | |
581 | * trans-expr.cc (gfc_conv_procedure_call): For intrinsic procedures | |
582 | whose result characteristics depends on the first argument and which | |
583 | can be of type character, the character length will not be deferred. | |
584 | ||
585 | 2023-07-17 Tobias Burnus <tobias@codesoucery.com> | |
586 | Chung-Lin Tang <cltang@codesourcery.com> | |
587 | ||
588 | * dump-parse-tree.cc (show_omp_namelist, show_omp_clauses): Dump | |
589 | uses_allocators clause. | |
590 | * gfortran.h (gfc_free_omp_namelist): Add memspace_sym to u union | |
591 | and traits_sym to u2 union. | |
592 | (OMP_LIST_USES_ALLOCATORS): New enum value. | |
593 | (gfc_free_omp_namelist): Add 'bool free_mem_traits_space' arg. | |
594 | * match.cc (gfc_free_omp_namelist): Likewise. | |
595 | * openmp.cc (gfc_free_omp_clauses, gfc_match_omp_variable_list, | |
596 | gfc_match_omp_to_link, gfc_match_omp_doacross_sink, | |
597 | gfc_match_omp_clause_reduction, gfc_match_omp_allocate, | |
598 | gfc_match_omp_flush): Update call. | |
599 | (gfc_match_omp_clauses): Likewise. Parse uses_allocators clause. | |
600 | (gfc_match_omp_clause_uses_allocators): New. | |
601 | (enum omp_mask2): Add new OMP_CLAUSE_USES_ALLOCATORS. | |
602 | (OMP_TARGET_CLAUSES): Accept it. | |
603 | (resolve_omp_clauses): Resolve uses_allocators clause | |
604 | * st.cc (gfc_free_statement): Update gfc_free_omp_namelist call. | |
605 | * trans-openmp.cc (gfc_trans_omp_clauses): Handle | |
606 | OMP_LIST_USES_ALLOCATORS; fail with sorry unless predefined allocator. | |
607 | (gfc_split_omp_clauses): Handle uses_allocators. | |
608 | ||
609 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
610 | ||
611 | PR fortran/110618 | |
612 | * trans.h (gfc_deallocate_with_status): Add class container | |
613 | argument. | |
614 | (gfc_deallocate_scalar_with_status): Ditto. | |
615 | * trans.cc (gfc_deallocate_with_status): Add class container | |
616 | argument and pass it down to gfc_add_finalize_call. | |
617 | (gfc_deallocate_scalar_with_status): Same. | |
618 | * trans-array.cc (structure_alloc_comps): Update caller. | |
619 | * trans-stmt.cc (gfc_trans_deallocate): Ditto. | |
620 | * trans-expr.cc (gfc_conv_procedure_call): Ditto. Pass | |
621 | pre-evaluated class container argument if it's available. | |
622 | ||
623 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
624 | ||
625 | PR fortran/110618 | |
626 | * trans.h (gfc_add_finalizer_call): Add class container argument. | |
627 | * trans.cc (gfc_add_finalizer_call): Ditto. Pass down new | |
628 | argument to get_final_proc_ref, get_elem_size, get_var_desc, | |
629 | and get_vptr. | |
630 | (get_elem_size): Add class container argument. | |
631 | Use provided class container if it's available. | |
632 | (get_var_descr): Same. | |
633 | (get_vptr): Same. | |
634 | (get_final_proc_ref): Same. Add boolean telling the class | |
635 | container argument is used. Set it. Don't try to use | |
636 | final_wrapper if class container argument was used. | |
637 | ||
638 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
639 | ||
640 | * trans.cc (get_var_descr): Factor scalar descriptor generation. | |
641 | ||
642 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
643 | ||
644 | * trans.cc (get_vptr): New function. | |
645 | (gfc_add_finalizer_call): Move virtual table pointer evaluation | |
646 | to get_vptr. | |
647 | ||
648 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
649 | ||
650 | * trans.cc (get_var_descr): Remove argument ts. Use var->ts | |
651 | instead. | |
652 | (gfc_add_finalizer_call): Update caller. | |
653 | ||
654 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
655 | ||
656 | * trans.cc (gfc_add_finalizer_call): Inline definition of | |
657 | variable has_finalizer. Merge nested conditions. | |
658 | ||
659 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
660 | ||
661 | * trans.cc (gfc_add_finalizer_call): Remove local variable | |
662 | final_expr. Pass down expr to get_final_proc_ref and move | |
663 | final procedure expression generation down to its one usage | |
664 | in get_final_proc_ref. | |
665 | (get_final_proc_ref): Add argument expr. Remove argument | |
666 | final_wrapper. Recreate final_wrapper from expr. | |
667 | ||
668 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
669 | ||
670 | * trans.cc (gfc_add_finalizer_call): Remove local variable | |
671 | elem_size. Pass expression to get_elem_size and move the | |
672 | element size expression generation close to its usage there. | |
673 | (get_elem_size): Add argument expr, remove class_size argument | |
674 | and rebuild it from expr. Remove ts argument and use the | |
675 | type of expr instead. | |
676 | ||
677 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
678 | ||
679 | * trans.cc (gfc_add_finalizer_call): Move pre and post code for | |
680 | the final procedure pointer expression to the outer block. | |
681 | Reuse the previously evaluated final procedure pointer | |
682 | expression. | |
683 | ||
684 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
685 | ||
686 | * trans.cc (gfc_add_finalizer_call): Add post code for desc_se | |
687 | after the finalizer call. Add post code for final_se and | |
688 | size_se as well. | |
689 | ||
690 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
691 | ||
692 | * trans.cc (gfc_build_final_call): Inline... | |
693 | (gfc_add_finalizer_call): ... to its one caller. | |
694 | ||
695 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
696 | ||
697 | * trans.cc (get_var_descr): New function. | |
698 | (gfc_build_final_call): Outline the data reference descriptor | |
699 | evaluation code to get_var_descr. | |
700 | ||
701 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
702 | ||
703 | * trans.cc (get_elem_size): New function. | |
704 | (gfc_build_final_call): Outline the element size evaluation | |
705 | to get_elem_size. | |
706 | ||
707 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
708 | ||
709 | * trans.cc (get_final_proc_ref): New function. | |
710 | (gfc_build_final_call): Outline the pointer evaluation code | |
711 | to get_final_proc_ref. | |
712 | ||
713 | 2023-07-17 Mikael Morin <mikael@gcc.gnu.org> | |
714 | ||
715 | * trans.cc (gfc_build_final_call): Remove commented assertion. | |
716 | ||
18dac101 GA |
717 | 2023-07-14 Mikael Morin <mikael@gcc.gnu.org> |
718 | ||
719 | PR fortran/92178 | |
720 | * trans.h (gfc_reset_vptr): Add class_container argument. | |
721 | * trans-expr.cc (gfc_reset_vptr): Ditto. If a valid vptr can | |
722 | be obtained through class_container argument, bypass evaluation | |
723 | of e. | |
724 | (gfc_conv_procedure_call): Wrap the argument evaluation code | |
725 | in a conditional if the associated dummy is optional. Evaluate | |
726 | the data reference to a pointer now, and replace later | |
727 | references with usage of the pointer. | |
728 | ||
729 | 2023-07-14 Mikael Morin <mikael@gcc.gnu.org> | |
730 | ||
731 | PR fortran/92178 | |
732 | * trans.h (struct gfc_se): New field class_container. | |
733 | (struct gfc_ss_info): Ditto. | |
734 | (gfc_evaluate_data_ref_now): New prototype. | |
735 | * trans.cc (gfc_evaluate_data_ref_now): Implement it. | |
736 | * trans-array.cc (gfc_conv_ss_descriptor): Copy class_container | |
737 | field from gfc_se struct to gfc_ss_info struct. | |
738 | (gfc_conv_expr_descriptor): Copy class_container field from | |
739 | gfc_ss_info struct to gfc_se struct. | |
740 | * trans-expr.cc (gfc_conv_class_to_class): Use class container | |
741 | set in class_container field if available. | |
742 | (gfc_conv_variable): Set class_container field on encountering | |
743 | class variables or components, clear it on encountering | |
744 | non-class components. | |
745 | (gfc_conv_procedure_call): Evaluate data ref to a pointer now, | |
746 | and replace later references by usage of the pointer. | |
747 | ||
748 | 2023-07-14 Mikael Morin <mikael@gcc.gnu.org> | |
749 | ||
750 | PR fortran/92178 | |
751 | * trans-expr.cc (gfc_conv_procedure_call): Use a separate gfc_se | |
752 | struct, initalized from parmse, to generate the class wrapper. | |
753 | After the class wrapper code has been generated, copy it back | |
754 | depending on whether parameter deallocation code has been | |
755 | generated. | |
756 | ||
3d0ca8b5 GA |
757 | 2023-07-13 Mikael Morin <mikael@gcc.gnu.org> |
758 | ||
759 | PR fortran/106050 | |
760 | * symbol.cc (gfc_restore_last_undo_checkpoint): Release symbols | |
761 | in reverse order. | |
762 | ||
15939bae GA |
763 | 2023-07-12 Andre Vehreschild <vehre@gcc.gnu.org> |
764 | ||
765 | PR fortran/102003 | |
766 | * expr.cc (find_inquiry_ref): Replace len of pdt_string by | |
767 | constant. | |
768 | (simplify_ref_chain): Ensure input to find_inquiry_ref is | |
769 | NULL. | |
770 | (gfc_match_init_expr): Prevent PDT analysis for function calls. | |
771 | (gfc_pdt_find_component_copy_initializer): Get the initializer | |
772 | value for given component. | |
773 | * gfortran.h (gfc_pdt_find_component_copy_initializer): New | |
774 | function. | |
775 | * simplify.cc (gfc_simplify_len): Replace len() of PDT with pdt | |
776 | component ref or constant. | |
777 | ||
af3d3ce3 GA |
778 | 2023-07-11 Harald Anlauf <anlauf@gmx.de> |
779 | ||
780 | PR fortran/110288 | |
781 | * symbol.cc (gfc_copy_formal_args_intr): When deriving the formal | |
782 | argument attributes from the actual ones for intrinsic procedure | |
783 | calls, take special care of CHARACTER arguments that we do not | |
784 | wrongly treat them formally as deferred-length. | |
785 | ||
95b71292 GA |
786 | 2023-07-08 Steve Kargl <sgk@troutmask.apl.washington.edu> |
787 | ||
788 | PR fortran/99139 | |
789 | PR fortran/99368 | |
790 | * match.cc (gfc_match_namelist): Check for host associated or | |
791 | defined types before applying default type. | |
792 | (gfc_match_select_rank): Apply default type to selector of | |
793 | unknown type if possible. | |
794 | * resolve.cc (resolve_fl_variable): Do not apply local default | |
795 | initialization to assumed rank entities. | |
796 | ||
797 | 2023-07-08 Harald Anlauf <anlauf@gmx.de> | |
798 | Steven G. Kargl <kargl@gcc.gnu.org> | |
799 | ||
800 | PR fortran/92178 | |
801 | * trans-expr.cc (gfc_conv_procedure_call): Check procedures for | |
802 | allocatable dummy arguments with INTENT(OUT) and move deallocation | |
803 | of actual arguments after evaluation of argument expressions before | |
804 | the procedure is executed. | |
805 | ||
806 | 2023-07-08 Harald Anlauf <anlauf@gmx.de> | |
807 | ||
808 | PR fortran/110585 | |
809 | * arith.cc (gfc_compare_expr): Handle equality comparison of constant | |
810 | complex gfc_expr arguments. | |
811 | ||
5158918a GA |
812 | 2023-07-05 Robin Dapp <rdapp@ventanamicro.com> |
813 | Juzhe-Zhong <juzhe.zhong@rivai.ai> | |
814 | ||
815 | * trans-types.cc (gfc_type_for_mode): Ditto. | |
816 | ||
5f590ee3 GA |
817 | 2023-06-28 Harald Anlauf <anlauf@gmx.de> |
818 | ||
819 | PR fortran/110360 | |
820 | * trans-expr.cc (gfc_conv_procedure_call): For non-constant string | |
821 | argument passed to CHARACTER(LEN=1),VALUE dummy, ensure proper | |
822 | dereferencing and truncation of string to length 1. | |
823 | ||
824 | 2023-06-28 Paul Thomas <pault@gcc.gnu.org> | |
825 | ||
826 | PR fortran/49213 | |
827 | * expr.cc (gfc_is_ptr_fcn): Remove reference to class_pointer. | |
828 | * resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow | |
829 | associate names with pointer function targets to be used in | |
830 | variable definition context. | |
831 | * trans-decl.cc (get_symbol_decl): Remove extraneous line. | |
832 | * trans-expr.cc (alloc_scalar_allocatable_subcomponent): Obtain | |
833 | size of intrinsic and character expressions. | |
834 | (gfc_trans_subcomponent_assign): Expand assignment to class | |
835 | components to include intrinsic and character expressions. | |
836 | ||
7b1076a5 GA |
837 | 2023-06-24 Harald Anlauf <anlauf@gmx.de> |
838 | ||
839 | PR fortran/110360 | |
840 | * trans-expr.cc (gfc_conv_procedure_call): Truncate constant string | |
841 | argument of length > 1 passed to scalar CHARACTER(1),VALUE dummy. | |
842 | ||
6f78df4c GA |
843 | 2023-06-23 Harald Anlauf <anlauf@gmx.de> |
844 | ||
845 | PR fortran/110360 | |
846 | * trans-expr.cc (gfc_conv_procedure_call): Pass actual argument | |
847 | to scalar CHARACTER(1),VALUE dummy argument by value. | |
848 | ||
80e9ca0e GA |
849 | 2023-06-21 Paul Thomas <pault@gcc.gnu.org> |
850 | ||
851 | PR fortran/87477 | |
852 | PR fortran/88688 | |
853 | PR fortran/94380 | |
854 | PR fortran/107900 | |
855 | PR fortran/110224 | |
856 | * decl.cc (char_len_param_value): Fix memory leak. | |
857 | (resolve_block_construct): Remove unnecessary static decls. | |
858 | * expr.cc (gfc_is_ptr_fcn): New function. | |
859 | (gfc_check_vardef_context): Use it to permit pointer function | |
860 | result selectors to be used for associate names in variable | |
861 | definition context. | |
862 | * gfortran.h: Prototype for gfc_is_ptr_fcn. | |
863 | * match.cc (build_associate_name): New function. | |
864 | (gfc_match_select_type): Use the new function to replace inline | |
865 | version and to build a new associate name for the case where | |
866 | the supplied associate name is already used for that purpose. | |
867 | * resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow | |
868 | associate names with pointer function targets to be used in | |
869 | variable definition context. | |
870 | * trans-decl.cc (gfc_get_symbol_decl): Unlimited polymorphic | |
871 | variables need deferred initialisation of the vptr. | |
872 | (gfc_trans_deferred_vars): Do the vptr initialisation. | |
873 | * trans-stmt.cc (trans_associate_var): Ensure that a pointer | |
874 | associate name points to the target of the selector and not | |
875 | the selector itself. | |
876 | ||
877 | 2023-06-21 Paul Thomas <pault@gcc.gnu.org> | |
878 | ||
879 | PR fortran/108961 | |
880 | * trans-expr.cc (gfc_conv_procedure_call): The hidden string | |
881 | length must not be passed to a formal arg of type(cptr). | |
882 | ||
bfc6d29f GA |
883 | 2023-06-20 Tobias Burnus <tobias@codesourcery.com> |
884 | ||
885 | * dump-parse-tree.cc (show_omp_namelist): Fix dump of the allocator | |
886 | modifier of OMP_LIST_ALLOCATE. | |
887 | ||
888 | 2023-06-20 Tobias Burnus <tobias@codesourcery.com> | |
889 | ||
890 | * match.cc (gfc_match_char): Match with '%S' a symbol | |
891 | with host_assoc = 1. | |
892 | ||
e517d3f5 GA |
893 | 2023-06-19 Tobias Burnus <tobias@codesourcery.com> |
894 | ||
895 | * intrinsic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS): Also | |
896 | add references to the OpenMP 5.1 and 5.2 spec; add omp_initial_device | |
897 | and omp_invalid_device named constants. | |
898 | ||
532fb120 GA |
899 | 2023-06-13 Harald Anlauf <anlauf@gmx.de> |
900 | Mikael Morin <mikael@gcc.gnu.org> | |
901 | ||
902 | PR fortran/86277 | |
903 | * trans-array.cc (gfc_trans_allocate_array_storage): When passing a | |
904 | zero-sized array with fixed (= non-dynamic) size, allocate temporary | |
905 | by the caller, not by the callee. | |
906 | ||
09ae3035 GA |
907 | 2023-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
908 | ||
909 | * f95-lang.cc (gfc_init_builtin_functions): Add fmax() and | |
910 | fmin() built-ins, and their variants. | |
911 | * mathbuiltins.def: Add FMAX and FMIN built-ins. | |
912 | * trans-intrinsic.cc (conv_intrinsic_ieee_minmax): New function. | |
913 | (gfc_conv_ieee_arithmetic_function): Handle IEEE_MIN_NUM and | |
914 | IEEE_MAX_NUM functions. | |
915 | ||
a2c019e2 GA |
916 | 2023-06-09 Jakub Jelinek <jakub@redhat.com> |
917 | ||
918 | PR fortran/96024 | |
919 | * primary.cc (gfc_convert_to_structure_constructor): Only do | |
920 | constant string ctor length verification and truncation/padding | |
921 | if constant length has INTEGER type. | |
922 | ||
feae15ae GA |
923 | 2023-06-08 Paul Thomas <pault@gcc.gnu.org> |
924 | ||
925 | PR fortran/87477 | |
926 | PR fortran/99350 | |
927 | PR fortran/107821 | |
928 | PR fortran/109451 | |
929 | * decl.cc (char_len_param_value): Simplify a copy of the expr | |
930 | and replace the original if there is no error. | |
931 | * gfortran.h : Remove the redundant field 'rankguessed' from | |
932 | 'gfc_association_list'. | |
933 | * resolve.cc (resolve_assoc_var): Remove refs to 'rankguessed'. | |
934 | (resolve_variable): Associate names with constant or structure | |
935 | constructor targets cannot have array refs. | |
936 | * trans-array.cc (gfc_conv_expr_descriptor): Guard expression | |
937 | character length backend decl before using it. Suppress the | |
938 | assignment if lhs equals rhs. | |
939 | * trans-io.cc (gfc_trans_transfer): Scalarize transfer of | |
940 | associate variables pointing to a variable. Add comment. | |
941 | * trans-stmt.cc (trans_associate_var): Remove requirement that | |
942 | the character length be deferred before assigning the value | |
943 | returned by gfc_conv_expr_descriptor. Also, guard the backend | |
944 | decl before testing with VAR_P. | |
945 | ||
4f0d4825 GA |
946 | 2023-06-06 Kwok Cheung Yeung <kcy@codesourcery.com> |
947 | Tobias Burnus <tobias@codesourcery.com> | |
948 | ||
949 | * dump-parse-tree.cc (show_omp_namelist): Display 'present' map | |
950 | modifier. | |
951 | (show_omp_clauses): Display 'present' motion modifier for 'to' | |
952 | and 'from' clauses. | |
953 | * gfortran.h (enum gfc_omp_map_op): Add entries with 'present' | |
954 | modifiers. | |
955 | (struct gfc_omp_namelist): Add 'present_modifer'. | |
956 | * openmp.cc (gfc_match_motion_var_list): New, handles optional | |
957 | 'present' modifier for to/from clauses. | |
958 | (gfc_match_omp_clauses): Call it for to/from clauses; parse 'present' | |
959 | in defaultmap and map clauses. | |
960 | (resolve_omp_clauses): Allow 'present' modifiers on 'target', | |
961 | 'target data', 'target enter' and 'target exit' directives. | |
962 | * trans-openmp.cc (gfc_trans_omp_clauses): Apply 'present' modifiers | |
963 | to tree node for 'map', 'to' and 'from' clauses. Apply 'present' for | |
964 | defaultmap. | |
965 | ||
829d5975 GA |
966 | 2023-06-02 Steve Kargl <kargl@gcc.gnu.org> |
967 | ||
968 | PR fortran/100607 | |
969 | * resolve.cc (resolve_select_rank): Remove duplicate error. | |
970 | (resolve_fl_var_and_proc): Prevent NULL pointer dereference and | |
971 | suppress error message for temporary. | |
972 | ||
973 | 2023-06-02 Paul Thomas <pault@gcc.gnu.org> | |
974 | ||
975 | PR fortran/87477 | |
976 | * parse.cc (parse_associate): Replace the existing evaluation | |
977 | of the target rank with calls to gfc_resolve_ref and | |
978 | gfc_expression_rank. Identify untyped target function results | |
979 | with structure constructors by finding the appropriate derived | |
980 | type. | |
981 | * resolve.cc (resolve_symbol): Allow associate variables to be | |
982 | assumed shape. | |
983 | ||
84749914 GA |
984 | 2023-06-01 Harald Anlauf <anlauf@gmx.de> |
985 | ||
986 | PR fortran/88552 | |
987 | * decl.cc (gfc_match_kind_spec): Use error path on missing right | |
988 | parenthesis. | |
989 | (gfc_match_decl_type_spec): Use error return when an error occurred | |
990 | during matching a KIND specifier. | |
991 | ||
992 | 2023-06-01 Tobias Burnus <tobias@codesourcery.com> | |
993 | ||
994 | * parse.cc (decode_omp_directive): Accept all pure directives | |
995 | inside a PURE procedures; handle 'error at(execution). | |
996 | ||
6e6bb373 GA |
997 | 2023-05-26 Tobias Burnus <tobias@codesourcery.com> |
998 | ||
999 | * dump-parse-tree.cc (show_omp_namelist): Update allocator, fix | |
1000 | align dump. | |
1001 | (show_omp_node, show_code_node): Handle EXEC_OMP_ALLOCATE. | |
1002 | * gfortran.h (enum gfc_statement): Add ST_OMP_ALLOCATE and ..._EXEC. | |
1003 | (enum gfc_exec_op): Add EXEC_OMP_ALLOCATE. | |
1004 | (struct gfc_omp_namelist): Add 'allocator' to 'u2' union. | |
1005 | (struct gfc_namespace): Add omp_allocate. | |
1006 | (gfc_resolve_omp_allocate): New. | |
1007 | * match.cc (gfc_free_omp_namelist): Free 'u2.allocator'. | |
1008 | * match.h (gfc_match_omp_allocate, gfc_match_omp_allocators): New. | |
1009 | * openmp.cc (gfc_omp_directives): Uncomment allocate/allocators. | |
1010 | (gfc_match_omp_variable_list): Add bool arg for | |
1011 | rejecting listening common-block vars separately. | |
1012 | (gfc_match_omp_clauses): Update for u2.allocators. | |
1013 | (OMP_ALLOCATORS_CLAUSES, gfc_match_omp_allocate, | |
1014 | gfc_match_omp_allocators, is_predefined_allocator, | |
1015 | gfc_resolve_omp_allocate): New. | |
1016 | (resolve_omp_clauses): Update 'allocate' clause checks. | |
1017 | (omp_code_to_statement, gfc_resolve_omp_directive): Handle | |
1018 | OMP ALLOCATE/ALLOCATORS. | |
1019 | * parse.cc (in_exec_part): New global var. | |
1020 | (check_omp_allocate_stmt, parse_openmp_allocate_block): New. | |
1021 | (decode_omp_directive, case_exec_markers, case_omp_decl, | |
1022 | gfc_ascii_statement, parse_omp_structured_block): Handle | |
1023 | OMP allocate/allocators. | |
1024 | (verify_st_order, parse_executable): Set in_exec_part. | |
1025 | * resolve.cc (gfc_resolve_blocks, resolve_codes): Handle | |
1026 | allocate/allocators. | |
1027 | * st.cc (gfc_free_statement): Likewise. | |
1028 | * trans.cc (trans_code): Likewise. | |
1029 | * trans-openmp.cc (gfc_trans_omp_directive): Likewise. | |
1030 | (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for | |
1031 | u2.allocator, fix for u.align. | |
1032 | ||
14d336dd GA |
1033 | 2023-05-24 Harald Anlauf <anlauf@gmx.de> |
1034 | ||
1035 | PR fortran/104350 | |
1036 | * simplify.cc (simplify_size): Reject DIM argument of intrinsic SIZE | |
1037 | with error when out of valid range. | |
1038 | ||
1039 | 2023-05-24 Harald Anlauf <anlauf@gmx.de> | |
1040 | ||
1041 | PR fortran/103794 | |
1042 | * check.cc (gfc_check_reshape): Expand constant arguments SHAPE and | |
1043 | ORDER before checking. | |
1044 | * gfortran.h (gfc_is_constant_array_expr): Add prototype. | |
1045 | * iresolve.cc (gfc_resolve_reshape): Expand constant argument SHAPE. | |
1046 | * simplify.cc (is_constant_array_expr): If array is determined to be | |
1047 | constant, expand small array constructors if needed. | |
1048 | (gfc_is_constant_array_expr): Wrapper for is_constant_array_expr. | |
1049 | (gfc_simplify_reshape): Fix check for insufficient elements in SOURCE | |
1050 | when no padding specified. | |
1051 | ||
03c7c418 GA |
1052 | 2023-05-23 Paul Thomas <pault@gcc.gnu.org> |
1053 | ||
1054 | PR fortran/103716 | |
1055 | * resolve.cc (gfc_resolve_ref): Conversion of array_ref into an | |
1056 | element should be done for all characters without a len expr, | |
1057 | not just deferred lens, and for integer expressions. | |
1058 | * trans-expr.cc (conv_inquiry): For len and kind inquiry refs, | |
1059 | set the se string_length to NULL_TREE. | |
1060 | ||
1061 | 2023-05-23 Paul Thomas <pault@gcc.gnu.org> | |
1062 | Steven G. Kargl <kargl@gcc.gnu.org> | |
1063 | ||
1064 | PR fortran/97122 | |
1065 | * decl.cc (variable_decl): Clean up white space issues. | |
1066 | (gfc_match_final_decl): Declaration of finalizable derived type | |
1067 | is allowed in a submodule. | |
1068 | ||
5df01f89 GA |
1069 | 2023-05-19 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> |
1070 | ||
1071 | * expr.cc (gfc_get_corank): Use CLASS_DATA from gfortran.h. | |
1072 | * resolve.cc (resolve_component): Same. | |
1073 | (resolve_fl_derived0): Same. | |
1074 | * simplify.cc (gfc_simplify_extends_type_of): Same. | |
1075 | (simplify_cobound): Same. | |
1076 | ||
b2776076 GA |
1077 | 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> |
1078 | ||
1079 | * trans-array.cc (is_pointer_array): Use _P() defines from tree.h. | |
1080 | (gfc_conv_scalarized_array_ref): Ditto. | |
1081 | (gfc_conv_array_ref): Ditto. | |
1082 | * trans-decl.cc (gfc_finish_decl): Ditto. | |
1083 | (gfc_get_symbol_decl): Ditto. | |
1084 | * trans-expr.cc (gfc_trans_pointer_assignment): Ditto. | |
1085 | (gfc_trans_arrayfunc_assign): Ditto. | |
1086 | (gfc_trans_assignment_1): Ditto. | |
1087 | * trans-intrinsic.cc (gfc_conv_intrinsic_minmax): Ditto. | |
1088 | (conv_intrinsic_ieee_value): Ditto. | |
1089 | * trans-io.cc (gfc_convert_array_to_string): Ditto. | |
1090 | * trans-openmp.cc (gfc_omp_is_optional_argument): Ditto. | |
1091 | (gfc_trans_omp_clauses): Ditto. | |
1092 | * trans-stmt.cc (gfc_conv_label_variable): Ditto. | |
1093 | * trans.cc (gfc_build_addr_expr): Ditto. | |
1094 | (get_array_span): Ditto. | |
1095 | ||
1096 | 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | |
1097 | ||
1098 | PR fortran/78798 | |
1099 | * array.cc (compare_bounds): Use narrower return type. | |
1100 | (gfc_compare_array_spec): Likewise. | |
1101 | (is_constant_element): Likewise. | |
1102 | (gfc_constant_ac): Likewise. | |
1103 | * check.cc (dim_rank_check): Likewise. | |
1104 | * cpp.cc (gfc_cpp_init_options): Likewise. | |
1105 | (dump_macro): Likewise. | |
1106 | * cpp.h (gfc_cpp_handle_option): Likewise. | |
1107 | * dependency.cc (gfc_ref_needs_temporary_p): Likewise. | |
1108 | (gfc_check_argument_dependency): Likewise. | |
1109 | (gfc_check_fncall_dependency): Likewise. | |
1110 | (ref_same_as_full_array): Likewise. | |
1111 | * dependency.h (gfc_check_fncall_dependency): Likewise. | |
1112 | (gfc_dep_resolver): Likewise. | |
1113 | (gfc_are_equivalenced_arrays): Likewise. | |
1114 | * expr.cc (gfc_copy_ref): Likewise. | |
1115 | (gfc_kind_max): Likewise. | |
1116 | (numeric_type): Likewise. | |
1117 | * gfortran.h (gfc_at_end): Likewise. | |
1118 | (gfc_at_eof): Likewise. | |
1119 | (gfc_at_bol): Likewise. | |
1120 | (gfc_at_eol): Likewise. | |
1121 | (gfc_define_undef_line): Likewise. | |
1122 | (gfc_wide_is_printable): Likewise. | |
1123 | (gfc_wide_is_digit): Likewise. | |
1124 | (gfc_wide_fits_in_byte): Likewise. | |
1125 | (gfc_find_sym_tree): Likewise. | |
1126 | (gfc_generic_intrinsic): Likewise. | |
1127 | (gfc_specific_intrinsic): Likewise. | |
1128 | (gfc_intrinsic_actual_ok): Likewise. | |
1129 | (gfc_has_vector_index): Likewise. | |
1130 | (gfc_numeric_ts): Likewise. | |
1131 | (gfc_impure_variable): Likewise. | |
1132 | (gfc_pure): Likewise. | |
1133 | (gfc_implicit_pure): Likewise. | |
1134 | (gfc_elemental): Likewise. | |
1135 | (gfc_pure_function): Likewise. | |
1136 | (gfc_implicit_pure_function): Likewise. | |
1137 | (gfc_compare_array_spec): Likewise. | |
1138 | (gfc_constant_ac): Likewise. | |
1139 | (gfc_expanded_ac): Likewise. | |
1140 | (gfc_check_digit): Likewise. | |
1141 | * intrinsic.cc (gfc_find_subroutine): Likewise. | |
1142 | (gfc_generic_intrinsic): Likewise. | |
1143 | (gfc_specific_intrinsic): Likewise. | |
1144 | * io.cc (compare_to_allowed_values): Likewise. And remove | |
1145 | unneeded forward declaration. | |
1146 | * parse.cc: Likewise. | |
1147 | * parse.h (gfc_check_do_variable): Likewise. | |
1148 | * primary.cc (gfc_check_digit): Likewise. | |
1149 | * resolve.cc (resolve_structure_cons): Likewise. | |
1150 | (pure_stmt_function): Likewise. | |
1151 | (gfc_pure_function): Likewise. | |
1152 | (impure_stmt_fcn): Likewise. | |
1153 | (resolve_forall_iterators): Likewise. | |
1154 | (resolve_data): Likewise. | |
1155 | (gfc_impure_variable): Likewise. | |
1156 | (gfc_pure): Likewise. | |
1157 | (gfc_unset_implicit_pure): Likewise. | |
1158 | * scanner.cc (wide_is_ascii): Likewise. | |
1159 | (gfc_wide_toupper): Likewise. | |
1160 | (gfc_open_included_file): Likewise. | |
1161 | (gfc_at_end): Likewise. | |
1162 | (gfc_at_eof): Likewise. | |
1163 | (gfc_at_bol): Likewise. | |
1164 | (skip_comment_line): Likewise. | |
1165 | (gfc_gobble_whitespace): Likewise. | |
1166 | * symbol.cc (gfc_find_symtree_in_proc): Likewise. | |
1167 | * trans-array.cc: Likewise. | |
1168 | * trans-decl.cc (gfc_set_decl_assembler_name): Likewise. | |
1169 | * trans-types.cc (gfc_get_element_type): Likewise. | |
1170 | (gfc_add_field_to_struct): Likewise. | |
1171 | * trans-types.h (gfc_copy_dt_decls_ifequal): Likewise. | |
1172 | (gfc_return_by_reference): Likewise. | |
1173 | (gfc_is_nodesc_array): Likewise. | |
1174 | * trans.h (gfc_can_put_var_on_stack): Likewise. | |
1175 | ||
ff2dcddf GA |
1176 | 2023-05-17 Harald Anlauf <anlauf@gmx.de> |
1177 | ||
1178 | PR fortran/95374 | |
1179 | PR fortran/104352 | |
1180 | * decl.cc (add_init_expr_to_sym): Set shape of initializer also for | |
1181 | zero-sized arrays, so that bounds violations can be detected later. | |
1182 | ||
1183 | 2023-05-17 Tobias Burnus <tobias@codesourcery.com> | |
1184 | ||
1185 | * trans-decl.cc (gfc_get_symbol_decl): Add attributes | |
1186 | such as 'declare target' also to hidden artificial | |
1187 | variable for deferred-length character variables. | |
1188 | * trans-openmp.cc (gfc_trans_omp_array_section, | |
1189 | gfc_trans_omp_clauses, gfc_trans_omp_target_exit_data): | |
1190 | Improve mapping of array descriptors and deferred-length | |
1191 | string variables. | |
1192 | ||
0d566057 GA |
1193 | 2023-05-16 Paul Thomas <pault@gcc.gnu.org> |
1194 | ||
1195 | PR fortran/105152 | |
1196 | PR fortran/100193 | |
1197 | PR fortran/87496 | |
1198 | PR fortran/103389 | |
1199 | PR fortran/104429 | |
1200 | PR fortran/82774 | |
1201 | * interface.cc (gfc_compare_actual_formal): Emit an error if an | |
1202 | unlimited polymorphic actual is not matched either to an | |
1203 | unlimited or assumed type formal argument. | |
1204 | * resolve.cc (resolve_ordinary_assign): Emit an error if the | |
1205 | var expression of an ordinary assignment is a proc pointer | |
1206 | component. | |
1207 | * trans-array.cc (gfc_walk_array_ref): Provide assumed shape | |
1208 | arrays coming from interface mapping with a viable arrayspec. | |
1209 | * trans-expr.cc (gfc_conv_intrinsic_to_class): Tidy up flagging | |
1210 | of unlimited polymorphic 'class_ts'. | |
1211 | (gfc_conv_gfc_desc_to_cfi_desc): Assumed type is unlimited | |
1212 | polymorphic and should accept any actual type. | |
1213 | (gfc_conv_procedure_call): Replace dreadful kludge with a call | |
1214 | to gfc_finalize_tree_expr. Avoid dereferencing a void pointer | |
1215 | by giving it the pointer type of the actual argument. | |
1216 | (alloc_scalar_allocatable_subcomponent): Shorten the function | |
1217 | name and replace the symbol argument with the se string length. | |
1218 | If a deferred length character length is either not present or | |
1219 | is not a variable, give the typespec a variable and assign the | |
1220 | string length to that. Use gfc_deferred_strlen to find the | |
1221 | hidden string length component. | |
1222 | (gfc_trans_subcomponent_assign): Convert the expression before | |
1223 | the call to alloc_scalar_allocatable_subcomponent so that a | |
1224 | good string length is provided. | |
1225 | (gfc_trans_structure_assign): Remove the unneeded derived type | |
1226 | symbol from calls to gfc_trans_subcomponent_assign. | |
1227 | ||
3427b51b GA |
1228 | 2023-05-15 Harald Anlauf <anlauf@gmx.de> |
1229 | ||
1230 | PR fortran/109846 | |
1231 | * expr.cc (gfc_check_vardef_context): Check appropriate pointer | |
1232 | attribute for CLASS vs. non-CLASS function result in variable | |
1233 | definition context. | |
1234 | ||
3d125c91 GA |
1235 | 2023-05-11 Xi Ruoyao <xry111@xry111.site> |
1236 | ||
1237 | * Make-lang.in: Use grep instead of fgrep. | |
1238 | ||
08d0d17b GA |
1239 | 2023-05-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> |
1240 | ||
1241 | * dump-parse-tree.cc (gfc_debug_expr): Remove forward declaration. | |
1242 | (debug): Add DEBUG_FUNCTION. | |
1243 | (show_code_node): Remove erroneous whitespace. | |
1244 | ||
1245 | 2023-05-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | |
1246 | ||
1247 | PR fortran/109624 | |
1248 | * dump-parse-tree.cc (debug): New function for gfc_namespace. | |
1249 | (gfc_debug_code): Delete forward declaration. | |
1250 | (show_attr): Make sure to print balanced braces. | |
1251 | ||
212905a4 GA |
1252 | 2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> |
1253 | ||
1254 | * resolve.cc (resolve_select_type): Fix coding style. | |
1255 | ||
1256 | 2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | |
1257 | ||
1258 | * resolve.cc (resolve_select_type): Call free() unconditionally. | |
1259 | ||
1260 | 2023-05-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | |
1261 | ||
1262 | PR fortran/68800 | |
1263 | * expr.cc (find_array_section): Fix mpz memory leak. | |
1264 | * simplify.cc (gfc_simplify_reshape): Fix mpz memory leaks in | |
1265 | error paths. | |
1266 | ||
2ab31cde GA |
1267 | 2023-05-05 Harald Anlauf <anlauf@gmx.de> |
1268 | ||
1269 | PR fortran/109641 | |
1270 | * arith.cc (eval_intrinsic): Check conformability of ranks of operands | |
1271 | for intrinsic binary operators before performing type conversions. | |
1272 | * gfortran.h (gfc_op_rank_conformable): Add prototype. | |
1273 | * resolve.cc (resolve_operator): Check conformability of ranks of | |
1274 | operands for intrinsic binary operators before performing type | |
1275 | conversions. | |
1276 | (gfc_op_rank_conformable): New helper function to compare ranks of | |
1277 | operands of binary operator. | |
1278 | ||
fde093b7 GA |
1279 | 2023-05-04 Julian Brown <julian@codesourcery.com> |
1280 | ||
1281 | PR fortran/109622 | |
1282 | * openmp.cc (resolve_omp_clauses): Add diagnostic for | |
1283 | non-pointer/non-allocatable attach/detach. | |
1284 | * trans-openmp.cc (gfc_trans_omp_clauses): Remove dereference for | |
1285 | pointer-to-scalar derived type component attach/detach. Fix | |
1286 | attach/detach handling for descriptors. | |
1287 | ||
50205195 GA |
1288 | 2023-04-28 Julian Brown <julian@codesourcery.com> |
1289 | ||
1290 | PR fortran/109622 | |
1291 | * trans-openmp.cc (gfc_trans_omp_clauses): Attach/detach clause fixes. | |
1292 | ||
1293 | 2023-04-28 Tobias Burnus <tobias@codesourcery.com> | |
1294 | ||
1295 | * gfortran.texi: Fix typos. | |
1296 | * decl.cc: Fix typos in comments and in a variable name. | |
1297 | * arith.cc: Fix comment typos. | |
1298 | * check.cc: Likewise. | |
1299 | * class.cc: Likewise. | |
1300 | * dependency.cc: Likewise. | |
1301 | * expr.cc: Likewise. | |
1302 | * frontend-passes.cc: Likewise. | |
1303 | * gfortran.h: Likewise. | |
1304 | * intrinsic.cc: Likewise. | |
1305 | * iresolve.cc: Likewise. | |
1306 | * match.cc: Likewise. | |
1307 | * module.cc: Likewise. | |
1308 | * primary.cc: Likewise. | |
1309 | * resolve.cc: Likewise. | |
1310 | * simplify.cc: Likewise. | |
1311 | * trans-array.cc: Likewise. | |
1312 | * trans-decl.cc: Likewise. | |
1313 | * trans-expr.cc: Likewise. | |
1314 | * trans-intrinsic.cc: Likewise. | |
1315 | * trans-openmp.cc: Likewise. | |
1316 | * trans-stmt.cc: Likewise. | |
1317 | ||
49cea02d GA |
1318 | 2023-04-25 Tobias Burnus <tobias@codesourcery.com> |
1319 | ||
1320 | * openmp.cc (gfc_resolve_omp_do_blocks): Handle zero | |
1321 | or more than one exec statements before/after 'omp scan'. | |
1322 | * trans-openmp.cc (gfc_trans_omp_do): Likewise. | |
1323 | ||
6ab856aa GA |
1324 | 2023-04-22 Harald Anlauf <anlauf@gmx.de> |
1325 | Steven G. Kargl <kargl@gcc.gnu.org> | |
1326 | ||
1327 | PR fortran/109500 | |
1328 | * interface.cc (gfc_compare_actual_formal): Reject allocatable | |
1329 | functions being used as actual argument for allocable dummy. | |
1330 | ||
1aee19f9 GA |
1331 | 2023-04-14 Harald Anlauf <anlauf@gmx.de> |
1332 | ||
1333 | PR fortran/109511 | |
1334 | * simplify.cc (gfc_simplify_set_exponent): Fix implementation of | |
1335 | compile-time simplification of intrinsic SET_EXPONENT for argument | |
1336 | X < 1 and for I < 0. | |
1337 | ||
1338 | 2023-04-14 Paul Thomas <pault@gcc.gnu.org> | |
1339 | ||
1340 | PR fortran/104272 | |
1341 | * gfortran.h : Add expr3_not_explicit bit field to gfc_code. | |
1342 | * resolve.cc (resolve_allocate_expr): Set bit field when the | |
1343 | default initializer is applied to expr3. | |
1344 | * trans-stmt.cc (gfc_trans_allocate): If expr3_not_explicit is | |
1345 | set, do not deallocate expr3. | |
1346 | ||
48d0244b GA |
1347 | 2023-04-13 Harald Anlauf <anlauf@gmx.de> |
1348 | ||
1349 | PR fortran/109492 | |
1350 | * trans-expr.cc (gfc_conv_power_op): Use absu_hwi and | |
1351 | unsigned HOST_WIDE_INT for portability. | |
1352 | ||
66c7257b GA |
1353 | 2023-04-12 Harald Anlauf <anlauf@gmx.de> |
1354 | ||
1355 | PR fortran/104312 | |
1356 | * resolve.cc (resolve_entries): Handle functions with ENTRY and | |
1357 | ALLOCATABLE results. | |
1358 | * trans-expr.cc (gfc_conv_procedure_call): Functions with a result | |
1359 | with the POINTER or ALLOCATABLE attribute shall not get any special | |
1360 | treatment with -ff2c, as they cannot be written in Fortran 77. | |
1361 | * trans-types.cc (gfc_return_by_reference): Likewise. | |
1362 | (gfc_get_function_type): Likewise. | |
1363 | ||
1364 | 2023-04-12 Harald Anlauf <anlauf@gmx.de> | |
1365 | ||
1366 | PR fortran/61615 | |
1367 | PR fortran/99982 | |
1368 | * interface.cc (compare_parameter): Enable type and rank checks for | |
1369 | arguments of derived type from the intrinsic module ISO_C_BINDING. | |
1370 | ||
0f04ebb4 GA |
1371 | 2023-04-08 Paul Thomas <pault@gcc.gnu.org> |
1372 | ||
1373 | PR fortran/87477 | |
1374 | * iresolve.cc (gfc_resolve_adjustl, gfc_resolve_adjustr): if | |
1375 | string length is deferred use the string typespec for result. | |
1376 | * resolve.cc (resolve_assoc_var): Handle parentheses around the | |
1377 | target expression. | |
1378 | (resolve_block_construct): Remove unnecessary static decls. | |
1379 | * trans-array.cc (gfc_conv_expr_descriptor): Guard string len | |
1380 | expression in condition. Improve handling of string length and | |
1381 | span, especially for substrings of the descriptor. | |
1382 | (duplicate_allocatable): Make element type more explicit with | |
1383 | 'eltype'. | |
1384 | * trans-decl.cc (gfc_get_symbol_decl): Emit a fatal error with | |
1385 | appropriate message instead of ICE if symbol type is unknown. | |
1386 | (gfc_generate_function_code): Set current locus to proc_sym | |
1387 | declared_at. | |
1388 | * trans-expr.cc (gfc_get_expr_charlen): Retain last charlen in | |
1389 | 'previous' and use if end expression in substring reference is | |
1390 | null. | |
1391 | (gfc_conv_string_length): Use gfc_conv_expr_descriptor if | |
1392 | 'expr_flat' is an array. Add post block to catch deallocation | |
1393 | of temporaries. | |
1394 | (gfc_conv_procedure_call): Assign the parmse string length to | |
1395 | the expression string length, if it is deferred. | |
1396 | (gfc_trans_alloc_subarray_assign): If this is a deferred string | |
1397 | length component, store the string length in the hidden comp. | |
1398 | Update the typespec length accordingly. Generate a new type | |
1399 | spec for the call to gfc_duplicate-allocatable in this case. | |
1400 | * trans-io.cc (gfc_trans_transfer): Scalarize transfer of | |
1401 | deferred character array components. | |
1402 | ||
645b1362 GA |
1403 | 2023-04-04 Harald Anlauf <anlauf@gmx.de> |
1404 | ||
1405 | PR fortran/104349 | |
1406 | * expr.cc (check_restricted): Adjust check for valid variables in | |
1407 | restricted expressions: make no exception for module variables. | |
1408 | ||
236cde72 GA |
1409 | 2023-04-01 Thomas Koenig <tkoenig@gcc.gnu.org> |
1410 | ||
1411 | * dump-parse-tree.cc (get_c_type_name): Fix "long_long" | |
1412 | type name to be "long long". | |
1413 | ||
d20a6a33 GA |
1414 | 2023-03-30 Andrew Pinski <apinski@marvell.com> |
1415 | ||
1416 | * dump-parse-tree.cc (get_c_type_name): Fix "long_long" | |
1417 | type name to be "long long". Add a comment on why adding | |
1418 | 2 to the name too. | |
1419 | ||
579cdc1e GA |
1420 | 2023-03-28 Jakub Jelinek <jakub@redhat.com> |
1421 | ||
1422 | PR fortran/109314 | |
1423 | * openmp.cc (gfc_omp_absent_contains_clause): Fix typo in diagnostics | |
1424 | - composit -> composite. | |
1425 | ||
810b924f GA |
1426 | 2023-03-25 Harald Anlauf <anlauf@gmx.de> |
1427 | ||
1428 | PR fortran/104321 | |
1429 | * trans-decl.cc (gfc_conv_cfi_to_gfc): Remove dead code. | |
1430 | ||
13ec81eb GA |
1431 | 2023-03-24 Harald Anlauf <anlauf@gmx.de> |
1432 | ||
1433 | * expr.cc (free_expr0): Free also BOZ strings as part of an expression. | |
1434 | ||
1435 | 2023-03-24 Haochen Gui <guihaoc@gcc.gnu.org> | |
1436 | Tobias Burnus <tobias@codesourcery.com> | |
1437 | ||
1438 | PR target/103628 | |
1439 | * target-memory.cc (gfc_interpret_float): Return FAIL when | |
1440 | native_interpret_expr gets a NULL tree. | |
1441 | * arith.cc (gfc_hollerith2real): Return NULL when | |
1442 | gfc_interpret_float fails. | |
1443 | * error.cc (gfc_buffered_p): Define. | |
1444 | * gfortran.h (gfc_buffered_p): Declare. | |
1445 | * intrinsic.cc: Add diagnostic.h to include list. | |
1446 | (do_simplify): Save errorcount and check it at finish. Report a | |
1447 | "Cannot simplify expression" error on a bad result if error count | |
1448 | doesn't change and no other errors buffered. | |
1449 | ||
50bd9c41 GA |
1450 | 2023-03-22 Harald Anlauf <anlauf@gmx.de> |
1451 | Steven G. Kargl <kargl@gcc.gnu.org> | |
1452 | ||
1453 | PR fortran/104572 | |
1454 | * resolve.cc (gfc_resolve_finalizers): Argument of a FINAL subroutine | |
1455 | cannot be an alternate return. | |
1456 | ||
03178527 GA |
1457 | 2023-03-21 Harald Anlauf <anlauf@gmx.de> |
1458 | ||
1459 | PR fortran/99036 | |
1460 | * decl.cc (gfc_match_modproc): Reject MODULE PROCEDURE if not in a | |
1461 | generic module interface. | |
1462 | ||
1463 | 2023-03-21 Arsen Arsenović <arsen@aarsen.me> | |
1464 | ||
1465 | * invoke.texi: Remove usages of @gol. | |
1466 | * intrinsic.texi: Ditto. | |
1467 | ||
1468 | 2023-03-21 Paul Thomas <pault@gcc.gnu.org> | |
1469 | ||
1470 | PR fortran/109206 | |
1471 | * trans-array.cc (gfc_trans_array_constructor_value): Correct | |
1472 | incorrect setting of typespec. | |
1473 | ||
1474 | 2023-03-21 Paul Thomas <pault@gcc.gnu.org> | |
1475 | ||
1476 | PR fortran/109209 | |
1477 | * resolve.cc (generate_component_assignments): Restore the | |
1478 | exclusion of allocatable components from the loop. | |
1479 | ||
582f246b GA |
1480 | 2023-03-20 Harald Anlauf <anlauf@gmx.de> |
1481 | ||
1482 | PR fortran/109216 | |
1483 | * invoke.texi: Correct documentation of how underscores are appended | |
1484 | to external names. | |
1485 | ||
1486 | 2023-03-20 Harald Anlauf <anlauf@gmx.de> | |
1487 | ||
1488 | PR fortran/109186 | |
1489 | * simplify.cc (gfc_simplify_nearest): Fix off-by-one error in setting | |
1490 | up real kind-specific maximum exponent for mpfr. | |
1491 | ||
1492 | 2023-03-20 Paul Thomas <pault@gcc.gnu.org> | |
1493 | ||
1494 | PR fortran/87127 | |
1495 | * resolve.cc (check_host_association): If an external function | |
1496 | is typed but not declared explicitly to be external, change the | |
1497 | old symbol from a variable to an external function. | |
1498 | ||
09abeb73 GA |
1499 | 2023-03-19 Harald Anlauf <anlauf@gmx.de> |
1500 | ||
1501 | PR fortran/85877 | |
1502 | * resolve.cc (resolve_fl_procedure): Check for an explicit interface | |
1503 | of procedures with the BIND(C) attribute (F2018:15.4.2.2). | |
1504 | ||
1505 | 2023-03-19 Thomas Koenig <tkoenig@gcc.gnu.org> | |
1506 | ||
1507 | * gfortran.texi: Mention behavior on overflow. | |
1508 | ||
cffcb774 GA |
1509 | 2023-03-18 Paul Thomas <pault@gcc.gnu.org> |
1510 | ||
1511 | PR fortran/103854 | |
1512 | PR fortran/96122 | |
1513 | PR fortran/37336 | |
1514 | * class.cc (finalize_component): Include the missing arguments | |
1515 | in the call to the component's finalizer wrapper. | |
1516 | (has_finalizer_component): Do not return true for procedure | |
1517 | pointer components. | |
1518 | (finalizer_insert_packed_call): Remove the redundant argument | |
1519 | in the call to the final subroutine. | |
1520 | (generate_finalization_wrapper): Add support for assumed rank | |
1521 | finalizers. | |
1522 | (gfc_may_be_finalized): New helper function. | |
1523 | * dump-parse-tree.cc (write_proc): Whitespace. | |
1524 | * gfortran.h : Add prototype for gfc_may_be_finalized. | |
1525 | * resolve.cc (resolve_function): Correct derived types that | |
1526 | have an incomplete namespace. | |
1527 | (resolve_where, gfc_resolve_where_code_in_forall, | |
1528 | gfc_resolve_forall_body, gfc_resolve_code): Check that the op | |
1529 | code is still EXEC_ASSIGN. If it is set lhs to must finalize. | |
1530 | (is_finalizable_type): New function. | |
1531 | (generate_component_assignments): Set must_finalize if needed. | |
1532 | (gfc_resolve_finalizers): Error if assumed rank finalizer is | |
1533 | not the only one. Warning on lack of scalar finalizer modified | |
1534 | to account for assumed rank finalizers. | |
1535 | (generate_final_call): New function. | |
1536 | (generate_component_assignments): Enclose the outermost call in | |
1537 | a block to capture automatic deallocation and final calls. | |
1538 | Set must_finalize as required to satisfy the standards. Use an | |
1539 | explicit pointer assignment for pointer components to capture | |
1540 | finalization of the target. Likewise use explicit assignment | |
1541 | for allocatable components. Do not use the temporary copy of | |
1542 | the lhs in defined assignment if the component is allocatable. | |
1543 | Put the temporary in the same namespace as the lhs symbol if | |
1544 | the component may be finalized. Remove the leading assignment | |
1545 | from the expansion of assignment of components that have their | |
1546 | own defined assignment components. Suppress finalization of | |
1547 | assignment of temporary components to the lhs. Make an explicit | |
1548 | final call for the rhs function temporary if it exists. | |
1549 | (gfc_resolve_code): Set must_finalize for assignments with an | |
1550 | array constructor on the rhs. | |
1551 | (gfc_resolve_finalizers): Ensure that an assumed rank finalizer | |
1552 | is the only finalizer for that type and correct the surprising | |
1553 | warning for the lack of a scalar finalizer. | |
1554 | (check_defined_assignments): Handle allocatable components. | |
1555 | (resolve_fl_derived): Set referenced the vtab for use | |
1556 | associated symbols. | |
1557 | (resolve_symbol): Set referenced an unreferenced symbol that | |
1558 | will be finalized. | |
1559 | * trans-array.cc (gfc_trans_array_constructor_value): Add code | |
1560 | to finalize the constructor result. Warn that this feature was | |
1561 | removed in F2018 and that it is suppressed by -std=2018. | |
1562 | (trans_array_constructor): Add finalblock, pass to previous | |
1563 | and apply to loop->post if filled. | |
1564 | (gfc_add_loop_ss_code): Add se finalblock to outer loop post. | |
1565 | (gfc_trans_array_cobounds, gfc_trans_array_bounds): Add any | |
1566 | generated finalization code to the main block. | |
1567 | (structure_alloc_comps): Add boolean argument to suppress | |
1568 | finalization and use it for calls from | |
1569 | gfc_deallocate_alloc_comp_no_caf. Otherwise it defaults to | |
1570 | false. | |
1571 | (gfc_copy_alloc_comp_no_fini): New wrapper for | |
1572 | structure_alloc_comps. | |
1573 | (gfc_alloc_allocatable_for_assignment): Suppress finalization | |
1574 | by setting new arg in call to gfc_deallocate_alloc_comp_no_caf. | |
1575 | (gfc_trans_deferred_array): Use gfc_may_be_finalized and do not | |
1576 | deallocate the components of entities with a leading '_' in the | |
1577 | name that are also marked as artificial. | |
1578 | * trans-array.h : Add the new boolean argument to the prototype | |
1579 | of gfc_deallocate_alloc_comp_no_caf with a default of false. | |
1580 | Add prototype for gfc_copy_alloc_comp_no_fini. | |
1581 | * trans-decl.cc(init_intent_out_dt): Tidy up the code. | |
1582 | * trans-expr.cc (gfc_init_se): Initialize finalblock. | |
1583 | (gfc_conv_procedure_call): Use gfc_finalize_tree_expr to | |
1584 | finalize function results. Replace in-line block for class | |
1585 | results with call to new function. | |
1586 | (gfc_conv_expr): Finalize structure constructors for F2003 and | |
1587 | F2008. Warn that this feature was deleted in F2018 and, unlike | |
1588 | array constructors, is not default. Add array constructor | |
1589 | finalblock to the post block. | |
1590 | (gfc_trans_scalar_assign): Suppress finalization by setting new | |
1591 | argument in call to gfc_deallocate_alloc_comp_no_caf. Add the | |
1592 | finalization blocks to the main block. | |
1593 | (gfc_trans_arrayfunc_assign): Use gfc_assignment_finalizer_call | |
1594 | and ensure that finalization occurs after the evaluation of the | |
1595 | rhs but using the initial value for the lhs. Finalize rhs | |
1596 | function results using gfc_finalize_tree_expr. | |
1597 | (trans_class_assignment, gfc_trans_assignment_1): As previous | |
1598 | function, taking care to order evaluation, assignment and | |
1599 | finalization correctly. | |
1600 | * trans-io.cc (gfc_trans_transfer): Add the final block. | |
1601 | * trans-stmt.cc (gfc_trans_call, gfc_trans_allocate): likewise. | |
1602 | (trans_associate_var): Nullify derived allocatable components | |
1603 | and finalize function targets with defined assignment | |
1604 | components on leaving the block scope. | |
1605 | (trans_allocate): Finalize source expressions, if required, | |
1606 | and set init_expr artificial temporarily to suppress the | |
1607 | finalization in gfc_trans_assignment. | |
1608 | * trans.cc (gfc_add_finalizer_call): Do not finalize the | |
1609 | temporaries generated in type assignment with defined | |
1610 | assignment components. | |
1611 | (gfc_assignment_finalizer_call): New function. | |
1612 | (gfc_finalize_tree_expr): New function. | |
1613 | * trans.h: Add finalblock to gfc_se. Add the prototypes for | |
1614 | gfc_finalize_tree_expr and gfc_assignment_finalizer_call. | |
1615 | ||
39b1814c GA |
1616 | 2023-03-15 Harald Anlauf <anlauf@gmx.de> |
1617 | Tobias Burnus <tobias@codesourcery.com> | |
1618 | ||
1619 | PR fortran/58331 | |
1620 | * interface.cc (compare_parameter): Adjust check of array dummy | |
1621 | arguments to handle the case of CLASS variables. | |
1622 | ||
ed65cebf GA |
1623 | 2023-03-11 Harald Anlauf <anlauf@gmx.de> |
1624 | ||
1625 | PR fortran/106945 | |
1626 | * trans-expr.cc (gfc_copy_class_to_class): Convert element counts in | |
1627 | bounds check to common type for comparison. | |
1628 | ||
c8065441 GA |
1629 | 2023-03-10 Harald Anlauf <anlauf@gmx.de> |
1630 | ||
1631 | PR fortran/104332 | |
1632 | * resolve.cc (resolve_symbol): Avoid NULL pointer dereference while | |
1633 | checking a symbol with the BIND(C) attribute. | |
1634 | ||
fa9fd689 GA |
1635 | 2023-03-05 Harald Anlauf <anlauf@gmx.de> |
1636 | Tobias Burnus <tobias@codesourcery.com> | |
1637 | ||
1638 | PR fortran/106856 | |
1639 | * class.cc (gfc_build_class_symbol): Handle update of attributes of | |
1640 | existing class container. | |
1641 | (gfc_find_derived_vtab): Fix several memory leaks. | |
1642 | (find_intrinsic_vtab): Ditto. | |
1643 | * decl.cc (attr_decl1): Manage update of symbol attributes from | |
1644 | CLASS attributes. | |
1645 | * primary.cc (gfc_variable_attr): OPTIONAL shall not be taken or | |
1646 | updated from the class container. | |
1647 | * symbol.cc (free_old_symbol): Adjust management of symbol versions | |
1648 | to not prematurely free array specs while working on the declation | |
1649 | of CLASS variables. | |
1650 | ||
c88a7c63 GA |
1651 | 2023-03-01 Tobias Burnus <tobias@codesourcery.com> |
1652 | ||
1653 | PR middle-end/108546 | |
1654 | * trans-openmp.cc (gfc_trans_omp_clauses): Fix mapping of | |
1655 | type(C_ptr) variables. | |
1656 | ||
bf0e0fc0 GA |
1657 | 2023-02-27 Harald Anlauf <anlauf@gmx.de> |
1658 | ||
1659 | PR fortran/108937 | |
1660 | * trans-intrinsic.cc (gfc_conv_intrinsic_ibits): Handle corner case | |
1661 | LEN argument of IBITS equal to BITSIZE(I). | |
1662 | ||
94341f0b GA |
1663 | 2023-02-25 Mikael Morin <mikael@gcc.gnu.org> |
1664 | ||
1665 | PR fortran/108923 | |
1666 | * intrinsic.cc (get_intrinsic_dummy_arg, | |
1667 | set_intrinsic_dummy_arg): Rename the former to the latter. | |
1668 | Remove the return value, add a reference to the lhs as argument, | |
1669 | and do the pointer assignment inside the function. Don't do | |
1670 | it if the pointer is already non-NULL. | |
1671 | (sort_actual): Update caller. | |
1672 | ||
1673 | 2023-02-25 Harald Anlauf <anlauf@gmx.de> | |
1674 | ||
1675 | * arith.cc (gfc_real2int): Clear mpfr variable after use. | |
1676 | ||
1677 | 2023-02-25 Tobias Burnus <tobias@codesourcery.com> | |
1678 | ||
1679 | PR fortran/108621 | |
1680 | * trans-expr.cc (gfc_conv_gfc_desc_to_cfi_desc): Skip setting of | |
1681 | bounds of CFI desc for 'pointer,intent(out)'. | |
1682 | ||
43411063 GA |
1683 | 2023-02-24 Rimvydas Jasinskas <rimvydas.jas@gmail.com> |
1684 | ||
1685 | * trans-decl.cc (gfc_finish_var_decl): Apply attribute. | |
1686 | (generate_local_decl): Add diagnostic for dummy and local variables. | |
1687 | ||
1688 | 2023-02-24 Mikael Morin <mikael@gcc.gnu.org> | |
1689 | ||
1690 | PR fortran/108923 | |
1691 | * expr.cc (gfc_free_actual_arglist): Free associated_dummy | |
1692 | memory. | |
1693 | (gfc_copy_actual_arglist): Make a copy of the associated_dummy | |
1694 | field if it is set in the original element. | |
1695 | ||
1696 | 2023-02-24 Harald Anlauf <anlauf@gmx.de> | |
1697 | ||
1698 | PR fortran/108924 | |
1699 | * frontend-passes.cc (do_subscript): Clear used gmp variable. | |
1700 | ||
e2b20ed3 GA |
1701 | 2023-02-23 Arsen Arsenović <arsen@aarsen.me> |
1702 | ||
1703 | * invoke.texi: Reorder index entries around @items. | |
1704 | ||
1705 | 2023-02-23 Arsen Arsenović <arsen@aarsen.me> | |
1706 | ||
1707 | * invoke.texi: Reorder @opindex commands to precede @items they | |
1708 | relate to. | |
1709 | ||
b6f98991 GA |
1710 | 2023-02-22 Harald Anlauf <anlauf@gmx.de> |
1711 | ||
1712 | PR fortran/96024 | |
1713 | * resolve.cc (resolve_component): The type of a CHARACTER length | |
1714 | expression must be INTEGER. | |
1715 | ||
c3bf22d9 GA |
1716 | 2023-02-21 Harald Anlauf <anlauf@gmx.de> |
1717 | ||
1718 | PR fortran/96025 | |
1719 | * parse.cc (check_function_result_typed): Improve type check of | |
1720 | specification expression for character length and return status. | |
1721 | (parse_spec): Use status from above. | |
1722 | * resolve.cc (resolve_fntype): Prevent use of invalid specification | |
1723 | expression for character length. | |
1724 | ||
88cc4495 GA |
1725 | 2023-02-16 Patrick Palka <ppalka@redhat.com> |
1726 | ||
1727 | * gfortran.h: Mechanically drop static from static inline | |
1728 | functions via s/^static inline/inline/g. | |
1729 | ||
29a35391 GA |
1730 | 2023-02-15 Steve Kargl <kargl@gcc.gnu.org> |
1731 | ||
1732 | PR fortran/103608 | |
1733 | * frontend-passes.cc (do_intent): Catch NULL pointer dereference on | |
1734 | reference to invalid formal argument. | |
1735 | ||
1736 | 2023-02-15 Steve Kargl <kargl@gcc.gnu.org> | |
1737 | ||
1738 | PR fortran/104554 | |
1739 | * resolve.cc (check_assumed_size_reference): Avoid NULL pointer | |
1740 | dereference. | |
1741 | ||
1742 | 2023-02-15 Tobias Burnus <tobias@codesourcery.com> | |
1743 | ||
1744 | PR fortran/108512 | |
1745 | * openmp.cc (gfc_resolve_omp_parallel_blocks): Handle combined 'loop' | |
1746 | directives. | |
1747 | (gfc_resolve_do_iterator): Set a source location for added | |
1748 | 'private'-clause arguments. | |
1749 | * resolve.cc (gfc_resolve_code): Call gfc_resolve_omp_do_blocks | |
1750 | also for EXEC_OMP_LOOP and gfc_resolve_omp_parallel_blocks for | |
1751 | combined directives with loop + '{masked,master} taskloop (simd)'. | |
1752 | ||
ae719781 GA |
1753 | 2023-02-13 Harald Anlauf <anlauf@gmx.de> |
1754 | ||
1755 | PR fortran/103475 | |
1756 | * primary.cc (gfc_expr_attr): Avoid NULL pointer dereference for | |
1757 | invalid use of CLASS variable. | |
1758 | ||
1759 | 2023-02-13 Rimvydas Jasinskas <rimvydas.jas@gmail.com> | |
1760 | ||
1761 | * decl.cc: Add EXT_ATTR_NOINLINE, EXT_ATTR_NORETURN, EXT_ATTR_WEAK. | |
1762 | * gfortran.h (ext_attr_id_t): Ditto. | |
1763 | * gfortran.texi (GCC$ ATTRIBUTES): Document them. | |
1764 | * trans-decl.cc (build_function_decl): Apply them. | |
1765 | ||
e92e2c96 GA |
1766 | 2023-02-09 Harald Anlauf <anlauf@gmx.de> |
1767 | Steven G. Kargl <kargl@gcc.gnu.org> | |
1768 | ||
1769 | PR fortran/69636 | |
1770 | PR fortran/103779 | |
1771 | * intrinsic.cc (gfc_convert_chartype): Recover on invalid character | |
1772 | kind in conversion instead of generating an internal error. | |
1773 | ||
1774 | 2023-02-09 Tobias Burnus <tobias@codesourcery.com> | |
1775 | ||
1776 | PR fortran/107424 | |
1777 | * trans-openmp.cc (struct dovar_init_d): Add 'sym' and | |
1778 | 'non_unit_incr' members. | |
1779 | (gfc_nonrect_loop_expr): New. | |
1780 | (gfc_trans_omp_do): Call it; use normal loop bounds | |
1781 | for unit stride - and only create local loop var. | |
1782 | ||
1783 | 2023-02-09 Tobias Burnus <tobias@codesourcery.com> | |
1784 | ||
1785 | * parse.cc (decode_omp_directive): Really ignore 'assumes' with | |
1786 | -fopenmp-simd. | |
1787 | ||
f6fc79d0 GA |
1788 | 2023-02-08 Steve Kargl <kargl@gcc.gnu.org> |
1789 | ||
1790 | PR fortran/103259 | |
1791 | * resolve.cc (resolve_common_vars): Avoid NULL pointer dereference | |
1792 | when a symbol's location is not set. | |
1793 | ||
8f3b85ef GA |
1794 | 2023-02-07 Harald Anlauf <anlauf@gmx.de> |
1795 | ||
1796 | PR fortran/95107 | |
1797 | * trans-decl.cc (gfc_finish_var_decl): With -fno-automatic, do not | |
1798 | make ASSOCIATE variables TREE_STATIC. | |
1799 | ||
e4421a77 GA |
1800 | 2023-02-05 Harald Anlauf <anlauf@gmx.de> |
1801 | ||
1802 | PR fortran/108592 | |
1803 | * arith.cc (gfc_arith_divide): Emit integer division truncation | |
1804 | warnings using gfc_warning instead of gfc_warning_now to prevent | |
1805 | redundant messages. | |
1806 | ||
49e52115 GA |
1807 | 2023-02-03 Jakub Jelinek <jakub@redhat.com> |
1808 | ||
1809 | PR fortran/108451 | |
1810 | * trans-decl.cc (gfc_trans_use_stmts): Call clear_slot before | |
1811 | doing continue. | |
1812 | ||
0a251e74 GA |
1813 | 2023-02-01 Harald Anlauf <anlauf@gmx.de> |
1814 | ||
1815 | PR fortran/108609 | |
1816 | * expr.cc (find_array_section): Add check to prevent interpreting an | |
1817 | mpz non-integer constant as an integer. | |
1818 | ||
1819 | 2023-02-01 Tobias Burnus <tobias@codesourcery.com> | |
1820 | ||
1821 | * openmp.cc (resolve_omp_clauses): Check also for | |
1822 | power of two. | |
1823 | ||
6357588d GA |
1824 | 2023-01-29 Mikael Morin <mikael@gcc.gnu.org> |
1825 | ||
1826 | PR fortran/108450 | |
1827 | * check.cc (gfc_check_minloc_maxloc): Explicitly set argument name. | |
1828 | (gfc_check_findloc): Ditto. | |
1829 | ||
1830 | 2023-01-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> | |
1831 | ||
1832 | PR fortran/103506 | |
1833 | * parse.cc (parse_module): Remove use of a bool error value | |
1834 | that prevented proper setting of the namespace pointer. | |
1835 | ||
ee2c965e GA |
1836 | 2023-01-28 Harald Anlauf <anlauf@gmx.de> |
1837 | Steven G. Kargl <kargl@gcc.gnu.org> | |
1838 | ||
1839 | PR fortran/108527 | |
1840 | * resolve.cc (compare_bound_int): Expression to compare must be of | |
1841 | type INTEGER. | |
1842 | (compare_bound_mpz_t): Likewise. | |
1843 | (check_dimension): Fix comment on checks applied to array section | |
1844 | and clean up associated logic. | |
1845 | ||
1846 | 2023-01-28 Harald Anlauf <anlauf@gmx.de> | |
1847 | ||
1848 | PR fortran/108453 | |
1849 | * match.cc (gfc_match_common): A USE associated name shall not appear | |
1850 | in a COMMON block (F2018:C8121). | |
1851 | ||
338eb0f0 GA |
1852 | 2023-01-27 Tobias Burnus <tobias@codesourcery.com> |
1853 | ||
1854 | PR fortran/108558 | |
1855 | * trans-openmp.cc (gfc_split_omp_clauses): Handle has_device_addr. | |
1856 | ||
2371d100 GA |
1857 | 2023-01-26 Harald Anlauf <anlauf@gmx.de> |
1858 | ||
1859 | PR fortran/108544 | |
1860 | * resolve.cc (check_host_association): Extend host association check | |
1861 | so that it is not restricted to functions. Also prevent NULL pointer | |
1862 | dereference. | |
1863 | ||
9bb6515b GA |
1864 | 2023-01-25 Steve Kargl <kargl@gcc.gnu.org> |
1865 | ||
1866 | PR fortran/108528 | |
1867 | * array.cc (compare_bounds): Return false instead of generating an | |
1868 | internal error on an invalid argument type. | |
1869 | ||
0fa22168 GA |
1870 | 2023-01-24 Harald Anlauf <anlauf@gmx.de> |
1871 | ||
1872 | PR fortran/108529 | |
1873 | * simplify.cc (simplify_transformation): Do not try to simplify | |
1874 | transformational intrinsic when the ARRAY argument has a NULL shape. | |
1875 | ||
607f278a GA |
1876 | 2023-01-23 Harald Anlauf <anlauf@gmx.de> |
1877 | ||
1878 | PR fortran/108502 | |
1879 | * dependency.cc (gfc_check_dependency): Prevent NULL pointer | |
1880 | dereference while recursively checking expressions. | |
1881 | ||
1882 | 2023-01-23 Harald Anlauf <anlauf@gmx.de> | |
1883 | ||
1884 | PR fortran/108501 | |
1885 | * interface.cc (get_expr_storage_size): Check array subscript triplets | |
1886 | that we actually have integer values before trying to extract with | |
1887 | mpz_get_si. | |
1888 | ||
1889 | 2023-01-23 Harald Anlauf <anlauf@gmx.de> | |
1890 | ||
1891 | PR fortran/108420 | |
1892 | * iresolve.cc (check_charlen_present): Preserve character length if | |
1893 | there is no array constructor. | |
1894 | ||
d5717e7f GA |
1895 | 2023-01-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> |
1896 | ||
1897 | PR fortran/102595 | |
1898 | * data.cc (gfc_assign_data_value): Remove check for PARAMETER in DATA. | |
1899 | * primary.cc (match_variable): Add check for PARAMETER in DATA. | |
1900 | ||
0846336d GA |
1901 | 2023-01-19 Harald Anlauf <anlauf@gmx.de> |
1902 | ||
1903 | PR fortran/108434 | |
1904 | * expr.cc (class_allocatable): Prevent NULL pointer dereference | |
1905 | or invalid read. | |
1906 | (class_pointer): Likewise. | |
1907 | ||
8d07b193 GA |
1908 | 2023-01-17 Harald Anlauf <anlauf@gmx.de> |
1909 | ||
1910 | PR fortran/108421 | |
1911 | * interface.cc (get_expr_storage_size): Check that we actually have | |
1912 | an integer value before trying to extract it with mpz_get_si. | |
1913 | ||
ecd637e9 GA |
1914 | 2023-01-12 Tobias Burnus <tobias@codesourcery.com> |
1915 | ||
1916 | PR fortran/107706 | |
1917 | * openmp.cc (gfc_resolve_omp_assumptions): Reject nonscalars. | |
1918 | ||
81ed98bc GA |
1919 | 2023-01-11 Jakub Jelinek <jakub@redhat.com> |
1920 | ||
1921 | PR fortran/108349 | |
1922 | * f95-lang.cc (gfc_init_builtin_function): Fix up function types | |
1923 | for BUILT_IN_REALLOC and BUILT_IN_SINCOS{F,,L}. Formatting fixes. | |
1924 | ||
f432ad09 GA |
1925 | 2023-01-10 Harald Anlauf <anlauf@gmx.de> |
1926 | ||
1927 | PR fortran/97345 | |
1928 | * frontend-passes.cc (do_subscript): Clear used gmp variables. | |
1929 | ||
fee53a31 GA |
1930 | 2023-01-02 Jakub Jelinek <jakub@redhat.com> |
1931 | ||
1932 | * gfortranspec.cc (lang_specific_driver): Update copyright notice | |
1933 | dates. | |
1934 | * gfc-internals.texi: Bump @copying's copyright year. | |
1935 | * gfortran.texi: Ditto. | |
1936 | * intrinsic.texi: Ditto. | |
1937 | * invoke.texi: Ditto. | |
1938 | ||
21fa2a29 | 1939 | \f |
d64f8779 | 1940 | Copyright (C) 2023 Free Software Foundation, Inc. |
ad41bd84 JM |
1941 | |
1942 | Copying and distribution of this file, with or without modification, | |
1943 | are permitted in any medium without royalty provided the copyright | |
1944 | notice and this notice are preserved. |