]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/fortran/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
1 2021-11-30 Harald Anlauf <anlauf@gmx.de>
2
3 PR fortran/102787
4 * array.c (expand_constructor): When encountering a constant array
5 expression or array section within a constructor, simplify it to
6 enable better expansion.
7
8 2021-11-30 Harald Anlauf <anlauf@gmx.de>
9
10 PR fortran/103473
11 * simplify.c (simplify_minmaxloc_nodim): Avoid NULL pointer
12 dereference when shape is not set.
13
14 2021-11-30 Harald Anlauf <anlauf@gmx.de>
15 Steven G. Kargl <kargl@gcc.gnu.org>
16
17 PR fortran/101565
18 * check.c (gfc_check_image_index): Verify that SUB argument to
19 IMAGE_INDEX is of type integer.
20
21 2021-11-30 Richard Biener <rguenther@suse.de>
22
23 * frontend-passes.c (gfc_expr_walker): Add comment to
24 indicate tail recursion.
25
26 2021-11-30 Richard Biener <rguenther@suse.de>
27
28 * target-memory.c (gfc_element_size): Remove unreachable return.
29
30 2021-11-30 Thomas Schwinge <thomas@codesourcery.com>
31
32 * openmp.c (resolve_oacc_loop_blocks): Remove "gang reduction on
33 an orphan loop" checking.
34 (oacc_is_parallel, oacc_is_kernels, oacc_is_serial)
35 (oacc_is_compute_construct): Remove.
36
37 2021-11-30 Frederik Harwath <frederik@codesourcery.com>
38 Thomas Schwinge <thomas@codesourcery.com>
39
40 * openmp.c (oacc_is_parallel_or_serial): Evolve into...
41 (oacc_is_compute_construct): ... this function.
42 (resolve_oacc_loop_blocks): Use "oacc_is_compute_construct"
43 instead of "oacc_is_parallel_or_serial" for checking that a
44 loop is not orphaned.
45
46 2021-11-30 Kwok Cheung Yeung <kcy@codesourcery.com>
47 Thomas Schwinge <thomas@codesourcery.com>
48
49 * openmp.c (oacc_is_serial, oacc_is_parallel_or_serial): New.
50 (resolve_oacc_loop_blocks): Use oacc_is_parallel_or_serial instead of
51 oacc_is_parallel.
52
53 2021-11-30 Cesar Philippidis <cesar@codesourcery.com>
54 Thomas Schwinge <thomas@codesourcery.com>
55
56 * openmp.c (oacc_is_parallel, oacc_is_kernels): New 'static'
57 functions.
58 (resolve_oacc_loop_blocks): Emit an error on orphan OpenACC gang
59 reductions.
60
61 2021-11-30 Richard Biener <rguenther@suse.de>
62
63 * decl.c (gfc_insert_parameter_exprs): Only return after
64 resetting type_param_spec_list.
65
66 2021-11-30 Richard Biener <rguenther@suse.de>
67
68 * frontend-passes.c (gfc_expr_walker): Remove unreachable
69 break.
70 * scanner.c (skip_fixed_comments): Remove unreachable
71 gcc_unreachable.
72 * trans-expr.c (gfc_expr_is_variable): Refactor to make
73 control flow more obvious.
74
75 2021-11-29 Eric Gallager <egallager@gcc.gnu.org>
76
77 PR other/103021
78 * Make-lang.in: Use ETAGS variable in TAGS target.
79
80 2021-11-26 Harald Anlauf <anlauf@gmx.de>
81
82 PR fortran/103411
83 * check.c (gfc_check_reshape): Improve check of size of source
84 array for the RESHAPE intrinsic against the given shape when pad
85 is not given, and shape is a parameter. Try other simplifications
86 of shape.
87
88 2021-11-23 Harald Anlauf <anlauf@gmx.de>
89
90 PR fortran/103392
91 * simplify.c (simplify_bound): Do not try to simplify
92 LBOUND/UBOUND for arrays with POINTER or ALLOCATABLE attribute.
93
94 2021-11-23 Harald Anlauf <anlauf@gmx.de>
95
96 PR fortran/87711
97 PR fortran/87851
98 * trans-array.c (arg_evaluated_for_scalarization): Add LEN_TRIM to
99 list of intrinsics for which an optional KIND argument needs to be
100 removed before scalarization.
101
102 2021-11-21 Jakub Jelinek <jakub@redhat.com>
103
104 PR debug/103315
105 * trans-types.c (gfc_get_array_descr_info): Use DW_OP_deref_size 1
106 instead of DW_OP_deref for DW_AT_rank.
107
108 2021-11-21 Harald Anlauf <anlauf@gmx.de>
109 Steven G. Kargl <kargl@gcc.gnu.org>
110
111 PR fortran/99061
112 * trans-intrinsic.c (gfc_lookup_intrinsic): Helper function for
113 looking up gfortran builtin intrinsics.
114 (gfc_conv_intrinsic_atrigd): Use it.
115 (gfc_conv_intrinsic_cotan): Likewise.
116 (gfc_conv_intrinsic_cotand): Likewise.
117 (gfc_conv_intrinsic_atan2d): Likewise.
118
119 2021-11-18 Harald Anlauf <anlauf@gmx.de>
120 Steven G. Kargl <kargl@gcc.gnu.org>
121
122 PR fortran/101329
123 * check.c (is_c_interoperable): Reject NULL() as it is not
124 interoperable.
125
126 2021-11-16 Harald Anlauf <anlauf@gmx.de>
127
128 PR fortran/103286
129 * resolve.c (resolve_select): Choose appropriate range limit to
130 avoid NULL pointer dereference when generating error message.
131
132 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
133
134 * interface.c (gfc_dummy_arg_get_name): New function.
135 * gfortran.h (gfc_dummy_arg_get_name): Declare it.
136 * trans-array.c (arg_evaluated_for_scalarization): Pass a dummy
137 argument wrapper as argument instead of an actual argument
138 and an index number. Check it’s non-NULL. Use its name
139 to identify it.
140 (gfc_walk_elemental_function_args): Update call to
141 arg_evaluated for scalarization. Remove argument counting.
142
143 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
144
145 * gfortran.h (gfc_actual_arglist::missing_arg_type): Remove.
146 * interface.c (gfc_compare_actual_formal): Remove
147 missing_arg_type initialization.
148 * intrinsic.c (sort_actual): Ditto.
149 * trans-expr.c (gfc_conv_procedure_call): Use associated_dummy
150 and gfc_dummy_arg_get_typespec to get the dummy argument type.
151
152 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
153
154 * interface.c (gfc_dummy_arg_get_typespec,
155 gfc_dummy_arg_is_optional): New functions.
156 * gfortran.h (gfc_dummy_arg_get_typespec,
157 gfc_dummy_arg_is_optional): Declare them.
158 * trans.h (gfc_ss_info::dummy_arg): Use the wrapper type
159 as declaration type.
160 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
161 use gfc_dummy_arg_get_typespec function to get the type.
162 (gfc_walk_elemental_function_args): Remove proc_ifc argument.
163 Get info about the dummy arg using the associated_dummy field.
164 * trans-array.h (gfc_walk_elemental_function_args): Update declaration.
165 * trans-intrinsic.c (gfc_walk_intrinsic_function):
166 Update call to gfc_walk_elemental_function_args.
167 * trans-stmt.c (gfc_trans_call): Ditto.
168 (get_proc_ifc_for_call): Remove.
169
170 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
171
172 * gfortran.h (gfc_dummy_arg_kind, gfc_dummy_arg): New.
173 (gfc_actual_arglist): New field associated_dummy.
174 (gfc_intrinsic_arg): Remove field actual.
175 * interface.c (get_nonintrinsic_dummy_arg): New.
176 (gfc_compare_actual): Initialize associated_dummy.
177 * intrinsic.c (get_intrinsic_dummy_arg): New.
178 (sort_actual):  Add argument vectors.
179 Use loops with indices on argument vectors.
180 Initialize associated_dummy.
181
182 2021-11-16 Mikael Morin <mikael@gcc.gnu.org>
183
184 * intrinsic.c (sort_actual): initialise variable and use it earlier.
185
186 2021-11-15 Tobias Burnus <tobias@codesourcery.com>
187
188 * openmp.c (OMP_TARGET_CLAUSES): Add thread_limit.
189 * trans-openmp.c (gfc_split_omp_clauses): Add thread_limit also to
190 teams.
191
192 2021-11-12 Tobias Burnus <tobias@codesourcery.com>
193
194 * parse.c (decode_omp_directive): Fix permitting 'nowait' for some
195 combined directives, add missing 'omp end ... loop'.
196 (gfc_ascii_statement): Fix ST_OMP_END_TEAMS_LOOP result.
197 * openmp.c (resolve_omp_clauses): Add missing combined loop constructs
198 case values to the 'if(directive-name: ...)' check.
199 * trans-openmp.c (gfc_split_omp_clauses): Put nowait on target if
200 first leaf construct accepting it.
201
202 2021-11-12 Martin Jambor <mjambor@suse.cz>
203
204 * trans-types.c (gfc_get_array_descr_info): Use build_debug_expr_decl
205 instead of building DEBUG_EXPR_DECL manually.
206
207 2021-11-12 Mikael Morin <mikael@gcc.gnu.org>
208
209 PR fortran/97896
210 * intrinsic.c (add_sym_4ind): Remove.
211 (add_functions): Use add_sym4 instead of add_sym4ind.
212 Don’t special case the index intrinsic.
213 * iresolve.c (gfc_resolve_index_func): Use the individual arguments
214 directly instead of the full argument list.
215 * intrinsic.h (gfc_resolve_index_func): Update the declaration
216 accordingly.
217 * trans-decl.c (gfc_get_extern_function_decl): Don’t modify the
218 list of arguments in the case of the index intrinsic.
219 * trans-array.h (gfc_get_intrinsic_for_expr,
220 gfc_get_proc_ifc_for_expr): New.
221 * trans-array.c (gfc_get_intrinsic_for_expr,
222 arg_evaluated_for_scalarization): New.
223 (gfc_walk_elemental_function_args): Add intrinsic procedure
224 as argument. Count arguments. Check arg_evaluated_for_scalarization.
225 * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
226 * trans-stmt.c (get_intrinsic_for_code): New.
227 (gfc_trans_call): Update call.
228
229 2021-11-12 Jakub Jelinek <jakub@redhat.com>
230
231 * types.def (BT_FN_VOID_UINT_UINT): Remove.
232 (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New.
233
234 2021-11-11 Tobias Burnus <tobias@codesourcery.com>
235
236 * gfortran.h (struct gfc_omp_clauses): Rename num_teams to
237 num_teams_upper, add num_teams_upper.
238 * dump-parse-tree.c (show_omp_clauses): Update to handle
239 lower-bound num_teams clause.
240 * frontend-passes.c (gfc_code_walker): Likewise
241 * openmp.c (gfc_free_omp_clauses, gfc_match_omp_clauses,
242 resolve_omp_clauses): Likewise.
243 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses,
244 gfc_trans_omp_target): Likewise.
245
246 2021-11-11 Jakub Jelinek <jakub@redhat.com>
247
248 * trans-openmp.c (gfc_trans_omp_clauses): Use
249 OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead of OMP_CLAUSE_NUM_TEAMS_EXPR.
250
251 2021-11-10 Harald Anlauf <anlauf@gmx.de>
252
253 PR fortran/103137
254 PR fortran/103138
255 * check.c (gfc_check_shape): Avoid NULL pointer dereference on
256 missing ref.
257 * simplify.c (gfc_simplify_cshift): Avoid NULL pointer dereference
258 when shape not set.
259 (gfc_simplify_transpose): Likewise.
260
261 2021-11-09 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
262
263 PR fortran/68800
264 * class.c (generate_finalization_wrapper): Do not leak
265 finalization wrappers if they will not be used.
266 * expr.c (gfc_free_actual_arglist): Formatting fix.
267 * gfortran.h (gfc_free_symbol): Pass argument by reference.
268 (gfc_release_symbol): Likewise.
269 (gfc_free_namespace): Likewise.
270 * symbol.c (gfc_release_symbol): Adjust acordingly.
271 (free_components): Set procedure pointer components
272 of derived types to NULL after freeing.
273 (free_tb_tree): Likewise.
274 (gfc_free_symbol): Set sym to NULL after freeing.
275 (gfc_free_namespace): Set namespace to NULL after freeing.
276
277 2021-11-09 Martin Liska <mliska@suse.cz>
278
279 * symbol.c (gfc_get_ultimate_derived_super_type): Remove.
280
281 2021-11-09 Aldy Hernandez <aldyh@redhat.com>
282
283 * misc.c (gfc_dummy_typename): Make sure ts->kind is
284 non-negative.
285
286 2021-11-07 Thomas Koenig <tkoenig@gcc.gnu.org>
287
288 * intrinsic.c (add_subroutines): Change keyword "operator"
289 to the correct one, "operation".
290 * check.c (gfc_check_co_reduce): Change OPERATOR to
291 OPERATION in error messages.
292 * intrinsic.texi: Change OPERATOR to OPERATION in
293 documentation.
294
295 2021-11-07 Sandra Loosemore <sandra@codesourcery.com>
296
297 * interface.c (gfc_compare_actual_formal): Continue checking
298 all arguments after encountering an error.
299 * intrinsic.c (do_ts29113_check): Likewise.
300 * resolve.c (resolve_operator): Continue resolving on op2 error.
301
302 2021-11-06 Harald Anlauf <anlauf@gmx.de>
303
304 PR fortran/102715
305 * decl.c (add_init_expr_to_sym): Reject rank mismatch between
306 array and its initializer.
307
308 2021-11-05 Harald Anlauf <anlauf@gmx.de>
309
310 PR fortran/102817
311 * expr.c (simplify_parameter_variable): Copy shape of referenced
312 subobject when simplifying.
313
314 2021-11-05 Harald Anlauf <anlauf@gmx.de>
315
316 PR fortran/69419
317 * match.c (gfc_match_common): Check array spec of a symbol in a
318 COMMON object list and reject it if it is a coarray.
319
320 2021-11-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
321
322 PR fortran/100972
323 * decl.c (gfc_match_implicit_none): Fix typo in warning.
324 * resolve.c (resolve_unknown_f): Reject external procedures
325 without explicit EXTERNAL attribute whe IMPLICIT none (external)
326 is in effect.
327
328 2021-11-05 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
329
330 * decl.c (gfc_insert_kind_parameter_exprs): Make static.
331 * expr.c (gfc_build_init_expr): Make static
332 (gfc_build_default_init_expr): Move below its static helper.
333 * gfortran.h (gfc_insert_kind_parameter_exprs, gfc_add_saved_common,
334 gfc_add_common, gfc_use_derived_tree, gfc_free_charlen,
335 gfc_get_ultimate_derived_super_type,
336 gfc_resolve_oacc_parallel_loop_blocks, gfc_build_init_expr,
337 gfc_iso_c_sub_interface): Delete.
338 * symbol.c (gfc_new_charlen, gfc_get_derived_super_type): Make
339 static.
340
341 2021-11-05 Sandra Loosemore <sandra@codesourcery.com>
342
343 PR fortran/35276
344 * gfortran.texi (Mixed-Language Programming): Talk about C++,
345 and how to link.
346
347 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
348
349 * gfortran.texi (Projects): Add bullet for helping with
350 incomplete standards compliance.
351 (Proposed Extensions): Delete section.
352
353 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
354
355 * intrinsic.texi (Introduction to Intrinsics): Genericize
356 references to standard versions.
357 * invoke.texi (-fall-intrinsics): Likewise.
358 (-fmax-identifier-length=): Likewise.
359
360 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
361
362 * gfortran.texi (Interoperability with C): Copy-editing. Add
363 more index entries.
364 (Intrinsic Types): Likewise.
365 (Derived Types and struct): Likewise.
366 (Interoperable Global Variables): Likewise.
367 (Interoperable Subroutines and Functions): Likewise.
368 (Working with C Pointers): Likewise.
369 (Further Interoperability of Fortran with C): Likewise. Rewrite
370 to reflect that this is now fully supported by gfortran.
371
372 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
373
374 * gfortran.texi (About GNU Fortran): Consolidate material
375 formerly in other sections. Copy-editing.
376 (Preprocessing and conditional compilation): Delete, moving
377 most material to invoke.texi.
378 (GNU Fortran and G77): Delete.
379 (Project Status): Delete.
380 (Standards): Update.
381 (Fortran 95 status): Mention conditional compilation here.
382 (Fortran 2003 status): Rewrite to mention the 1 missing feature
383 instead of all the ones implemented.
384 (Fortran 2008 status): Similarly for the 2 missing features.
385 (Fortran 2018 status): Rewrite to reflect completion of TS29113
386 feature support.
387 * invoke.texi (Preprocessing Options): Move material formerly
388 in introductory chapter here.
389
390 2021-11-04 Sandra Loosemore <sandra@codesourcery.com>
391
392 * gfortran.texi (Standards): Move discussion of specific
393 standard versions here....
394 (Fortran standards status): ...from here, and delete this node.
395
396 2021-10-31 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
397
398 * symbol.c (gfc_get_typebound_proc): Revert memcpy.
399
400 2021-10-31 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
401
402 * resolve.c (resolve_fl_procedure): Initialize
403 allocatable_or_pointer.
404
405 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
406
407 * intrinsic.texi: Remove entries for SHORT and LONG intrinsics.
408
409 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
410
411 * check.c (gfc_check_intconv): Change error message.
412
413 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
414
415 * intrinsic.texi (REAL): Fix entries in Specific names table.
416
417 2021-10-30 Manfred Schwarb <manfred99@gmx.ch>
418
419 * intrinsic.texi: Adjust @columnfractions commands to improve
420 appearance for narrow 80 character terminals.
421
422 2021-10-30 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
423
424 * parse.c (clean_up_modules): Free gsym.
425
426 2021-10-30 Harald Anlauf <anlauf@gmx.de>
427
428 * gfortran.texi (bug reports): credit Gerhard Steinmetz for
429 numerous bug reports.
430
431 2021-10-30 Steve Kargl <kargl@gcc.gnu.org>
432
433 PR fortran/99853
434 * resolve.c (resolve_select): Generate regular gfc_error on
435 invalid conversions instead of an gfc_internal_error.
436
437 2021-10-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
438
439 * symbol.c (free_tb_tree): Free type-bound procedure struct.
440 (gfc_get_typebound_proc): Use explicit memcpy for clarity.
441
442 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
443
444 * intrinsic.h (gfc_check_sum, gfc_resolve_atan2d, gfc_resolve_kill,
445 gfc_resolve_kill_sub): Delete declaration.
446
447 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
448
449 * trans-types.h (gfc_convert_function_code): Delete.
450
451 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
452
453 * trans-stmt.h (gfc_trans_deallocate_array): Delete.
454
455 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
456
457 * trans-array.c (gfc_trans_scalarized_loop_end): Make static.
458 * trans-array.h (gfc_trans_scalarized_loop_end,
459 gfc_conv_tmp_ref, gfc_conv_array_transpose): Delete declaration.
460
461 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
462
463 * constructor.c (gfc_constructor_get_base): Make static.
464 (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete.
465 * constructor.h (gfc_constructor_get_base): Remove declaration.
466 (gfc_constructor_expr_foreach, gfc_constructor_swap): Delete.
467
468 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
469
470 * decl.c (gfc_match_old_kind_spec, set_com_block_bind_c,
471 set_verify_bind_c_sym, set_verify_bind_c_com_block,
472 get_bind_c_idents, gfc_match_suffix, gfc_get_type_attr_spec,
473 check_extended_derived_type): Make static.
474 (gfc_match_gcc_unroll): Add comment.
475 * match.c (gfc_match_small_int_expr): Delete definition.
476 * match.h (gfc_match_small_int_expr): Delete declaration.
477 (gfc_match_name_C, gfc_match_old_kind_spec, set_com_block_bind_c,
478 set_verify_bind_c_sym, set_verify_bind_c_com_block,
479 get_bind_c_idents, gfc_match_suffix,
480 gfc_get_type_attr_spec): Delete declaration.
481
482 2021-10-27 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
483
484 * expr.c (is_non_empty_structure_constructor): Make static.
485 * gfortran.h (gfc_check_any_c_kind): Delete.
486 * match.c (gfc_match_label): Make static.
487 * match.h (gfc_match_label): Delete declaration.
488 * scanner.c (file_changes_cur, file_changes_count,
489 file_changes_allocated): Make static.
490 * trans-expr.c (gfc_get_character_len): Make static.
491 (gfc_class_len_or_zero_get): Make static.
492 (VTAB_GET_FIELD_GEN): Undefine.
493 (gfc_get_class_array_ref): Make static.
494 (gfc_finish_interface_mapping): Make static.
495 * trans-types.c (gfc_check_any_c_kind): Delete.
496 (pfunc_type_node, dtype_type_node, gfc_get_ppc_type): Make static.
497 * trans-types.h (gfc_get_ppc_type): Delete declaration.
498 * trans.c (gfc_msg_wrong_return): Delete.
499 * trans.h (gfc_class_len_or_zero_get, gfc_class_vtab_extends_get,
500 gfc_vptr_extends_get, gfc_get_class_array_ref, gfc_get_character_len,
501 gfc_finish_interface_mapping, gfc_msg_wrong_return,
502 gfc_get_function_decl): Delete declaration.
503
504 2021-10-27 Tobias Burnus <tobias@codesourcery.com>
505
506 * trans-stmt.c (gfc_trans_select_rank_cases): Fix condition
507 for allocatables/pointers.
508
509 2021-10-26 Harald Anlauf <anlauf@gmx.de>
510
511 PR fortran/102956
512 * symbol.c (gfc_check_conflict): Add conflict check for PDT KIND
513 and LEN type parameters.
514
515 2021-10-26 Harald Anlauf <anlauf@gmx.de>
516
517 PR fortran/102917
518 * decl.c (match_attr_spec): Remove invalid integer kind checks on
519 KIND and LEN attributes of PDTs.
520
521 2021-10-26 Harald Anlauf <anlauf@gmx.de>
522
523 PR fortran/102816
524 * resolve.c (resolve_structure_cons): Reject invalid array spec of
525 a DT component referenced in a structure constructor.
526
527 2021-10-26 Tobias Burnus <tobias@codesourcery.com>
528
529 PR fortran/102885
530 * trans-decl.c (gfc_conv_cfi_to_gfc): Properly handle nonconstant
531 character lenghts.
532
533 2021-10-25 Andrew MacLeod <amacleod@redhat.com>
534
535 * trans-decl.c (gfc_conv_cfi_to_gfc): Initialize rank to NULL_TREE.
536
537 2021-10-22 Eric Gallager <egallager@gcc.gnu.org>
538
539 PR other/102663
540 * Make-lang.in: Allow dvi-formatted documentation
541 to be installed.
542
543 2021-10-22 Tobias Burnus <tobias@codesourcery.com>
544
545 PR fortran/92621
546 * trans-expr.c (gfc_trans_assignment_1): Add STRIP_NOPS.
547
548 2021-10-21 Chung-Lin Tang <cltang@codesourcery.com>
549
550 * decl.c (gfc_match_end): Add COMP_OMP_STRICTLY_STRUCTURED_BLOCK case
551 together with COMP_BLOCK.
552 * parse.c (parse_omp_structured_block): Change return type to
553 'gfc_statement', add handling for strictly-structured block case, adjust
554 recursive calls to parse_omp_structured_block.
555 (parse_executable): Adjust calls to parse_omp_structured_block.
556 * parse.h (enum gfc_compile_state): Add
557 COMP_OMP_STRICTLY_STRUCTURED_BLOCK.
558 * trans-openmp.c (gfc_trans_omp_workshare): Add EXEC_BLOCK case
559 handling.
560
561 2021-10-21 Sandra Loosemore <sandra@codesourcery.com>
562
563 PR fortran/94070
564 * expr.c (gfc_simplify_expr): Handle GFC_ISYM_SHAPE along with
565 GFC_ISYM_LBOUND and GFC_ISYM_UBOUND.
566 * trans-array.c (gfc_conv_ss_startstride): Likewise.
567 (set_loop_bounds): Likewise.
568 * trans-intrinsic.c (gfc_trans_intrinsic_bound): Extend to
569 handle SHAPE. Correct logic for zero-size special cases and
570 detecting assumed-rank arrays associated with an assumed-size
571 argument.
572 (gfc_conv_intrinsic_shape): Deleted.
573 (gfc_conv_intrinsic_function): Handle GFC_ISYM_SHAPE like
574 GFC_ISYM_LBOUND and GFC_ISYM_UBOUND.
575 (gfc_add_intrinsic_ss_code): Likewise.
576 (gfc_walk_intrinsic_bound): Likewise.
577
578 2021-10-20 Chung-Lin Tang <cltang@codesourcery.com>
579
580 * openmp.c (gfc_match_omp_clause_reduction): Add 'openmp_target' default
581 false parameter. Add 'always,tofrom' map for OMP_LIST_IN_REDUCTION case.
582 (gfc_match_omp_clauses): Add 'openmp_target' default false parameter,
583 adjust call to gfc_match_omp_clause_reduction.
584 (match_omp): Adjust call to gfc_match_omp_clauses
585 * trans-openmp.c (gfc_trans_omp_taskgroup): Add call to
586 gfc_match_omp_clause, create and return block.
587
588 2021-10-19 Tobias Burnus <tobias@codesourcery.com>
589
590 * trans-types.c (create_fn_spec): For allocatable/pointer
591 character(len=:), use 'w' not 'R' as fn spec for the length dummy
592 argument.
593
594 2021-10-19 Tobias Burnus <tobias@codesourcery.com>
595
596 PR fortran/92482
597 * trans-expr.c (gfc_conv_procedure_call): Use TREE_OPERAND not
598 build_fold_indirect_ref_loc to undo an ADDR_EXPR.
599
600 2021-10-18 Tobias Burnus <tobias@codesourcery.com>
601
602 PR fortran/102086
603 PR fortran/92189
604 PR fortran/92621
605 PR fortran/101308
606 PR fortran/101309
607 PR fortran/101635
608 PR fortran/92482
609 * decl.c (gfc_verify_c_interop_param): Remove 'sorry' for
610 scalar allocatable/pointer and len=*.
611 * expr.c (is_CFI_desc): Return true for for those.
612 * gfortran.h (CFI_type_kind_shift, CFI_type_mask,
613 CFI_type_from_type_kind, CFI_VERSION, CFI_MAX_RANK,
614 CFI_attribute_pointer, CFI_attribute_allocatable,
615 CFI_attribute_other, CFI_type_Integer, CFI_type_Logical,
616 CFI_type_Real, CFI_type_Complex, CFI_type_Character,
617 CFI_type_ucs4_char, CFI_type_struct, CFI_type_cptr,
618 CFI_type_cfunptr, CFI_type_other): New #define.
619 * trans-array.c (CFI_FIELD_BASE_ADDR, CFI_FIELD_ELEM_LEN,
620 CFI_FIELD_VERSION, CFI_FIELD_RANK, CFI_FIELD_ATTRIBUTE,
621 CFI_FIELD_TYPE, CFI_FIELD_DIM, CFI_DIM_FIELD_LOWER_BOUND,
622 CFI_DIM_FIELD_EXTENT, CFI_DIM_FIELD_SM,
623 gfc_get_cfi_descriptor_field, gfc_get_cfi_desc_base_addr,
624 gfc_get_cfi_desc_elem_len, gfc_get_cfi_desc_version,
625 gfc_get_cfi_desc_rank, gfc_get_cfi_desc_type,
626 gfc_get_cfi_desc_attribute, gfc_get_cfi_dim_item,
627 gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm):
628 New define/functions to access the CFI array descriptor.
629 (gfc_conv_descriptor_type): New function for the GFC descriptor.
630 (gfc_get_array_span): Handle expr of CFI descriptors and
631 assumed-type descriptors.
632 (gfc_trans_array_bounds): Remove 'static'.
633 (gfc_conv_expr_descriptor): For assumed type, use the dtype of
634 the actual argument.
635 (structure_alloc_comps): Remove ' ' inside tabs.
636 * trans-array.h (gfc_trans_array_bounds, gfc_conv_descriptor_type,
637 gfc_get_cfi_desc_base_addr, gfc_get_cfi_desc_elem_len,
638 gfc_get_cfi_desc_version, gfc_get_cfi_desc_rank,
639 gfc_get_cfi_desc_type, gfc_get_cfi_desc_attribute,
640 gfc_get_cfi_dim_lbound, gfc_get_cfi_dim_extent, gfc_get_cfi_dim_sm):
641 New prototypes.
642 * trans-decl.c (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi):
643 Remove global vars.
644 (gfc_build_builtin_function_decls): Remove their initialization.
645 (gfc_get_symbol_decl, create_function_arglist,
646 gfc_trans_deferred_vars): Update for CFI.
647 (convert_CFI_desc): Remove and replace by ...
648 (gfc_conv_cfi_to_gfc): ... this function
649 (gfc_generate_function_code): Call it; create local GFC var for CFI.
650 * trans-expr.c (gfc_maybe_dereference_var): Handle CFI.
651 (gfc_conv_subref_array_arg): Handle the if-noncontigous-only copy in
652 when the result should be a descriptor.
653 (gfc_conv_gfc_desc_to_cfi_desc): Completely rewritten.
654 (gfc_conv_procedure_call): CFI fixes.
655 * trans-openmp.c (gfc_omp_is_optional_argument,
656 gfc_omp_check_optional_argument): Handle optional
657 CFI.
658 * trans-stmt.c (gfc_trans_select_rank_cases): Cleanup, avoid invalid
659 code for allocatable/pointer dummies, which cannot be assumed size.
660 * trans-types.c (gfc_cfi_descriptor_base): New global var.
661 (gfc_get_dtype_rank_type): Skip rank init for rank < 0.
662 (gfc_sym_type): Handle CFI dummies.
663 (gfc_get_function_type): Update call.
664 (gfc_get_cfi_dim_type, gfc_get_cfi_type): New.
665 * trans-types.h (gfc_sym_type): Update prototype.
666 (gfc_get_cfi_type): New prototype.
667 * trans.c (gfc_trans_runtime_check): Make conditions more consistent
668 to avoid '<logical> AND_THEN <long int>' in conditions.
669 * trans.h (gfor_fndecl_cfi_to_gfc, gfor_fndecl_gfc_to_cfi): Remove
670 global-var declaration.
671
672 2021-10-18 Tobias Burnus <tobias@codesourcery.com>
673
674 PR fortran/102745
675 * intrinsic.c (gfc_convert_type_warn): Fix checks by checking CLASS
676 and do typcheck in correct order for type extension.
677 * misc.c (gfc_typename): Print proper not internal CLASS type name.
678
679 2021-10-15 Harald Anlauf <anlauf@gmx.de>
680 Tobias Burnus <tobias@codesourcery.com>
681
682 PR fortran/102685
683 * decl.c (match_clist_expr): Set rank/shape of clist initializer
684 to match LHS.
685 * resolve.c (resolve_structure_cons): In a structure constructor,
686 compare shapes of array components against declared shape.
687
688 2021-10-14 Harald Anlauf <anlauf@gmx.de>
689
690 PR fortran/102717
691 * simplify.c (gfc_simplify_reshape): Replace assert by error
692 message for negative elements in SHAPE array.
693
694 2021-10-14 Harald Anlauf <anlauf@gmx.de>
695
696 PR fortran/102716
697 * check.c (gfc_check_shape): Reorder checks so that invalid KIND
698 arguments can be detected.
699
700 2021-10-14 Kwok Cheung Yeung <kcy@codesourcery.com>
701
702 * gfortran.h (enum gfc_statement): Add ST_OMP_DECLARE_VARIANT.
703 (enum gfc_omp_trait_property_kind): New.
704 (struct gfc_omp_trait_property): New.
705 (gfc_get_omp_trait_property): New macro.
706 (struct gfc_omp_selector): New.
707 (gfc_get_omp_selector): New macro.
708 (struct gfc_omp_set_selector): New.
709 (gfc_get_omp_set_selector): New macro.
710 (struct gfc_omp_declare_variant): New.
711 (gfc_get_omp_declare_variant): New macro.
712 (struct gfc_namespace): Add omp_declare_variant field.
713 (gfc_free_omp_declare_variant_list): New prototype.
714 * match.h (gfc_match_omp_declare_variant): New prototype.
715 * openmp.c (gfc_free_omp_trait_property_list): New.
716 (gfc_free_omp_selector_list): New.
717 (gfc_free_omp_set_selector_list): New.
718 (gfc_free_omp_declare_variant_list): New.
719 (gfc_match_omp_clauses): Add extra optional argument. Handle end of
720 clauses for context selectors.
721 (omp_construct_selectors, omp_device_selectors,
722 omp_implementation_selectors, omp_user_selectors): New.
723 (gfc_match_omp_context_selector): New.
724 (gfc_match_omp_context_selector_specification): New.
725 (gfc_match_omp_declare_variant): New.
726 * parse.c: Include tree-core.h and omp-general.h.
727 (decode_omp_directive): Handle 'declare variant'.
728 (case_omp_decl): Include ST_OMP_DECLARE_VARIANT.
729 (gfc_ascii_statement): Handle ST_OMP_DECLARE_VARIANT.
730 (gfc_parse_file): Initialize omp_requires_mask.
731 * symbol.c (gfc_free_namespace): Call
732 gfc_free_omp_declare_variant_list.
733 * trans-decl.c (gfc_get_extern_function_decl): Call
734 gfc_trans_omp_declare_variant.
735 (gfc_create_function_decl): Call gfc_trans_omp_declare_variant.
736 * trans-openmp.c (gfc_trans_omp_declare_variant): New.
737 * trans-stmt.h (gfc_trans_omp_declare_variant): New prototype.
738
739 2021-10-13 Tobias Burnus <tobias@codesourcery.com>
740
741 * dump-parse-tree.c (show_omp_clauses): Handle ancestor modifier,
742 avoid ICE for GFC_OMP_ATOMIC_SWAP.
743 * gfortran.h (gfc_omp_clauses): Change 'anecestor' into a bitfield.
744
745 2021-10-12 Tobias Burnus <tobias@codesourcery.com>
746
747 PR fortran/102541
748 * check.c (gfc_check_present): Handle optional CLASS.
749 * interface.c (gfc_compare_actual_formal): Likewise.
750 * trans-array.c (gfc_trans_g77_array): Likewise.
751 * trans-decl.c (gfc_build_dummy_array_decl): Likewise.
752 * trans-types.c (gfc_sym_type): Likewise.
753 * primary.c (gfc_variable_attr): Fixes for dummy and
754 pointer when 'class%_data' is passed.
755 * trans-expr.c (set_dtype_for_unallocated, gfc_conv_procedure_call):
756 For assumed-rank dummy, fix setting rank for dealloc/notassoc actual
757 and setting ubound to -1 for assumed-size actuals.
758
759 2021-10-10 Harald Anlauf <anlauf@gmx.de>
760
761 PR fortran/99348
762 PR fortran/102521
763 * decl.c (add_init_expr_to_sym): Extend initialization of
764 parameter arrays from scalars to handle derived types.
765
766 2021-10-09 Harald Anlauf <anlauf@gmx.de>
767
768 PR fortran/65454
769 * module.c (read_module): Handle old and new-style relational
770 operators when used in USE module, ONLY: OPERATOR(op).
771
772 2021-10-08 Sandra Loosemore <sandra@codesourcery.com>
773
774 PR fortran/54753
775 * interface.c (gfc_compare_actual_formal): Add diagnostic
776 for F2018:C839. Refactor shared code and fix bugs with class
777 array info lookup, and extend similar diagnostic from PR94110
778 to also cover class types.
779
780 2021-10-08 Martin Liska <mliska@suse.cz>
781
782 * options.c (gfc_post_options): Use new macro
783 OPTION_SET_P.
784
785 2021-10-06 Tobias Burnus <tobias@codesourcery.com>
786
787 * resolve.c (resolve_values): Only show
788 deprecated warning if attr.referenced.
789
790 2021-10-04 Tobias Burnus <tobias@codesourcery.com>
791
792 PR fortran/54753
793 * resolve.c (can_generate_init, resolve_fl_variable_derived,
794 resolve_symbol): Only do initialization with intent(out) if not
795 inside of an interface block.
796
797 2021-10-01 Martin Sebor <msebor@redhat.com>
798
799 PR c/102103
800 * array.c: Remove an unnecessary test.
801 * trans-array.c: Same.
802
803 2021-10-01 Jakub Jelinek <jakub@redhat.com>
804
805 * gfortran.h (gfc_omp_clauses): Add order_reproducible bitfield.
806 * dump-parse-tree.c (show_omp_clauses): Print REPRODUCIBLE: for it.
807 * openmp.c (gfc_match_omp_clauses): Set order_reproducible for
808 explicit reproducible: modifier.
809 * trans-openmp.c (gfc_trans_omp_clauses): Set
810 OMP_CLAUSE_ORDER_REPRODUCIBLE for order_reproducible.
811 (gfc_split_omp_clauses): Also copy order_reproducible.
812
813 2021-09-30 Harald Anlauf <anlauf@gmx.de>
814
815 PR fortran/102458
816 * simplify.c (simplify_size): Resolve expressions used in array
817 specifications so that SIZE can be simplified.
818
819 2021-09-30 Harald Anlauf <anlauf@gmx.de>
820
821 * expr.c: The correct reference to Fortran standard is: F2018:10.1.12.
822
823 2021-09-30 Tobias Burnus <tobias@codesourcery.com>
824
825 PR fortran/71703
826 PR fortran/84007
827 * trans-intrinsic.c (gfc_conv_same_type_as): Fix handling
828 of UNLIMITED_POLY.
829 * trans.h (gfc_vtpr_hash_get): Renamed prototype to ...
830 (gfc_vptr_hash_get): ... this to match function name.
831
832 2021-09-29 Harald Anlauf <anlauf@gmx.de>
833
834 PR fortran/102520
835 * array.c (expand_constructor): Do not dereference NULL pointer.
836
837 2021-09-27 Tobias Burnus <tobias@codesourcery.com>
838
839 PR fortran/94070
840 * trans-array.c (gfc_tree_array_size): New function to
841 find size inline (whole array or one dimension).
842 (array_parameter_size): Use it, take stmt_block as arg.
843 (gfc_conv_array_parameter): Update call.
844 * trans-array.h (gfc_tree_array_size): Add prototype.
845 * trans-decl.c (gfor_fndecl_size0, gfor_fndecl_size1): Remove
846 these global vars.
847 (gfc_build_intrinsic_function_decls): Remove their initialization.
848 * trans-expr.c (gfc_conv_procedure_call): Update
849 bounds of pointer/allocatable actual args to nonallocatable/nonpointer
850 dummies to be one based.
851 * trans-intrinsic.c (gfc_conv_intrinsic_shape): Fix case for
852 assumed rank with allocatable/pointer dummy.
853 (gfc_conv_intrinsic_size): Update to use inline function.
854 * trans.h (gfor_fndecl_size0, gfor_fndecl_size1): Remove var decl.
855
856 2021-09-26 Tobias Burnus <tobias@codesourcery.com>
857
858 PR fortran/101334
859 * trans-intrinsic.c (gfc_conv_associated): Support assumed-rank
860 'pointer' with scalar/array 'target' argument.
861
862 2021-09-24 Harald Anlauf <anlauf@gmx.de>
863
864 PR fortran/102458
865 * expr.c (is_non_constant_intrinsic): Check for intrinsics
866 excluded in constant expressions (F2018:10.1.2).
867 (gfc_is_constant_expr): Use that check.
868
869 2021-09-24 Sandra Loosemore <sandra@codesourcery.com>
870
871 PR fortran/101333
872 * interface.c (compare_parameter): Enforce F2018 C711.
873
874 2021-09-24 Tobias Burnus <tobias@codesourcery.com>
875
876 PR fortran/55534
877 * scanner.c (load_file): Return void, call (gfc_)fatal_error for
878 all errors.
879 (include_line, include_stmt, gfc_new_file): Remove exit call
880 for failed load_file run.
881
882 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
883
884 PR fortran/101320
885 * decl.c (gfc_verify_c_interop_param): Handle F2018 C1557,
886 aka TS29113 C516.
887
888 2021-09-23 Harald Anlauf <anlauf@gmx.de>
889 Tobias Burnus <tobias@codesourcery.com>
890
891 PR fortran/93834
892 * trans-intrinsic.c (gfc_conv_allocated): Cleanup. Handle
893 coindexed scalar coarrays.
894
895 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
896
897 PR fortran/101319
898 * interface.c (gfc_compare_actual_formal): Extend existing
899 assumed-type diagnostic to also check for argument with type
900 parameters.
901
902 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
903
904 PR fortran/101334
905 * check.c (gfc_check_associated): Allow an assumed-rank
906 array for the pointer argument.
907 * interface.c (compare_parameter): Also give rank mismatch
908 error on assumed-rank array.
909
910 2021-09-23 Sandra Loosemore <sandra@codesourcery.com>
911
912 * trans-stmt.c (trans_associate_var): Check that result of
913 GFC_DECL_SAVED_DESCRIPTOR is not null before using it.
914
915 2021-09-22 Tobias Burnus <tobias@codesourcery.com>
916
917 PR fortran/55534
918 * cpp.c (gfc_cpp_register_include_paths, gfc_cpp_post_options):
919 Add new bool verbose_missing_dir_warn argument.
920 * cpp.h (gfc_cpp_post_options): Update prototype.
921 * f95-lang.c (gfc_init): Remove duplicated file-not found diag.
922 * gfortran.h (gfc_check_include_dirs): Takes bool
923 verbose_missing_dir_warn arg.
924 (gfc_new_file): Returns now void.
925 * options.c (gfc_post_options): Update to warn for -I and -J,
926 only, by default but for all when user requested.
927 * scanner.c (gfc_do_check_include_dir):
928 (gfc_do_check_include_dirs, gfc_check_include_dirs): Take bool
929 verbose warn arg and update to avoid printing the same message
930 twice or never.
931 (load_file): Fix indent.
932 (gfc_new_file): Return void and exit when load_file failed
933 as all other load_file users do.
934
935 2021-09-22 Tobias Burnus <tobias@codesourcery.com>
936
937 * trans-expr.c (gfc_simple_for_loop): New.
938 * trans.h (gfc_simple_for_loop): New prototype.
939
940 2021-09-21 Tobias Burnus <tobias@codesourcery.com>
941
942 PR fortran/55534
943 * cpp.c: Define GCC_C_COMMON_C for #include "options.h" to make
944 cpp_reason_option_codes available.
945 (gfc_cpp_register_include_paths): Make static, set pfile's
946 warn_missing_include_dirs and move before caller.
947 (gfc_cpp_init_cb): New, cb code moved from ...
948 (gfc_cpp_init_0): ... here.
949 (gfc_cpp_post_options): Call gfc_cpp_init_cb.
950 (cb_cpp_diagnostic_cpp_option): New. As implemented in c-family
951 to match CppReason flags to -W... names.
952 (cb_cpp_diagnostic): Use it to replace single special case.
953 * cpp.h (gfc_cpp_register_include_paths): Remove as now static.
954 * gfortran.h (gfc_check_include_dirs): New prototype.
955 (gfc_add_include_path): Add new bool arg.
956 * options.c (gfc_init_options): Don't set -Wmissing-include-dirs.
957 (gfc_post_options): Set it here after commandline processing. Call
958 gfc_add_include_path with defer_warn=false.
959 (gfc_handle_option): Call it with defer_warn=true.
960 * scanner.c (gfc_do_check_include_dir, gfc_do_check_include_dirs,
961 gfc_check_include_dirs): New. Diagnostic moved from ...
962 (add_path_to_list): ... here, which came before cmdline processing.
963 Take additional bool defer_warn argument.
964 (gfc_add_include_path): Take additional defer_warn arg.
965 * scanner.h (struct gfc_directorylist): Reorder for alignment issues,
966 add new 'bool warn'.
967
968 2021-09-20 Tobias Burnus <tobias@codesourcery.com>
969
970 * gfortran.h (gfc_omp_clauses): Add order_unconstrained.
971 * dump-parse-tree.c (show_omp_clauses): Dump it.
972 * openmp.c (gfc_match_omp_clauses): Match unconstrained/reproducible
973 modifiers to ordered(concurrent).
974 (OMP_DISTRIBUTE_CLAUSES): Accept ordered clause.
975 (resolve_omp_clauses): Reject ordered + order on same directive.
976 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses): Pass
977 on unconstrained modifier of ordered(concurrent).
978
979 2021-09-17 Harald Anlauf <anlauf@gmx.de>
980
981 PR fortran/102366
982 * trans-decl.c (gfc_finish_var_decl): Disable the warning message
983 for variables moved from stack to static storange if they are
984 declared in the main, but allow the move to happen.
985
986 2021-09-17 Sandra Loosemore <sandra@codesourcery.com>
987
988 * intrinsic.texi (ISO_C_BINDING): Change C_FLOAT128 to correspond
989 to _Float128 rather than __float128.
990 * iso-c-binding.def (c_float128): Update comments.
991 * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Likewise.
992 (build_round_expr): Likewise.
993 (gfc_build_intrinsic_lib_fndcecls): Likewise.
994 * trans-types.h (gfc_real16_is_float128): Likewise.
995
996 2021-09-16 Harald Anlauf <anlauf@gmx.de>
997
998 PR fortran/102287
999 * trans-expr.c (gfc_conv_procedure_call): Wrap deallocation of
1000 allocatable components of optional allocatable derived type
1001 procedure arguments with INTENT(OUT) into a presence check.
1002
1003 2021-09-14 Harald Anlauf <anlauf@gmx.de>
1004
1005 PR fortran/102311
1006 * resolve.c (resolve_entries): Attempt to recover cleanly after
1007 rejecting mismatched function entries.
1008
1009 2021-09-14 Tobias Burnus <tobias@codesourcery.com>
1010
1011 PR fortran/102313
1012 * parse.c (gfc_ascii_statement): Add missing ST_OMP_END_SCOPE.
1013
1014 2021-09-13 Harald Anlauf <anlauf@gmx.de>
1015
1016 PR fortran/82314
1017 * decl.c (add_init_expr_to_sym): For proper initialization of
1018 array-valued named constants the array bounds need to be
1019 simplified before adding the initializer.
1020
1021 2021-09-13 Harald Anlauf <anlauf@gmx.de>
1022
1023 PR fortran/85130
1024 * expr.c (find_substring_ref): Handle given substring start and
1025 end indices as signed integers, not unsigned.
1026
1027 2021-09-09 Harald Anlauf <anlauf@gmx.de>
1028
1029 PR fortran/98490
1030 * trans-expr.c (gfc_conv_substring): Do not generate substring
1031 bounds check for implied do loop index variable before it actually
1032 becomes defined.
1033
1034 2021-09-08 liuhongt <hongtao.liu@intel.com>
1035
1036 * options.c (gfc_post_options): Issue an error for
1037 -fexcess-precision=16.
1038
1039 2021-09-07 Harald Anlauf <anlauf@gmx.de>
1040
1041 PR fortran/101327
1042 * expr.c (find_array_element): When bounds cannot be determined as
1043 constant, return error instead of aborting.
1044
1045 2021-09-07 Marcel Vollweiler <marcel@codesourcery.com>
1046
1047 * openmp.c (gfc_match_omp_flush): Parse 'seq_cst' clause on 'flush'
1048 directive.
1049 * trans-openmp.c (gfc_trans_omp_flush): Handle OMP_MEMORDER_SEQ_CST.
1050
1051 2021-09-03 Tobias Burnus <tobias@codesourcery.com>
1052
1053 * decl.c (gfc_verify_c_interop_param): Reject pointer with
1054 CONTIGUOUS attributes as dummy arg. Reject character len > 1
1055 when passed as byte stream.
1056
1057 2021-09-01 Harald Anlauf <anlauf@gmx.de>
1058
1059 PR fortran/56985
1060 * resolve.c (resolve_common_vars): Fix grammar and improve wording
1061 of error message rejecting an unlimited polymorphic in COMMON.
1062
1063 2021-08-31 Harald Anlauf <anlauf@gmx.de>
1064
1065 PR fortran/100950
1066 * simplify.c (substring_has_constant_len): Minimize checks for
1067 substring expressions being allowed.
1068
1069 2021-08-31 Marcel Vollweiler <marcel@codesourcery.com>
1070
1071 * gfortran.h: Add variable for 'ancestor' in struct gfc_omp_clauses.
1072 * openmp.c (gfc_match_omp_clauses): Parse device-modifiers 'device_num'
1073 and 'ancestor' in 'target device' clauses.
1074 * trans-openmp.c (gfc_trans_omp_clauses): Set OMP_CLAUSE_DEVICE_ANCESTOR.
1075
1076 2021-08-30 Harald Anlauf <anlauf@gmx.de>
1077
1078 PR fortran/102113
1079 * match.c (gfc_match_goto): Allow for whitespace in parsing list
1080 of labels.
1081
1082 2021-08-30 Harald Anlauf <anlauf@gmx.de>
1083
1084 PR fortran/101349
1085 * resolve.c (resolve_allocate_expr): An unlimited polymorphic
1086 argument to ALLOCATE must be ALLOCATABLE or a POINTER. Fix the
1087 corresponding check.
1088
1089 2021-08-28 Harald Anlauf <anlauf@gmx.de>
1090
1091 PR fortran/87737
1092 * resolve.c (resolve_entries): For functions of type CHARACTER
1093 tighten the checks for matching characteristics.
1094
1095 2021-08-25 Lewis Hyatt <lhyatt@gmail.com>
1096
1097 PR other/93067
1098 * cpp.c (gfc_cpp_post_options): Call new function
1099 diagnostic_initialize_input_context().
1100
1101 2021-08-24 Harald Anlauf <anlauf@gmx.de>
1102
1103 PR fortran/98411
1104 * trans-decl.c (gfc_finish_var_decl): Adjust check to handle
1105 implicit SAVE as well as variables in the main program. Improve
1106 warning message text.
1107
1108 2021-08-23 Tobias Burnus <tobias@codesourcery.com>
1109
1110 * openmp.c (gfc_match_dupl_check, gfc_match_dupl_memorder,
1111 gfc_match_dupl_atomic): New.
1112 (gfc_match_omp_clauses): Use them; remove duplicate
1113 'release'/'relaxed' clause matching; improve error dignostic
1114 for 'default'.
1115
1116 2021-08-23 Tobias Burnus <tobias@codesourcery.com>
1117
1118 * dump-parse-tree.c (show_omp_clauses): Handle 'strict' modifier
1119 on grainsize/num_tasks
1120 * gfortran.h (gfc_omp_clauses): Add grainsize_strict
1121 and num_tasks_strict.
1122 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
1123 Handle 'strict' modifier on grainsize/num_tasks.
1124 * openmp.c (gfc_match_omp_clauses): Likewise.
1125
1126 2021-08-20 Tobias Burnus <tobias@codesourcery.com>
1127
1128 * error.c
1129 (error_uinteger): Take 'long long unsigned' instead
1130 of 'long unsigned' as argumpent.
1131 (error_integer): Take 'long long' instead of 'long'.
1132 (error_hwuint, error_hwint): New.
1133 (error_print): Update to handle 'll' and 'w'
1134 length modifiers.
1135 * simplify.c (substring_has_constant_len): Use '%wd'
1136 in gfc_error.
1137
1138 2021-08-20 Harald Anlauf <anlauf@gmx.de>
1139
1140 PR fortran/100950
1141 * simplify.c (substring_has_constant_len): Fix format string of
1142 gfc_error, pass HOST_WIDE_INT bounds values via char buffer.
1143
1144 2021-08-20 Tobias Burnus <tobias@codesourcery.com>
1145
1146 * dump-parse-tree.c (show_omp_clauses): Handle 'at', 'severity'
1147 and 'message' clauses.
1148 (show_omp_node, show_code_node): Handle EXEC_OMP_ERROR.
1149 * gfortran.h (gfc_statement): Add ST_OMP_ERROR.
1150 (gfc_omp_severity_type, gfc_omp_at_type): New.
1151 (gfc_omp_clauses): Add 'at', 'severity' and 'message' clause;
1152 use more bitfields + ENUM_BITFIELD.
1153 (gfc_exec_op): Add EXEC_OMP_ERROR.
1154 * match.h (gfc_match_omp_error): New.
1155 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_(AT,SEVERITY,MESSAGE).
1156 (gfc_match_omp_clauses): Handle new clauses.
1157 (OMP_ERROR_CLAUSES, gfc_match_omp_error): New.
1158 (resolve_omp_clauses): Resolve new clauses.
1159 (omp_code_to_statement, gfc_resolve_omp_directive): Handle
1160 EXEC_OMP_ERROR.
1161 * parse.c (decode_omp_directive, next_statement,
1162 gfc_ascii_statement): Handle 'omp error'.
1163 * resolve.c (gfc_resolve_blocks): Likewise.
1164 * st.c (gfc_free_statement): Likewise.
1165 * trans-openmp.c (gfc_trans_omp_error): Likewise.
1166 (gfc_trans_omp_directive): Likewise.
1167 * trans.c (trans_code): Likewise.
1168
1169 2021-08-20 Jakub Jelinek <jakub@redhat.com>
1170
1171 * types.def (BT_FN_VOID_CONST_PTR_SIZE): New DEF_FUNCTION_TYPE_2.
1172 * f95-lang.c (ATTR_COLD_NORETURN_NOTHROW_LEAF_LIST): Define.
1173
1174 2021-08-19 Harald Anlauf <anlauf@gmx.de>
1175
1176 PR fortran/100950
1177 * simplify.c (substring_has_constant_len): New.
1178 (gfc_simplify_len): Handle case of substrings with constant
1179 bounds.
1180
1181 2021-08-18 Tobias Burnus <tobias@codesourcery.com>
1182
1183 * match.h (gfc_match_omp_nothing): New.
1184 * openmp.c (gfc_match_omp_nothing): New.
1185 * parse.c (decode_omp_directive): Match 'nothing' directive.
1186
1187 2021-08-17 Tobias Burnus <tobias@codesourcery.com>
1188
1189 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
1190 EXEC_OMP_SCOPE.
1191 * gfortran.h (enum gfc_statement): Add ST_OMP_(END_)SCOPE.
1192 (enum gfc_exec_op): Add EXEC_OMP_SCOPE.
1193 * match.h (gfc_match_omp_scope): New.
1194 * openmp.c (OMP_SCOPE_CLAUSES): Define
1195 (gfc_match_omp_scope): New.
1196 (gfc_match_omp_cancellation_point, gfc_match_omp_end_nowait):
1197 Improve error diagnostic.
1198 (omp_code_to_statement): Handle ST_OMP_SCOPE.
1199 (gfc_resolve_omp_directive): Handle EXEC_OMP_SCOPE.
1200 * parse.c (decode_omp_directive, next_statement,
1201 gfc_ascii_statement, parse_omp_structured_block,
1202 parse_executable): Handle OpenMP's scope construct.
1203 * resolve.c (gfc_resolve_blocks): Likewise
1204 * st.c (gfc_free_statement): Likewise
1205 * trans-openmp.c (gfc_trans_omp_scope): New.
1206 (gfc_trans_omp_directive): Call it.
1207 * trans.c (trans_code): handle EXEC_OMP_SCOPE.
1208
1209 2021-08-16 Tobias Burnus <tobias@codesourcery.com>
1210
1211 * dump-parse-tree.c (show_omp_clauses): Handle 'filter' clause.
1212 (show_omp_node, show_code_node): Handle (combined) omp masked construct.
1213 * frontend-passes.c (gfc_code_walker): Likewise.
1214 * gfortran.h (enum gfc_statement): Add ST_OMP_*_MASKED*.
1215 (enum gfc_exec_op): Add EXEC_OMP_*_MASKED*.
1216 * match.h (gfc_match_omp_masked, gfc_match_omp_masked_taskloop,
1217 gfc_match_omp_masked_taskloop_simd, gfc_match_omp_parallel_masked,
1218 gfc_match_omp_parallel_masked_taskloop,
1219 gfc_match_omp_parallel_masked_taskloop_simd): New prototypes.
1220 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_FILTER.
1221 (gfc_match_omp_clauses): Match it.
1222 (OMP_MASKED_CLAUSES, gfc_match_omp_parallel_masked,
1223 gfc_match_omp_parallel_masked_taskloop,
1224 gfc_match_omp_parallel_masked_taskloop_simd,
1225 gfc_match_omp_masked, gfc_match_omp_masked_taskloop,
1226 gfc_match_omp_masked_taskloop_simd): New.
1227 (resolve_omp_clauses): Resolve filter clause.
1228 (gfc_resolve_omp_parallel_blocks, resolve_omp_do,
1229 omp_code_to_statement, gfc_resolve_omp_directive): Handle
1230 omp masked constructs.
1231 * parse.c (decode_omp_directive, case_exec_markers,
1232 gfc_ascii_statement, parse_omp_do, parse_omp_structured_block,
1233 parse_executable): Likewise.
1234 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
1235 * st.c (gfc_free_statement): Likewise.
1236 * trans-openmp.c (gfc_trans_omp_clauses): Handle filter clause.
1237 (GFC_OMP_SPLIT_MASKED, GFC_OMP_MASK_MASKED): New enum values.
1238 (gfc_trans_omp_masked): New.
1239 (gfc_split_omp_clauses): Handle combined masked directives.
1240 (gfc_trans_omp_master_taskloop): Rename to ...
1241 (gfc_trans_omp_master_masked_taskloop): ... this; handle also
1242 combined masked directives.
1243 (gfc_trans_omp_parallel_master): Rename to ...
1244 (gfc_trans_omp_parallel_master_masked): ... this; handle
1245 combined masked directives.
1246 (gfc_trans_omp_directive): Handle EXEC_OMP_*_MASKED*.
1247 * trans.c (trans_code): Likewise.
1248
1249 2021-08-15 Harald Anlauf <anlauf@gmx.de>
1250
1251 PR fortran/99351
1252 * match.c (sync_statement): Replace %v code by %e in gfc_match to
1253 allow for function references as STAT and ERRMSG arguments.
1254 * resolve.c (resolve_sync): Adjust checks of STAT= and ERRMSG= to
1255 being definable arguments. Function references with a data
1256 pointer result are accepted.
1257 * trans-stmt.c (gfc_trans_sync): Adjust assertion.
1258
1259 2021-08-12 Tobias Burnus <tobias@codesourcery.com>
1260
1261 * gfortran.h (gfc_omp_proc_bind_kind): Add OMP_PROC_BIND_PRIMARY.
1262 * dump-parse-tree.c (show_omp_clauses): Add TODO comment to
1263 change 'master' to 'primary' in proc_bind for OpenMP 5.1.
1264 * intrinsic.texi (OMP_LIB): Mention OpenMP 5.1; add
1265 omp_proc_bind_primary.
1266 * openmp.c (gfc_match_omp_clauses): Accept
1267 'primary' as alias for 'master'.
1268 * trans-openmp.c (gfc_trans_omp_clauses): Handle
1269 OMP_PROC_BIND_PRIMARY.
1270
1271 2021-08-11 Sandra Loosemore <sandra@codesourcery.com>
1272
1273 * iso-c-binding.def (c_float128, c_float128_complex): Check
1274 float128_type_node instead of gfc_float128_type_node.
1275 * trans-types.c (gfc_init_kinds, gfc_build_real_type):
1276 Update comments re supported 128-bit floating-point types.
1277
1278 2021-08-11 Richard Biener <rguenther@suse.de>
1279
1280 * trans-common.c (create_common): Set TREE_THIS_VOLATILE on the
1281 COMPONENT_REF if the field is volatile.
1282
1283 2021-08-07 Harald Anlauf <anlauf@gmx.de>
1284
1285 PR fortran/68568
1286 * primary.c (gfc_expr_attr): Variable attribute can only be
1287 inquired when symtree is non-NULL.
1288
1289 2021-07-28 Harald Anlauf <anlauf@gmx.de>
1290
1291 PR fortran/101564
1292 * expr.c (gfc_check_vardef_context): Add check for KIND and LEN
1293 parameter inquiries.
1294 * match.c (gfc_match): Fix comment for %v code.
1295 (gfc_match_allocate, gfc_match_deallocate): Replace use of %v code
1296 by %e in gfc_match to allow for function references as STAT and
1297 ERRMSG arguments.
1298 * resolve.c (resolve_allocate_deallocate): Avoid NULL pointer
1299 dereferences and shortcut for bad STAT and ERRMSG argument to
1300 (DE)ALLOCATE. Remove bogus parts of checks for STAT and ERRMSG.
1301
1302 2021-07-26 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1303 Tobias Burnus <tobias@codesourcery.com>
1304
1305 PR fortran/93308
1306 PR fortran/93963
1307 PR fortran/94327
1308 PR fortran/94331
1309 PR fortran/97046
1310 * trans-decl.c (convert_CFI_desc): Only copy out the descriptor
1311 if necessary.
1312 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Updated attribute
1313 handling which reflect a previous intermediate version of the
1314 standard. Only copy out the descriptor if necessary.
1315
1316 2021-07-23 Harald Anlauf <anlauf@gmx.de>
1317
1318 PR fortran/101536
1319 * check.c (array_check): Adjust check for the case of CLASS
1320 arrays.
1321
1322 2021-07-21 Thomas Schwinge <thomas@codesourcery.com>
1323 Joseph Myers <joseph@codesourcery.com>
1324 Cesar Philippidis <cesar@codesourcery.com>
1325
1326 * dump-parse-tree.c (show_attr): Update.
1327 * gfortran.h (symbol_attribute): Add 'oacc_routine_nohost' member.
1328 (gfc_omp_clauses): Add 'nohost' member.
1329 * module.c (ab_attribute): Add 'AB_OACC_ROUTINE_NOHOST'.
1330 (attr_bits, mio_symbol_attribute): Update.
1331 * openmp.c (omp_mask2): Add 'OMP_CLAUSE_NOHOST'.
1332 (gfc_match_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'.
1333 (OACC_ROUTINE_CLAUSES): Add 'OMP_CLAUSE_NOHOST'.
1334 (gfc_match_oacc_routine): Update.
1335 * trans-decl.c (add_attributes_to_decl): Update.
1336 * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
1337
1338 2021-07-21 Harald Anlauf <anlauf@gmx.de>
1339
1340 PR fortran/101514
1341 * target-memory.c (gfc_interpret_derived): Size of array component
1342 of derived type can only be computed here for explicit shape.
1343 * trans-types.c (gfc_get_nodesc_array_type): Do not dereference
1344 NULL pointers.
1345
1346 2021-07-21 Tobias Burnus <tobias@codesourcery.com>
1347
1348 * decl.c (gfc_verify_c_interop_param): Update for F2008 + F2018
1349 changes; reject unsupported bits with 'Error: Sorry,'.
1350 * trans-expr.c (gfc_conv_procedure_call): Fix condition to
1351 For using CFI descriptor with characters.
1352
1353 2021-07-18 Harald Anlauf <anlauf@gmx.de>
1354
1355 PR fortran/101084
1356 * io.c (resolve_tag_format): Extend FORMAT check to unknown type.
1357
1358 2021-07-14 Harald Anlauf <anlauf@gmx.de>
1359
1360 PR fortran/100949
1361 * trans-expr.c (gfc_trans_class_init_assign): Call
1362 gfc_conv_expr_present only for dummy variables.
1363
1364 2021-07-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1365
1366 PR fortran/100227
1367 * frontend-passes.c (traverse_io_block): Adjust test for
1368 when a variable is eligible for the transformation to
1369 array slice.
1370
1371 2021-06-28 Martin Sebor <msebor@redhat.com>
1372
1373 * trans-array.c (trans_array_constructor): Replace direct uses
1374 of TREE_NO_WARNING with warning_suppressed_p, and suppress_warning.
1375 * trans-decl.c (gfc_build_qualified_array): Same.
1376 (gfc_build_dummy_array_decl): Same.
1377 (generate_local_decl): Same.
1378 (gfc_generate_function_code): Same.
1379 * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
1380 (gfc_omp_clause_copy_ctor): Same.
1381 * trans-types.c (get_dtype_type_node): Same.
1382 (gfc_get_desc_dim_type): Same.
1383 (gfc_get_array_descriptor_base): Same.
1384 (gfc_get_caf_vector_type): Same.
1385 (gfc_get_caf_reference_type): Same.
1386 * trans.c (gfc_create_var_np): Same.
1387
1388 2021-06-23 Tobias Burnus <tobias@codesourcery.com>
1389
1390 * dump-parse-tree.c (show_omp_clauses): Fix enum type used
1391 for dumping gfc_omp_defaultmap_category.
1392
1393 2021-06-23 Andre Vehreschild <vehre@gcc.gnu.org>
1394
1395 PR fortran/100337
1396 * trans-intrinsic.c (conv_co_collective): Check stat for null ptr
1397 before dereferrencing.
1398
1399 2021-06-18 Harald Anlauf <anlauf@gmx.de>
1400
1401 PR fortran/100283
1402 PR fortran/101123
1403 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Unconditionally
1404 convert result of min/max to result type.
1405
1406 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1407
1408 PR fortran/95501
1409 PR fortran/95502
1410 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1411 dereference.
1412 * match.c (gfc_match_pointer_assignment): Likewise.
1413 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1414 symtree.
1415
1416 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1417
1418 Revert:
1419 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1420
1421 PR fortran/95501
1422 PR fortran/95502
1423 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1424 dereference.
1425 * match.c (gfc_match_pointer_assignment): Likewise.
1426 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1427 symtree.
1428
1429 2021-06-16 Harald Anlauf <anlauf@gmx.de>
1430
1431 PR fortran/95501
1432 PR fortran/95502
1433 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer
1434 dereference.
1435 * match.c (gfc_match_pointer_assignment): Likewise.
1436 * parse.c (gfc_check_do_variable): Avoid comparison with NULL
1437 symtree.
1438
1439 2021-06-15 Tobias Burnus <tobias@codesourcery.com>
1440
1441 PR fortran/92568
1442 * dump-parse-tree.c (show_omp_clauses): Update for defaultmap.
1443 * f95-lang.c (LANG_HOOKS_OMP_ALLOCATABLE_P,
1444 LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
1445 * gfortran.h (enum gfc_omp_defaultmap,
1446 enum gfc_omp_defaultmap_category): New.
1447 * openmp.c (gfc_match_omp_clauses): Update defaultmap matching.
1448 * trans-decl.c (gfc_finish_decl_attrs): Set GFC_DECL_SCALAR_TARGET.
1449 * trans-openmp.c (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New.
1450 (gfc_omp_scalar_p): Take 'ptr_alloc_ok' argument.
1451 (gfc_trans_omp_clauses, gfc_split_omp_clauses): Update for
1452 defaultmap changes.
1453 * trans.h (gfc_omp_scalar_p): Update prototype.
1454 (gfc_omp_allocatable_p, gfc_omp_scalar_target_p): New.
1455 (struct lang_decl): Add scalar_target.
1456 (GFC_DECL_SCALAR_TARGET, GFC_DECL_GET_SCALAR_TARGET): New.
1457
1458 2021-06-14 Tobias Burnus <tobias@codesourcery.com>
1459
1460 * resolve.c (resolve_variable): Remove *XCNEW used to
1461 nullify nullified memory.
1462
1463 2021-06-09 Martin Liska <mliska@suse.cz>
1464
1465 * intrinsic.texi: Add missing @headitem to tables with a header.
1466
1467 2021-06-09 Jakub Jelinek <jakub@redhat.com>
1468
1469 PR fortran/100965
1470 * trans-openmp.c (gfc_omp_finish_clause): Gimplify OMP_CLAUSE_SIZE.
1471
1472 2021-06-08 Tobias Burnus <tobias@codesourcery.com>
1473
1474 PR middle-end/99928
1475 * trans-openmp.c (gfc_add_clause_implicitly): New.
1476 (gfc_split_omp_clauses): Use it.
1477 (gfc_free_split_omp_clauses): New.
1478 (gfc_trans_omp_do_simd, gfc_trans_omp_parallel_do,
1479 gfc_trans_omp_parallel_do_simd, gfc_trans_omp_distribute,
1480 gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_taskloop,
1481 gfc_trans_omp_master_taskloop, gfc_trans_omp_parallel_master): Use it.
1482
1483 2021-06-08 Martin Liska <mliska@suse.cz>
1484
1485 * intrinsic.texi: Fix typo.
1486 * trans-expr.c (gfc_trans_pointer_assignment): Likewise.
1487
1488 2021-06-05 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1489
1490 PR fortran/100120
1491 PR fortran/100816
1492 PR fortran/100818
1493 PR fortran/100819
1494 PR fortran/100821
1495 * trans-array.c (gfc_get_array_span): rework the way character
1496 array "span" was calculated.
1497 (gfc_conv_expr_descriptor): improve handling of character sections
1498 and unlimited polymorphic objects.
1499 * trans-expr.c (gfc_get_character_len): new function to calculate
1500 character string length.
1501 (gfc_get_character_len_in_bytes): new function to calculate
1502 character string length in bytes.
1503 (gfc_conv_scalar_to_descriptor): add call to set the "span".
1504 (gfc_trans_pointer_assignment): set "_len" and antecipate the
1505 initialization of the deferred character length hidden argument.
1506 * trans-intrinsic.c (gfc_conv_associated): set "force_no_tmp" to
1507 avoid the creation of a temporary.
1508 * trans-types.c (gfc_get_dtype_rank_type): rework type detection
1509 so that unlimited polymorphic objects get proper type infomation,
1510 also important for bind(c).
1511 (gfc_get_dtype): add argument to pass the rank if necessary.
1512 (gfc_get_array_type_bounds): cosmetic change to have character
1513 arrays called character instead of unknown.
1514 * trans-types.h (gfc_get_dtype): modify prototype.
1515 * trans.c (get_array_span): rework the way character array "span"
1516 was calculated.
1517 * trans.h (gfc_get_character_len): new prototype.
1518 (gfc_get_character_len_in_bytes): new prototype.
1519 Add "unlimited_polymorphic" flag to "gfc_se" type to signal when
1520 expression carries an unlimited polymorphic object.
1521
1522 2021-06-04 Harald Anlauf <anlauf@gmx.de>
1523
1524 PR fortran/99839
1525 * frontend-passes.c (inline_matmul_assign): Do not inline matmul
1526 if the assignment to the resulting array if it is not of canonical
1527 type (real/integer/complex/logical).
1528
1529 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1530
1531 * dump-parse-tree.c (show_code_node): Handle
1532 EXEC_OMP_(TARGET_)(,PARALLEL_,TEAMS_)LOOP.
1533
1534 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1535
1536 * scanner.c (skip_fixed_omp_sentinel): Set openacc_flag if
1537 this is not an (OpenMP) continuation line.
1538 (skip_fixed_oacc_sentinel): Likewise for openmp_flag and OpenACC.
1539 (gfc_next_char_literal): gfc_error_now to force error for mixed OMP/ACC
1540 continuation once per location and return '\n'.
1541
1542 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1543
1544 PR middle-end/99928
1545 * openmp.c (gfc_match_omp_clauses): Fix typo in error message.
1546
1547 2021-06-04 Tobias Burnus <tobias@codesourcery.com>
1548
1549 PR middle-end/99928
1550 * dump-parse-tree.c (show_omp_clauses): Handle bind clause.
1551 (show_omp_node): Handle loop directive.
1552 * frontend-passes.c (gfc_code_walker): Likewise.
1553 * gfortran.h (enum gfc_statement): Add
1554 ST_OMP_(END_)(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
1555 (enum gfc_omp_bind_type): New.
1556 (gfc_omp_clauses): Use it.
1557 (enum gfc_exec_op): Add EXEC_OMP_(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
1558 * match.h (gfc_match_omp_loop, gfc_match_omp_parallel_loop,
1559 gfc_match_omp_target_parallel_loop, gfc_match_omp_target_teams_loop,
1560 gfc_match_omp_teams_loop): New.
1561 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_BIND.
1562 (gfc_match_omp_clauses): Handle it.
1563 (OMP_LOOP_CLAUSES, gfc_match_omp_loop, gfc_match_omp_teams_loop,
1564 gfc_match_omp_target_teams_loop, gfc_match_omp_parallel_loop,
1565 gfc_match_omp_target_parallel_loop): New.
1566 (resolve_omp_clauses, resolve_omp_do, omp_code_to_statement,
1567 gfc_resolve_omp_directive): Handle omp loop.
1568 * parse.c (decode_omp_directive case_exec_markers, gfc_ascii_statement,
1569 parse_omp_do, parse_executable): Likewise.
1570 (parse_omp_structured_block): Remove ST_ which use parse_omp_do.
1571 * resolve.c (gfc_resolve_blocks): Add omp loop.
1572 * st.c (gfc_free_statement): Likewise.
1573 * trans-openmp.c (gfc_trans_omp_clauses): Handle bind clause.
1574 (gfc_trans_omp_do, gfc_trans_omp_parallel_do, gfc_trans_omp_distribute,
1575 gfc_trans_omp_teams, gfc_trans_omp_target, gfc_trans_omp_directive):
1576 Handle loop directive.
1577 (gfc_split_omp_clauses): Likewise; fix firstprivate/lastprivate
1578 and (in_)reduction for taskloop.
1579 * trans.c (trans_code): Handle omp loop directive.
1580
1581 2021-06-01 Tobias Burnus <tobias@codesourcery.com>
1582
1583 PR middle-end/99928
1584 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
1585 (parallel) master taskloop (simd).
1586 * frontend-passes.c (gfc_code_walker): Set in_omp_workshare
1587 to false for parallel master taskloop (simd).
1588 * gfortran.h (enum gfc_statement):
1589 Add ST_OMP_(END_)(PARALLEL_)MASTER_TASKLOOP(_SIMD).
1590 (enum gfc_exec_op): EXEC_OMP_(PARALLEL_)MASTER_TASKLOOP(_SIMD).
1591 * match.h (gfc_match_omp_master_taskloop,
1592 gfc_match_omp_master_taskloop_simd,
1593 gfc_match_omp_parallel_master_taskloop,
1594 gfc_match_omp_parallel_master_taskloop_simd): New prototype.
1595 * openmp.c (gfc_match_omp_parallel_master_taskloop,
1596 gfc_match_omp_parallel_master_taskloop_simd,
1597 gfc_match_omp_master_taskloop,
1598 gfc_match_omp_master_taskloop_simd): New.
1599 (gfc_match_omp_taskloop_simd): Permit 'reduction' clause.
1600 (resolve_omp_clauses): Handle new combined directives; remove
1601 inscan-reduction check to reduce multiple errors; add
1602 task-reduction error for 'taskloop simd'.
1603 (gfc_resolve_omp_parallel_blocks,
1604 resolve_omp_do, omp_code_to_statement,
1605 gfc_resolve_omp_directive): Handle new combined constructs.
1606 * parse.c (decode_omp_directive, next_statement,
1607 gfc_ascii_statement, parse_omp_do, parse_omp_structured_block,
1608 parse_executable): Likewise.
1609 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
1610 * st.c (gfc_free_statement): Likewise.
1611 * trans.c (trans_code): Likewise.
1612 * trans-openmp.c (gfc_split_omp_clauses,
1613 gfc_trans_omp_directive): Likewise.
1614 (gfc_trans_omp_parallel_master): Move after gfc_trans_omp_master_taskloop;
1615 handle parallel master taskloop (simd) as well.
1616 (gfc_trans_omp_taskloop): Take gfc_exec_op as arg.
1617 (gfc_trans_omp_master_taskloop): New.
1618
1619 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
1620
1621 * gfortran.texi (BOZ literal constants): Fix typo.
1622
1623 2021-05-28 Tobias Burnus <tobias@codesourcery.com>
1624
1625 * dump-parse-tree.c (show_iterator): New.
1626 (show_omp_namelist): Handle iterators.
1627 (show_omp_clauses): Handle affinity.
1628 * gfortran.h (gfc_free_omp_namelist): New union with 'udr' and new 'ns'.
1629 * match.c (gfc_free_omp_namelist): Add are to choose union element.
1630 * openmp.c (gfc_free_omp_clauses, gfc_match_omp_detach,
1631 gfc_match_omp_clause_reduction, gfc_match_omp_flush): Update
1632 call to gfc_free_omp_namelist.
1633 (gfc_match_omp_variable_list): Likewise; permit preceeding whitespace.
1634 (enum omp_mask1): Add OMP_CLAUSE_AFFINITY.
1635 (gfc_match_iterator): New.
1636 (gfc_match_omp_clauses): Use it; update call to gfc_free_omp_namelist.
1637 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_AFFINITY.
1638 (gfc_match_omp_taskwait): Match depend clause.
1639 (resolve_omp_clauses): Handle affinity; update for udr/union change.
1640 (gfc_resolve_omp_directive): Resolve clauses of taskwait.
1641 * st.c (gfc_free_statement): Update gfc_free_omp_namelist call.
1642 * trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Likewise
1643 (handle_iterator): New.
1644 (gfc_trans_omp_clauses): Handle iterators for depend/affinity clause.
1645 (gfc_trans_omp_taskwait): Handle depend clause.
1646 (gfc_trans_omp_directive): Update call.
1647
1648 2021-05-27 Harald Anlauf <anlauf@gmx.de>
1649
1650 PR fortran/100602
1651 * trans-intrinsic.c (gfc_conv_intrinsic_size): Use CLASS data
1652 attributes for CLASS arrays for generation of runtime error.
1653
1654 2021-05-27 Harald Anlauf <anlauf@gmx.de>
1655
1656 PR fortran/100656
1657 * trans-array.c (gfc_conv_ss_startstride): Do not call check for
1658 presence of a dummy argument when a symbol actually refers to a
1659 non-dummy.
1660
1661 2021-05-25 Tobias Burnus <tobias@codesourcery.com>
1662 Johannes Nendwich <a08727063@unet.univie.ac.at>
1663
1664 * intrinsic.texi (GERROR, GETARGS, GETLOG, NORM2, PARITY, RANDOM_INIT,
1665 RANDOM_NUMBER): Fix typos and copy'n'paste errors.
1666
1667 2021-05-24 Tobias Burnus <tobias@codesourcery.com>
1668
1669 PR fortran/86470
1670 * trans-expr.c (gfc_copy_class_to_class): Add unshare_expr.
1671 * trans-openmp.c (gfc_is_polymorphic_nonptr,
1672 gfc_is_unlimited_polymorphic_nonptr): New.
1673 (gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor): Handle
1674 polymorphic scalars.
1675
1676 2021-05-23 Harald Anlauf <anlauf@gmx.de>
1677
1678 PR fortran/100551
1679 * trans-expr.c (gfc_conv_procedure_call): Adjust check for
1680 implicit conversion of actual argument to an unlimited polymorphic
1681 procedure argument.
1682
1683 2021-05-23 Tobias Burnus <tobias@codesourcery.com>
1684
1685 * intrinsic.texi (ATOMIC_ADD, ATOMIC_FETCH_ADD): Use the
1686 proper variable name in the description.
1687
1688 2021-05-22 Andre Vehreschild <vehre@gcc.gnu.org>
1689 Steve Kargl <kargl@gcc.gnu.org>
1690
1691 PR fortran/98301
1692 * trans-decl.c (gfc_build_builtin_function_decls): Move decl.
1693 * trans-intrinsic.c (conv_intrinsic_random_init): Use bool for
1694 lib-call of caf_random_init instead of logical (4-byte).
1695 * trans.h: Add tree var for random_init.
1696
1697 2021-05-20 Marcel Vollweiler <marcel@codesourcery.com>
1698
1699 * openmp.c (gfc_match_omp_clauses): Support map-type-modifier 'close'.
1700
1701 2021-05-18 Tobias Burnus <tobias@codesourcery.com>
1702
1703 PR fortran/100642
1704 * openmp.c (omp_code_to_statement): Add missing EXEC_OMP_DEPOBJ.
1705
1706 2021-05-17 Harald Anlauf <anlauf@gmx.de>
1707
1708 PR fortran/98411
1709 * trans-decl.c (gfc_finish_var_decl): Add check for explicit SAVE
1710 attribute.
1711
1712 2021-05-17 Tobias Burnus <tobias@codesourcery.com>
1713
1714 PR fortran/100633
1715 * resolve.c (gfc_resolve_code): Reject nonintrinsic assignments in
1716 OMP WORKSHARE.
1717
1718 2021-05-14 Tobias Burnus <tobias@codesourcery.com>
1719
1720 * dump-parse-tree.c (show_omp_node, show_code_node): Handle
1721 EXEC_OMP_PARALLEL_MASTER.
1722 * frontend-passes.c (gfc_code_walker): Likewise.
1723 * gfortran.h (enum gfc_statement): Add ST_OMP_PARALLEL_MASTER and
1724 ST_OMP_END_PARALLEL_MASTER.
1725 (enum gfc_exec_op): Add EXEC_OMP_PARALLEL_MASTER..
1726 * match.h (gfc_match_omp_parallel_master): Handle it.
1727 * openmp.c (gfc_match_omp_parallel_master, resolve_omp_clauses,
1728 omp_code_to_statement, gfc_resolve_omp_directive): Likewise.
1729 * parse.c (decode_omp_directive, case_exec_markers,
1730 gfc_ascii_statement, parse_omp_structured_block,
1731 parse_executable): Likewise.
1732 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
1733 * st.c (gfc_free_statement): Likewise.
1734 * trans-openmp.c (gfc_trans_omp_parallel_master,
1735 gfc_trans_omp_workshare, gfc_trans_omp_directive): Likewise.
1736 * trans.c (trans_code): Likewise.
1737
1738 2021-05-14 Tobias Burnus <tobias@codesourcery.com>
1739
1740 * resolve.c (resolve_symbol): Handle implicit SAVE of main-program
1741 for vars in 'omp threadprivate' and 'omp declare target'.
1742
1743 2021-05-10 Martin Liska <mliska@suse.cz>
1744
1745 * decl.c (variable_decl): Use startswith
1746 function instead of strncmp.
1747 (gfc_match_end): Likewise.
1748 * gfortran.h (gfc_str_startswith): Likewise.
1749 * module.c (load_omp_udrs): Likewise.
1750 (read_module): Likewise.
1751 * options.c (gfc_handle_runtime_check_option): Likewise.
1752 * primary.c (match_arg_list_function): Likewise.
1753 * trans-decl.c (gfc_get_symbol_decl): Likewise.
1754 * trans-expr.c (gfc_conv_procedure_call): Likewise.
1755 * trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Likewise.
1756
1757 2021-05-06 Paul Thomas <pault@gcc.gnu.org>
1758
1759 PR fortran/46991
1760 PR fortran/99819
1761 * class.c (gfc_build_class_symbol): Remove the error that
1762 disables assumed size class arrays. Class array types that are
1763 not deferred shape or assumed rank are given a unique name and
1764 placed in the procedure namespace.
1765 * trans-array.c (gfc_trans_g77_array): Obtain the data pointer
1766 for class arrays.
1767 (gfc_trans_dummy_array_bias): Suppress the runtime error for
1768 extent violations in explicit shape class arrays because it
1769 always fails.
1770 * trans-expr.c (gfc_conv_procedure_call): Handle assumed size
1771 class actual arguments passed to non-descriptor formal args by
1772 using the data pointer, stored as the symbol's backend decl.
1773
1774 2021-05-05 Harald Anlauf <anlauf@gmx.de>
1775
1776 PR fortran/100274
1777 * interface.c (gfc_compare_actual_formal): Continue checks after
1778 emitting warning for argument length mismatch.
1779 * trans-expr.c (gfc_conv_procedure_call): Check for NULL pointer
1780 dereference.
1781
1782 2021-05-04 Tobias Burnus <tobias@codesourcery.com>
1783
1784 PR testsuite/100397
1785 * trans-openmp.c (gfc_trans_omp_depobj): Fix pasto in enum values.
1786
1787 2021-04-28 Tobias Burnus <tobias@codesourcery.com>
1788
1789 * openmp.c (gfc_match_omp_variable_list): Gobble whitespace before
1790 checking whether a '%' or parenthesis-open follows as next character.
1791
1792 2021-04-28 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1793
1794 PR fortran/82376
1795 * trans-expr.c (gfc_conv_procedure_call): Evaluate function result
1796 and then pass a pointer.
1797
1798 2021-04-26 Thomas Schwinge <thomas@codesourcery.com>
1799 Nathan Sidwell <nathan@codesourcery.com>
1800 Tom de Vries <vries@codesourcery.com>
1801 Julian Brown <julian@codesourcery.com>
1802 Kwok Cheung Yeung <kcy@codesourcery.com>
1803
1804 * lang.opt (Wopenacc-parallelism): New.
1805
1806 2021-04-24 Harald Anlauf <anlauf@gmx.de>
1807
1808 PR fortran/100154
1809 * check.c (variable_check): Allow function reference having a data
1810 pointer result.
1811 (arg_strlen_is_zero): New function.
1812 (gfc_check_fgetputc_sub): Add static check of character and status
1813 arguments.
1814 (gfc_check_fgetput_sub): Likewise.
1815 * intrinsic.c (add_subroutines): Fix argument name for the
1816 character argument to intrinsic subroutines fget[c], fput[c].
1817
1818 2021-04-24 Harald Anlauf <anlauf@gmx.de>
1819
1820 PR fortran/100218
1821 * expr.c (gfc_check_vardef_context): Extend check to allow pointer
1822 from a function reference.
1823
1824 2021-04-22 Martin Liska <mliska@suse.cz>
1825
1826 PR testsuite/100159
1827 PR testsuite/100192
1828 * frontend-passes.c (optimize_expr): Fix typos and missing comments.
1829
1830 2021-04-22 Michael Meissner <meissner@linux.ibm.com>
1831
1832 PR fortran/96983
1833 * trans-intrinsic.c (build_round_expr): If int type is larger than
1834 long long, do the round and convert to the integer type. Do not
1835 try to find a floating point type the exact size of the integer
1836 type.
1837
1838 2021-04-21 Tobias Burnus <tobias@codesourcery.com>
1839
1840 * dump-parse-tree.c (show_omp_namelist): Handle depobj + mutexinoutset
1841 in the depend clause.
1842 (show_omp_clauses, show_omp_node, show_code_node): Handle depobj.
1843 * gfortran.h (enum gfc_statement): Add ST_OMP_DEPOBJ.
1844 (enum gfc_omp_depend_op): Add OMP_DEPEND_UNSET,
1845 OMP_DEPEND_MUTEXINOUTSET and OMP_DEPEND_DEPOBJ.
1846 (gfc_omp_clauses): Add destroy, depobj_update and depobj.
1847 (enum gfc_exec_op): Add EXEC_OMP_DEPOBJ
1848 * match.h (gfc_match_omp_depobj): Match 'omp depobj'.
1849 * openmp.c (gfc_match_omp_clauses): Add depobj + mutexinoutset
1850 to depend clause.
1851 (gfc_match_omp_depobj, resolve_omp_clauses, gfc_resolve_omp_directive):
1852 Handle 'omp depobj'.
1853 * parse.c (decode_omp_directive, next_statement, gfc_ascii_statement):
1854 Likewise.
1855 * resolve.c (gfc_resolve_code): Likewise.
1856 * st.c (gfc_free_statement): Likewise.
1857 * trans-openmp.c (gfc_trans_omp_clauses): Handle depobj + mutexinoutset
1858 in the depend clause.
1859 (gfc_trans_omp_depobj, gfc_trans_omp_directive): Handle EXEC_OMP_DEPOBJ.
1860 * trans.c (trans_code): Likewise.
1861
1862 2021-04-20 Paul Thomas <pault@gcc.gnu.org>
1863
1864 PR fortran/100110
1865 * trans-decl.c (gfc_get_symbol_decl): Replace test for host
1866 association with a check that the current and symbol namespaces
1867 are the same.
1868
1869 2021-04-19 Thomas Schwinge <thomas@codesourcery.com>
1870
1871 * lang.opt (fopenacc-kernels=): Remove.
1872
1873 2021-04-16 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1874
1875 PR fortran/100094
1876 * trans-array.c (gfc_trans_deferred_array): Add code to initialize
1877 pointers and allocatables with correct TKR parameters.
1878
1879 2021-04-16 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1880
1881 PR fortran/100018
1882 * resolve.c: Add association check before de-referencing pointer.
1883
1884 2021-04-16 Harald Anlauf <anlauf@gmx.de>
1885 Paul Thomas <pault@gcc.gnu.org>
1886
1887 PR fortran/63797
1888 * module.c (write_symtree): Do not write interface of intrinsic
1889 procedure to module file for F2003 and newer.
1890
1891 2021-04-15 Paul Thomas <pault@gcc.gnu.org>
1892
1893 PR fortran/99307
1894 * symbol.c: Remove trailing white space.
1895 * trans-array.c (gfc_trans_create_temp_array): Create a class
1896 temporary for class expressions and assign the new descriptor
1897 to the data field.
1898 (build_class_array_ref): If the class expr can be extracted,
1899 then use that for 'decl'. Class function results are reliably
1900 handled this way. Call gfc_find_and_cut_at_last_class_ref to
1901 eliminate largely redundant code. Remove dead code and recast
1902 the rest of the code to extract 'decl' for remaining cases.
1903 Call gfc_build_spanned_array_ref.
1904 (gfc_alloc_allocatable_for_assignment): Use class descriptor
1905 element length for 'elemsize1'. Eliminate repeat set of dtype
1906 for class expressions.
1907 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Include
1908 additional code from build_class_array_ref, and use optional
1909 gfc_typespec pointer argument.
1910 (gfc_trans_scalar_assign): Make use of pre and post blocks for
1911 all class expressions.
1912 * trans.c (get_array_span): For unlimited polymorphic exprs
1913 multiply the span by the value of the _len field.
1914 (gfc_build_spanned_array_ref): New function.
1915 (gfc_build_array_ref): Call gfc_build_spanned_array_ref and
1916 eliminate repeated code.
1917 * trans.h: Add arg to gfc_find_and_cut_at_last_class_ref and
1918 add prototype for gfc_build_spanned_array_ref.
1919
1920 2021-04-14 Martin Liska <mliska@suse.cz>
1921
1922 * intrinsic.texi: The table has first column empty and it makes
1923 trouble when processing makeinfo --xml output.
1924
1925 2021-04-09 Tobias Burnus <tobias@codesourcery.com>
1926
1927 PR fortran/99817
1928 * trans-types.c (gfc_get_function_type): Also generate hidden
1929 coarray argument for character arguments.
1930
1931 2021-04-03 Paul Thomas <pault@gcc.gnu.org>
1932
1933 PR fortran/99818
1934 * interface.c (compare_parameter): The codimension attribute is
1935 applied to the _data field of class formal arguments.
1936
1937 2021-04-01 Harald Anlauf <anlauf@gmx.de>
1938
1939 PR fortran/99840
1940 * simplify.c (gfc_simplify_transpose): Properly initialize
1941 resulting shape.
1942
1943 2021-03-28 Paul Thomas <pault@gcc.gnu.org>
1944
1945 PR fortran/99602
1946 * trans-expr.c (gfc_conv_procedure_call): Use the _data attrs
1947 for class expressions and detect proc pointer evaluations by
1948 the non-null actual argument list.
1949
1950 2021-03-27 Steve Kargl <kargl@gcc.gnu.org>
1951
1952 * misc.c (gfc_typename): Fix off-by-one in buffer sizes.
1953
1954 2021-03-26 Tobias Burnus <tobias@codesourcery.com>
1955
1956 PR fortran/99651
1957 * intrinsic.c (gfc_intrinsic_func_interface): Set
1958 attr.proc = PROC_INTRINSIC if FL_PROCEDURE.
1959
1960 2021-03-24 Tobias Burnus <tobias@codesourcery.com>
1961
1962 PR fortran/99369
1963 * resolve.c (resolve_operator): Make 'msg' buffer larger
1964 and use snprintf.
1965
1966 2021-03-23 Tobias Burnus <tobias@codesourcery.com>
1967
1968 PR fortran/93660
1969 * trans-decl.c (build_function_decl): Add comment;
1970 increment hidden_typelist for caf_token/caf_offset.
1971 * trans-types.c (gfc_get_function_type): Add comment;
1972 add missing caf_token/caf_offset args.
1973
1974 2021-03-22 Tobias Burnus <tobias@codesourcery.com>
1975
1976 PR fortran/99688
1977 * match.c (select_type_set_tmp, gfc_match_select_type,
1978 gfc_match_select_rank): Fix 'name' buffersize to avoid out of bounds.
1979 * resolve.c (resolve_select_type): Likewise.
1980
1981 2021-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1982
1983 * frontend-passes.c (inline_limit_check): Add rank_a
1984 argument. If a is rank 1, set the second dimension to 1.
1985 (inline_matmul_assign): Pass rank_a argument to inline_limit_check.
1986 (call_external_blas): Likewise.
1987
1988 2021-03-15 Thomas Koenig <tkoenig@gcc.gnu.org>
1989
1990 PR fortran/99345
1991 * frontend-passes.c (doloop_contained_procedure_code):
1992 Properly handle EXEC_IOLENGTH.
1993
1994 2021-03-15 Paul Thomas <pault@gcc.gnu.org>
1995
1996 PR fortran/99545
1997 * trans-stmt.c (gfc_trans_allocate): Mark the initialization
1998 assignment by setting init_flag.
1999
2000 2021-03-14 Harald Anlauf <anlauf@gmx.de>
2001 Paul Thomas <pault@gcc.gnu.org>
2002
2003 * trans-expr.c (gfc_conv_procedure_call): Fix runtime checks for
2004 CLASS arguments.
2005 * trans-intrinsic.c (gfc_conv_intrinsic_size): Likewise.
2006
2007 2021-03-13 Paul Thomas <pault@gcc.gnu.org>
2008
2009 PR fortran/99125
2010 * trans-array.c (gfc_conv_expr_descriptor): For deferred length
2011 length components use the ss_info string length instead of
2012 gfc_get_expr_charlen. Make sure that the deferred string length
2013 is a variable before assigning to it. Otherwise use the expr.
2014 * trans-expr.c (gfc_conv_string_length): Make sure that the
2015 deferred string length is a variable before assigning to it.
2016
2017 2021-03-12 Tobias Burnus <tobias@codesourcery.com>
2018
2019 PR fortran/99514
2020 * resolve.c (resolve_symbol): Accept vars which are in DATA
2021 and hence (either) implicit SAVE (or in common).
2022
2023 2021-03-10 Harald Anlauf <anlauf@gmx.de>
2024
2025 PR fortran/99205
2026 * data.c (gfc_assign_data_value): Reject non-constant character
2027 length for lvalue.
2028 * trans-array.c (gfc_conv_array_initializer): Restrict loop to
2029 elements which are defined to avoid NULL pointer dereference.
2030
2031 2021-03-10 Tobias Burnus <tobias@codesourcery.com>
2032
2033 * intrinsic.texi (MIN): Correct 'maximum' to 'minimum'.
2034
2035 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
2036
2037 PR fortran/96983
2038 * trans-intrinsic.c (build_round_expr): Do not implicitly assume
2039 that __float128 is the 128-bit floating-point type.
2040
2041 2021-03-08 Harald Anlauf <anlauf@gmx.de>
2042
2043 PR fortran/49278
2044 * data.c (gfc_assign_data_value): Reject variable with PARAMETER
2045 attribute in DATA statement.
2046
2047 2021-03-05 Tobias Burnus <tobias@codesourcery.com>
2048
2049 PR fortran/99355
2050 PR fortran/57871
2051 * invoke.texi (-freal{4,8}-real-*): Extend description.
2052 * primary.c (match_real_constant): Also promote real literals
2053 with '_kind' number.
2054
2055 2021-03-04 Tobias Burnus <tobias@codesourcery.com>
2056
2057 PR fortran/99355
2058 * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Avoid
2059 redoing kind conversions.
2060 * primary.c (match_real_constant): Likewise.
2061
2062 2021-02-28 Jakub Jelinek <jakub@redhat.com>
2063
2064 PR fortran/99303
2065 * openmp.c (gfc_omp_requires_add_clause): Fix up diagnostic message
2066 wordings.
2067 (resolve_omp_clauses): Likewise.
2068
2069 2021-02-28 Jakub Jelinek <jakub@redhat.com>
2070
2071 PR fortran/99300
2072 * frontend-passes.c (doloop_code): Replace double space in diagnostics
2073 with a single space.
2074
2075 2021-02-24 Paul Thomas <pault@gcc.gnu.org>
2076
2077 PR fortran/98342
2078 * trans-expr.c (gfc_conv_derived_to_class): Add optional arg.
2079 'derived_array' to hold the fixed, parmse expr in the case of
2080 assumed rank formal arguments. Deal with optional arguments.
2081 (gfc_conv_procedure_call): Null 'derived' array for each actual
2082 argument. Add its address to the call to gfc_conv_derived_to_
2083 class. Access the 'data' field of scalar descriptors before
2084 deallocating allocatable components. Also strip NOPs before the
2085 calls to gfc_deallocate_alloc_comp. Use 'derived' array as the
2086 input to gfc_deallocate_alloc_comp if it is available.
2087 * trans.h : Include the optional argument 'derived_array' to
2088 the prototype of gfc_conv_derived_to_class. The default value
2089 is NULL_TREE.
2090
2091 2021-02-23 Paul Thomas <pault@gcc.gnu.org>
2092
2093 PR fortran/99124
2094 * resolve.c (resolve_fl_procedure): Include class results in
2095 the test for F2018, C15100.
2096 * trans-array.c (get_class_info_from_ss): Do not use the saved
2097 descriptor to obtain the class expression for variables. Use
2098 gfc_get_class_from_expr instead.
2099
2100 2021-02-23 Harald Anlauf <anlauf@gmx.de>
2101
2102 PR fortran/99206
2103 * simplify.c (gfc_simplify_reshape): Set string length for
2104 character arguments.
2105
2106 2021-02-22 Tobias Burnus <tobias@codesourcery.com>
2107
2108 PR fortran/99171
2109 * trans-openmp.c (gfc_omp_is_optional_argument): Regard optional
2110 dummy procs as nonoptional as no special treatment is needed.
2111
2112 2021-02-21 Harald Anlauf <anlauf@gmx.de>
2113
2114 * trans-expr.c (gfc_conv_procedure_call): Do not add clobber to
2115 allocatable intent(out) argument.
2116
2117 2021-02-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2118
2119 PR fortran/98686
2120 * match.c (gfc_match_namelist): If BT_UNKNOWN, check for
2121 IMPLICIT NONE and and issue an error, otherwise set the type
2122 to its IMPLICIT type so that any subsequent use of objects will
2123 will confirm their types.
2124
2125 2021-02-19 Harald Anlauf <anlauf@gmx.de>
2126
2127 * symbol.c (gfc_add_flavor): Reverse order of conditions.
2128
2129 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
2130
2131 PR fortran/99010
2132 * dependency.c (gfc_dep_resolver): Fix coarray handling.
2133
2134 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
2135
2136 PR fortran/99146
2137 * interface.c:
2138
2139 2021-02-19 Tobias Burnus <tobias@codesourcery.com>
2140
2141 PR fortran/99027
2142 * simplify.c (simplify_bound_dim): Honor DIMEN_ELEMENT
2143 when using dim=.
2144
2145 2021-02-17 Julian Brown <julian@codesourcery.com>
2146
2147 * openmp.c (resolve_omp_clauses): Disallow selecting components
2148 of arrays of derived type.
2149
2150 2021-02-17 Julian Brown <julian@codesourcery.com>
2151
2152 * trans-openmp.c (gfc_trans_omp_clauses): Handle element selection
2153 for arrays of derived types.
2154
2155 2021-02-16 Tobias Burnus <tobias@codesourcery.com>
2156
2157 * expr.c (gfc_is_simplify_contiguous): Handle REF_INQUIRY, i.e.
2158 %im and %re which are EXPR_VARIABLE.
2159 * openmp.c (resolve_omp_clauses): Diagnose %re/%im explicitly.
2160
2161 2021-02-16 Tobias Burnus <tobias@codesourcery.com>
2162
2163 PR fortran/99111
2164 * io.c (resolve_tag_format): Reject BT_DERIVED/CLASS/VOID
2165 as (array-valued) FORMAT tag.
2166
2167 2021-02-12 Tobias Burnus <tobias@codesourcery.com>
2168
2169 PR fortran/99043
2170 * trans-expr.c (gfc_conv_procedure_call): Don't reset
2171 rank of assumed-rank array.
2172
2173 2021-02-11 Paul Thomas <pault@gcc.gnu.org>
2174
2175 PR fortran/98897
2176 * match.c (gfc_match_call): Include associate names as possible
2177 entities with typebound subroutines. The target needs to be
2178 resolved for the type.
2179
2180 2021-02-11 Paul Thomas <pault@gcc.gnu.org>
2181
2182 PR fortran/99060
2183 * primary.c (gfc_match_varspec): Test for non-null 'previous'
2184 before using its name in the error message.
2185
2186 2021-02-11 Tobias Burnus <tobias@codesourcery.com>
2187
2188 * intrinsic.texi (FINDLOC): Add 'MASK' to argument table.
2189 (MAXLOC, MAXVAL, MINLOC, MINVAL): For 'MASK', remove 'an
2190 array' as scalars are also permitted.
2191
2192 2021-02-10 Julian Brown <julian@codesourcery.com>
2193
2194 PR fortran/98979
2195 * openmp.c (resolve_omp_clauses): Omit OpenACC update in
2196 contiguity check and stride-specified error.
2197
2198 2021-02-04 Julian Brown <julian@codesourcery.com>
2199
2200 * openmp.c (resolve_omp_clauses): Omit OpenACC update in
2201 contiguity check and stride-specified error.
2202
2203 2021-02-04 Julian Brown <julian@codesourcery.com>
2204
2205 * trans-openmp.c (gfc_trans_omp_clauses): Use class_pointer attribute
2206 for BT_CLASS.
2207
2208 2021-02-04 Julian Brown <julian@codesourcery.com>
2209
2210 * trans-openmp.c (gfc_trans_omp_clauses): Fix dereferencing for
2211 BT_DERIVED members.
2212
2213 2021-02-04 Tobias Burnus <tobias@codesourcery.com>
2214
2215 * openmp.c (resolve_omp_clauses): Explicitly diagnose
2216 substrings as not permitted.
2217
2218 2021-02-03 Jeff Law <law@redhat.com>
2219
2220 * intrinsic.texi (ANINT): Fix typo.
2221
2222 2021-02-03 Tobias Burnus <tobias@codesourcery.com>
2223
2224 PR fortran/98913
2225 * dependency.c (gfc_dep_resolver): Treat local access
2226 to coarrays like any array access in dependency analysis.
2227
2228 2021-01-28 Harald Anlauf <anlauf@gmx.de>
2229
2230 PR fortran/86470
2231 * trans.c (gfc_call_malloc): Allocate area of size 1 if passed
2232 size is NULL (as documented).
2233
2234 2021-01-27 Paul Thomas <pault@gcc.gnu.org>
2235
2236 PR fortran/93924
2237 PR fortran/93925
2238 * trans-expr.c (gfc_conv_procedure_call): Suppress the call to
2239 gfc_conv_intrinsic_to_class for unlimited polymorphic procedure
2240 pointers.
2241 (gfc_trans_assignment_1): Similarly suppress class assignment
2242 for class valued procedure pointers.
2243
2244 2021-01-27 Paul Thomas <pault@gcc.gnu.org>
2245
2246 PR fortran/98472
2247 * trans-array.c (gfc_conv_expr_descriptor): Include elemental
2248 procedure pointers in the assert under the comment 'elemental
2249 function' and eliminate the second, spurious assert.
2250
2251 2021-01-25 Harald Anlauf <anlauf@gmx.de>
2252
2253 PR fortran/70070
2254 * data.c (create_character_initializer): Check substring indices
2255 against bounds.
2256 (gfc_assign_data_value): Catch error returned from
2257 create_character_initializer.
2258
2259 2021-01-25 Tobias Burnus <tobias@codesourcery.com>
2260
2261 * intrinsic.texi (CO_BROADCAST, CO_MIN, CO_REDUCE, CO_SUM): Fix typos.
2262
2263 2021-01-25 Steve Kargl <kargl@gcc.gnu.org>
2264
2265 PR fortran/98517
2266 * resolve.c (resolve_charlen): Check that length expression is
2267 present before testing for scalar/integer..
2268
2269 2021-01-22 Paul Thomas <pault@gcc.gnu.org>
2270
2271 PR fortran/98565
2272 * trans-intrinsic.c (gfc_conv_associated): Do not add a _data
2273 component for scalar class function targets. Instead, fix the
2274 function result and access the _data from that.
2275
2276 2021-01-21 Jorge D'Elia <jdelia@cimec.unl.edu.ar>
2277
2278 * intrinsic.texi (CO_MAX): Fix typo.
2279
2280 2021-01-21 Paul Thomas <pault@gcc.gnu.org>
2281
2282 PR fortran/96320
2283 * decl.c (gfc_match_modproc): It is not an error to find a
2284 module procedure declaration within a contains block.
2285 * expr.c (gfc_check_vardef_context): Pure procedure result is
2286 assignable. Change 'own_scope' accordingly.
2287 * resolve.c (resolve_typebound_procedure): A procedure that
2288 has the module procedure attribute is almost certainly a
2289 module procedure, whatever its interface.
2290
2291 2021-01-19 Tobias Burnus <tobias@codesourcery.com>
2292
2293 PR fortran/98476
2294 * openmp.c (resolve_omp_clauses): Change use_device_ptr
2295 to use_device_addr for unless type(c_ptr); check all
2296 list item for is_device_ptr.
2297
2298 2021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com>
2299
2300 * dump-parse-tree.c (show_omp_clauses): Handle detach clause.
2301 * frontend-passes.c (gfc_code_walker): Walk detach expression.
2302 * gfortran.h (struct gfc_omp_clauses): Add detach field.
2303 (gfc_c_intptr_kind): New.
2304 * openmp.c (gfc_free_omp_clauses): Free detach clause.
2305 (gfc_match_omp_detach): New.
2306 (enum omp_mask1): Add OMP_CLAUSE_DETACH.
2307 (enum omp_mask2): Remove OMP_CLAUSE_DETACH.
2308 (gfc_match_omp_clauses): Handle OMP_CLAUSE_DETACH for OpenMP.
2309 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DETACH.
2310 (resolve_omp_clauses): Prevent use of detach with mergeable and
2311 overriding the data sharing mode of the event handle.
2312 * trans-openmp.c (gfc_trans_omp_clauses): Handle detach clause.
2313 * trans-types.c (gfc_c_intptr_kind): New.
2314 (gfc_init_kinds): Initialize gfc_c_intptr_kind.
2315 * types.def
2316 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
2317 to...
2318 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
2319 ...this. Add extra argument.
2320
2321 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2322
2323 * gfortran.h (gfc_resolve_substring): Add prototype.
2324 * primary.c (match_string_constant): Simplify substrings with
2325 constant starting and ending points.
2326 * resolve.c: Rename resolve_substring to gfc_resolve_substring.
2327 (gfc_resolve_ref): Use renamed function gfc_resolve_substring.
2328
2329 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2330
2331 PR fortran/98661
2332 * resolve.c (resolve_component): Derived type components with
2333 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2334
2335 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2336
2337 Revert:
2338 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2339
2340 PR fortran/98661
2341 * resolve.c (resolve_component): Derived type components with
2342 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2343
2344 2021-01-14 Harald Anlauf <anlauf@gmx.de>
2345
2346 PR fortran/98661
2347 * resolve.c (resolve_component): Derived type components with
2348 ALLOCATABLE or POINTER attribute shall have a deferred shape.
2349
2350 2021-01-08 Paul Thomas <pault@gcc.gnu.org>
2351
2352 PR fortran/93794
2353 * trans-expr.c (gfc_conv_component_ref): Remove the condition
2354 that deferred character length components only be allocatable.
2355
2356 2021-01-08 Paul Thomas <pault@gcc.gnu.org>
2357
2358 PR fortran/98458
2359 * simplify.c (is_constant_array_expr): If an array constructor
2360 expression has elements other than constants or structures, try
2361 fixing the expression with gfc_reduce_init_expr. Also, if shape
2362 is NULL, obtain the array size and set it.
2363
2364 2021-01-07 Paul Thomas <pault@gcc.gnu.org>
2365
2366 PR fortran/93701
2367 * resolve.c (find_array_spec): Put static prototype for
2368 resolve_assoc_var before this function and call for associate
2369 variables.
2370
2371 2021-01-06 Harald Anlauf <anlauf@gmx.de>
2372
2373 * resolve.c (resolve_component): Add check for valid CLASS
2374 reference before trying to access CLASS data.
2375
2376 2021-01-04 Martin Liska <mliska@suse.cz>
2377
2378 * ChangeLog-2018: Remove duplicate ChangeLog entries.
2379
2380 2021-01-01 Harald Anlauf <anlauf@gmx.de>
2381
2382 * class.c (gfc_find_vtab): Add check on attribute is_class.
2383
2384 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2385
2386 * gfortranspec.c (lang_specific_driver): Update copyright notice
2387 dates.
2388 * gfc-internals.texi: Bump @copying's copyright year.
2389 * gfortran.texi: Ditto.
2390 * intrinsic.texi: Ditto.
2391 * invoke.texi: Ditto.
2392
2393 2021-01-01 Jakub Jelinek <jakub@redhat.com>
2394
2395 * ChangeLog-2020: Rotate ChangeLog. New file.
2396
2397 \f
2398 Copyright (C) 2021 Free Software Foundation, Inc.
2399
2400 Copying and distribution of this file, with or without modification,
2401 are permitted in any medium without royalty provided the copyright
2402 notice and this notice are preserved.