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