12018-12-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
2
3	PR fortran/82995
4	* trans-expr.c (gfc_conv_procedure_call):  Pass NULL pointer
5	for missing optional dummy arguments for library routines.
6	* trans-intinsic.c (conv_mask_condition): New function.
7	(gfc_conv_intrinsic_arith): Detect and handle optional mask.
8	(gfc_conv_intrinsic_minmaxloc): Likewise.
9	(gfc_conv_intrinsic_findloc): Likewise.
10	(gfc_conv_intrinsic_minmaxval): Likewise.
11	(gfc_inline_intrinsic_function_p): Do not inline for rank > 1 if
12	an optional mask is present.
13
142018-12-29  Steven G. Kargl  <kargl@gcc.gnu.org>
15
16	* expr.c (external_spec_function): Add ieee_support_subnormal to list
17	of IEEE inquiry functions.
18
192018-12-29  Steven G. Kargl  <kargl@gcc.gnu.org>
20
21	* cpp.c (gfc_cpp_init):  Add pre-defined macros for INTEGER(1)
22	INTEGER(2), INTEGER(8) and INTEGER(16) if supported.  Add pre-defined
23	macros for REAL(10) and REAL(16) if available.
24	* gfortran.texi: Document new macros.
25
262018-12-27  Steven G. Kargl  <kargl@gcc.gnu.org>
27
28	PR fortran/81027
29	* expr.c (gfc_check_init_expr): Distinguish assumed-shape versus
30	deferred-shape dummy arguments in an error message.
31
322018-12-26  Harald Anlauf  <anlauf@gmx.de>
33
34	PR fortran/85407
35	* module.c (read_module): Convert assert to fatal error to give a
36	sensible error message.
37
382018-12-24  Steven G. Kargl  <kargl@gcc.gnu.org>
39
40	PR fortran/45513
41	PR fortran/81509
42	* check.c: Rename function gfc_check_iand to gfc_check_iand_ieor_ior.
43	* check.c (boz_args_check): New function.  Check I and J not both BOZ.
44	(gfc_check_dshift,gfc_check_iand_ieor_ior, gfc_check_ishft,
45	 gfc_check_and, gfc_check_merge_bits): Use it.
46	* check.c (gfc_check_iand_ieor_ior): Force conversion of BOZ to kind
47	type of other agrument.  Remove silly GNU extension.
48	(gfc_check_ieor, gfc_check_ior): Delete now unused functions.
49	* intrinsic.c (add_functions): Use gfc_check_iand_ieor_ior. Wrap long
50	line.
51	* intrinsic.h: Rename gfc_check_iand to gfc_check_iand_ieor_ior.
52	Delete prototype for bool gfc_check_ieor and gfc_check_ior
53	* intrinsic.texi: Update documentation for boz-literal-constant.
54
552018-12-23  Paul Thomas  <pault@gcc.gnu.org>
56
57	PR fortran/77703
58	* resolve.c (get_temp_from_expr): Use the string length of
59	constant character expressions.
60
612018-12-22  Steven G. Kargl  <kargl@gcc.gnu.org>
62
63	PR fortran/88328
64	* io.c (resolve_tag_format): Add error for zero-sized array.
65	(gfc_resolve_dt): Manipulate gfc_current_locus to get sensible error
66	message locus.
67
682018-12-22  Steven G . Kargl  <kargl@gcc.gnu.org>
69
70	PR fortran/85798
71	* decl.c (gfc_match_data): If a component of a derived type entity
72	appears in data statement, check that does not have the allocatable
73	attribute.
74
752018-12-22  Steven G. Kargl  <kargl@gcc.gnu.org>
76
77	PR fortran/88169
78	* module.c (mio_namelist): Remove an error condition/message that
79	is contrary to the Fortran standard.
80
812018-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
82
83	PR fortran/85544
84	* frontend-passes.c (optimize_power): Remove.
85	(optimize_op): Remove call to optimize_power.
86	* trans-expr.c (gfc_conv_power_op): Handle cases of 1**integer,
87	(2|4|8|16) ** integer and (-1) ** integer.
88
892018-12-21  Paul Thomas  <pault@gcc.gnu.org>
90
91	PR fortran/87881
92	* expr.c (find_inquiry_ref): Loop through the inquiry refs in
93	case there are two of them.
94	(simplify_ref_chain): Return true after a successful call to
95	find_inquiry_ref.
96
972018-12-19  Steven G. Kargl  <kargl@gcc.gnu.org>
98
99	PR fortran/87992
100	* resolve.c (resolve_fl_variable): Avoid a NULL pointer.
101
1022018-12-16  Steven G. Kargl  <kargl@gcc.gnu.org>
103
104	* resolve.c (resolve_transfer): Remove dead code.
105
1062018-12-16  Steven G. Kargl  <kargl@gcc.gnu.org>
107
108	PR fortran/88116
109	PR fortran/88467
110	* array.c (gfc_match_array_constructor): Check return value of
111	gfc_convert_type().  Skip constructor elements with BT_UNKNOWN,
112	which need to go through resolution.
113	* intrinsic.c (gfc_convert_type_warn): Return early if the types
114	match (i.e., no conversion is required).
115	* simplify.c (gfc_convert_constant): Remove a gfc_internal_error,
116	and return gfc_bad_expr.
117
1182018-12-16  Steven G. Kargl  <kargl@gcc.gnu.org>
119
120	* decl.c (variable_decl): Typo fixes in comment and error messsage.
121
1222018-12-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
123
124	PF fortran/88364
125	* trans-expr.c (gfc_conv_expr_reference): Do not add clobber if
126	the expression contains a reference.
127
1282018-12-15  Steven G. Kargl  <kargl@gcc.gnu.org>
129
130	PR fortran/87944
131	* decl.c (match_data_constant): Allow inquiry parameter as data
132	constant in data statement.
133
1342018-12-15  Steven G. Kargl  <kargl@gcc.gnu.org>
135
136	PR fortran/88138
137	* decl.c (variable_decl): Check that a derived isn't being assigned
138	an incompatible entity in an initialization.
139
1402018-12-12  Jakub Jelinek  <jakub@redhat.com>
141
142	PR fortran/88463
143	* trans-openmp.c (gfc_omp_predetermined_sharing): Handle TREE_READONLY
144	VAR_DECLs with DECL_EXTERNAL like those with TREE_STATIC.
145
1462018-12-11  Steven G. Kargl  <kargl@gcc.gnu.org>
147
148	PR fortran/88155
149	* primary.c (gfc_match_structure_constructor):  Set the locus of
150	an expression to avoid a NULL pointer dereference.
151
1522018-12-11  Steven G. Kargl  <kargl@gcc.gnu.org>
153
154	PR fortran/88249
155	* gfortran.h: Update prototype for gfc_resolve_filepos().
156	* io.c (gfc_resolve_filepos): Check for UNIT number if ERR= is present.
157	Use passed in locus for error message.
158	* resolve.c (gfc_resolve_code): Pass locus in gfc_resolve_filepos()
159	call.
160
1612018-12-10  Steven G. Kargl  <kargl@gcc.gnu.org>
162
163	PR fortran/97922
164	* io.c (gfc_match_open): Additional checks on ASYNCHRONOUS.
165
1662018-12-10  Steven G. Kargl  <kargl@gcc.gnu.org>
167
168	PR fortran/88269
169	* io.c (io_constraint): Update macro. If locus line buffer is NULL,
170	use gfc_current_locus in error messages.
171	(check_io_constraints): Catch missing IO UNIT in write and read
172	statements.  io_constraint macro is incompatible here.
173
1742018-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
175
176	PR fortran/88205
177	* io.c (gfc_match_open): Move NEWUNIT checks to after STATUS checks.
178
1792018-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
180
181	PR fortran/88206
182	* match.c (gfc_match_type_spec): REAL can be an intrinsic function.
183
1842018-12-09  Fritz Reese  <fritzoreese@gmail.com>
185
186	PR fortran/88228
187	* resolve.c (resolve_operator):  Do not call resolve_function.
188	Break like other cases.
189
1902018-12-09  Cesar Philippidis  <cesar@codesourcery.com>
191
192	* trans-openmp.c (gfc_trans_oacc_combined_directive): Set the
193	location of combined acc loops.
194
1952018-12-09  Thomas Schwinge  <thomas@codesourcery.com>
196
197	* openmp.c (resolve_oacc_loop_blocks): Remove checking of OpenACC
198	loop clauses.
199
200	PR fortran/88420
201	* openmp.c (resolve_oacc_loop_blocks): Remove "Clause SEQ
202	conflicts with INDEPENDENT" diagnostic.
203
2042018-12-08  Steven G. Kargl  <kargl@gcc.gnu.org>
205
206	PR fortran/88048
207	* resolve.c (check_data_variable): Named constant cannot be a
208	data object.
209
2102018-12-08  Steven G. Kargl  <kargl@gcc.gnu.org>
211
212	PR fortran/87945
213	* decl.c (var_element): Inquiry parameters cannit be data objects.
214
2152018-12-08  Steven G. Kargl  <kargl@gcc.gnu.org>
216
217	PR fortran/88025
218	* expr.c (gfc_apply_init):  Remove asserts that cannot trigger.
219	Check for a NULL pointer.
220
2212018-12-08  Steven G. Kargl  <kargl@gcc.gnu.org>
222
223	PR fortran/88357
224	* class.c (insert_component_ref): Check for NULL pointer and
225	previous error message issued.
226	* parse.c (parse_associate): Check for NULL pointer.
227	* resolve.c (resolve_assoc_var): Check for NULL pointer.
228
2292018-12-07  Jakub Jelinek  <jakub@redhat.com>
230
231	PR fortran/88377
232	* trans-openmp.c (gfc_omp_clause_default_ctor,
233	gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
234	gfc_omp_clause_linear_ctor, gfc_omp_clause_dtor): Only consider
235	GFC_DECL_GET_SCALAR_ALLOCATABLE vars as scalar allocatables if they
236	have pointer type.
237
2382018-12-03  Fritz Reese  <fritzoreese@gmail.com>
239	    Mark Eggleston  <mark.eggleston@codethink.co.uk>
240
241	PR fortran/87919
242	* options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros.
243	(set_dec_flags): Set/unset DEC and std flags according to value.
244	(post_dec_flags, set_init_local_zero): New functions.
245	(gfc_init_options): Use set_init_local_zero and post_dec_flags.
246	(gfc_handle_options) <case OPT_fcheck_array_temporaries>: Use
247	SET_BITFLAG.
248	<case OPT_finit_local_zero>: Use set_init_local_zero.
249	<case OPT_fdec>: Pass value to set_dec_flags.
250	<case OPT_fdec_structure>: Remove.
251
2522018-11-30  Thomas Schwinge  <thomas@codesourcery.com>
253
254	* gfortran.h (struct gfc_omp_clauses): Remove "wait".  Adjust all
255	users.
256
257	* openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait
258	clauses.
259
2602018-11-27  Martin Liska  <mliska@suse.cz>
261
262	* decl.c (gfc_match_gcc_builtin): New function.
263	* gfortran.h (struct vect_builtin_tuple): New.
264	(gfc_adjust_builtins): Likewise.
265	* lang-specs.h (TARGET_F951_OPTIONS): New.
266	(F951_OPTIONS): Use it.
267	* lang.opt: Add new option -fpre-include.
268	* match.h (gfc_match_gcc_builtin): Declare new function.
269	* parse.c (decode_gcc_attribute): Handle builtin.
270	(parse_progunit): Call gfc_adjust_builtins.
271	* scanner.c (gfc_new_file): Load pre-included header file
272	when provided.
273	* trans-intrinsic.c (add_simd_flag_for_built_in): New.
274	(gfc_adjust_builtins): Likewise.
275
2762018-11-24  Paul Thomas  <pault@gcc.gnu.org>
277
278	PR fortran/88143
279	* resolve.c (resolve_variable): Check for associate names with
280	NULL target.
281
2822018-11-23  Jakub Jelinek  <jakub@redhat.com>
283
284	* lang.opt (fpad-source): New option.
285	* scanner.c (load_line): Don't pad fixed form lines if
286	!flag_pad_source.
287	* invoke.texi (-fno-pad-source): Document.
288
2892018-11-21  Jakub Jelinek  <jakub@redhat.com>
290
291	* invoke.texi (-fdec-include): Document.
292
2932018-11-21  Jakub Jelinek  <jakub@redhat.com>
294	    Mark Eggleston  <mark.eggleston@codethink.com>
295
296	* lang.opt (fdec-include): New option.
297	* options.c (set_dec_flags): Set also flag_dec_include.
298	* scanner.c (include_line): Change return type from bool to int.
299	In fixed form allow spaces in between include keyword letters.
300	For -fdec-include, allow in fixed form 0 in column 6.  With
301	-fdec-include return -1 if the parsed line is not full include
302	statement and it could be successfully completed on continuation
303	lines.
304	(include_stmt): New function.
305	(load_file): Adjust include_line caller.  If it returns -1, keep
306	trying include_stmt until it stops returning -1 whenever adding
307	further line of input.
308
3092018-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
310
311	PR fortran/88073
312	* frontend-passes.c (combine_array_constructor): Do not do
313	anything if in a WHERE statement.
314
3152018-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
316
317	PR fortran/70260
318	* expr.c (gfc_check_assign): Reject assigning to an external
319	symbol.
320	(gfc_check_pointer_assign): Add suppress_type_test
321	argument. Insert line after if. A non-proc pointer can not point
322	to a constant.  Only check types if suppress_type_test is false.
323	* gfortran.h (gfc_check_pointer_assign): Add optional
324	suppress_type_test argument.
325	* resolve.c (gfc_resolve_code):  Move up gfc_check_pointer_assign
326	and give it the extra argument.
327	(resolve_fl_procedure): Set error on value for a function with
328	an inizializer.
329
3302018-11-15  David Malcolm  <dmalcolm@redhat.com>
331
332	PR other/19165
333	* error.c (gfc_diagnostic_finalizer): Add diagnostic_t param.
334
3352018-11-13  David Malcolm  <dmalcolm@redhat.com>
336
337	* cpp.c: Replace "source_location" with "location_t".
338	* gfortran.h: Likewise.
339
3402018-11-08  Jakub Jelinek  <jakub@redhat.com>
341
342	* trans-openmp.c (gfc_trans_omp_clauses): Use
343	OMP_CLAUSE_DEFAULTMAP_SET_KIND.
344	(gfc_trans_omp_atomic): Set OMP_ATOMIC_MEMORY_ORDER
345	rather than OMP_ATOMIC_SEQ_CST.
346	(gfc_trans_omp_taskgroup): Build OMP_TASKGROUP using
347	make_node instead of build1_loc.
348	* types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR,
349	BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT,
350	BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
351	BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
352	BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
353	BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New.
354	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): Formatting fix.
355
3562018-11-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
357
358	PR fortran/46020
359	* decl.c (verify_bind_c_sym): Remove unnecessary space
360	in error message.
361
3622018-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
363
364	PR fortran/87782
365	* frontend-passes.c (constant_string_length): If there is a
366	substring with a length which cannot be reduced to a constant,
367	return NULL.
368
3692018-11-01  Paul Thomas  <pault@gcc.gnu.org>
370
371	PR fortran/40196
372	* dependency.c (are_identical_variables): Return false if the
373	inquiry refs are not the same.
374	(gfc_ref_needs_temporary_p): Break on an inquiry ref.
375	* dump_parse_tree.c (show_ref): Show the inquiry ref type.
376	* expr.c (gfc_free_ref_list): Break on an inquiry ref.
377	(gfc_copy_ref): Copy the inquiry ref types.
378	(find_inquiry_ref): New function.
379	(simplify_const_ref, simplify_ref_chain): Call it. Add new arg
380	to simplify_ref_chain.
381	(gfc_simplify_expr): Use the new arg in call to
382	simplify_ref_chain.
383	(gfc_get_full_arrayspec_from_expr, gfc_is_coarray): Break on
384	inquiry ref.
385	(gfc_traverse_expr): Return true for inquiry ref.
386	* frontend-passes.c (gfc_expr_walker): Break on inquiry ref.
387	* gfortran.h : Add enums and union member in gfc_ref to
388	implement inquiry refs.
389	* intrinsic.c : Fix white nois.
390	* match.c (gfc_match_assignment): A constant lavlue is an
391	error.
392	* module.c : Add DECL_MIO_NAME for inquiry_type and the mstring
393	for inquiry_types.
394	(mio_ref): Handle inquiry refs.
395	* primary.c (is_inquiry_ref): New function.
396	(gfc_match_varspec): Handle inquiry refs calling new function.
397	(gfc_variable_attr): Detect inquiry ref for disambiguation
398	with components.
399	(caf_variable_attr): Treat inquiry and substring refs in the
400	same way.
401	* resolve.c (find_array_spec): ditto.
402	(gfc_resolve_substring_charlen): If there is neither a charlen
403	ref not an inquiry ref, return.
404	(resolve_ref): Handle inqiry refs as appropriate.
405	(resolve_allocate_expr): Entities with an inquiry ref cannot be
406	allocated.
407	* simplify.c (simplify_bound, simplify_cobound): Punt on
408	inquiry refs.
409	* trans-array.c (get_array_ctor_var_strlen): Break on inquiry
410	ref.
411	*trans-expr.c (conv_inquiry): New function.
412	(gfc_conv_variable): Retain the last typespec to pass to
413	conv_inquiry on detecting an inquiry ref.
414
4152018-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
416
417	PR fortran/46020
418	* decl.c (verify_bind_c_sym): Improve error message.
419
4202018-11-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
421
422	PR fortran/54613
423	* gfortran.texi (File format of unformatted sequential files):
424	Replace random comma with period.
425	* intrinsic.texi (Intrinsic Procedures): Add FINDLOC to menu.
426	(FINDLOC): Document.
427	(MAXLOC): Add refrence to FINDLOC.
428	(MINLOC): Likewise.
429
4302018-10-31  Nathan Sidwell  <nathan@acm.org>
431
432	* cpp.c (gfc_cpp_init): Adjust cpp_force_token_locations call.
433
4342018-10-31  Martin Liska  <mliska@suse.cz>
435
436	* trans-decl.c (struct module_hasher): Call htab_hash_string
437	for s->name and not for s.
438
4392018-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
440
441	PR fortran/85896
442	* simplify.c (simplify_min_max): Do not convert the type of the
443	return expression.
444
4452017-10-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
446
447	PR fortran/54613
448	* gfortran.h (gfc_isym_id): Add GFC_ISYM_FINDLOC.
449	(gfc_check_f): Add f6fl field.
450	(gfc_simplify_f): Add f6 field.
451	(gfc_resolve_f): Likewise.
452	(gfc_type_letter): Add optional logical_equas_int flag.
453	* check.c (intrinsic_type_check): New function.
454	(gfc_check_findloc): New function.
455	* intrinsics.c (gfc_type_letter): If logical_equals_int is
456	set, act accordingly.
457	(add_sym_5ml):  Reformat comment.
458	(add_sym_6fl): New function.
459	(add_functions): Add findloc.
460	(check_arglist): Add sixth argument, handle it.
461	(resolve_intrinsic): Likewise.
462	(check_specific): Handle findloc.
463	* intrinsic.h (gfc_check_findloc): Add prototype.
464	(gfc_simplify_findloc): Likewise.
465	(gfc_resolve_findloc): Likewise.
466	(MAX_INTRINSIC_ARGS): Adjust.
467	* iresolve.c (gfc_resolve_findloc): New function.
468	* simplify.c (gfc_simplify_minmaxloc): Make static.
469	(simplify_findloc_to_scalar): New function.
470	(simplify_findloc_nodim): New function.
471	(simplify_findloc_to_array): New function.
472	(gfc_simplify_findloc): New function.
473	(gfc_conv_intrinsic_findloc): New function.
474	(gfc_conv_intrinsic_function): Handle GFC_ISYM_FINDLOC.
475	(gfc_is_intrinsic_libcall): Likewise.
476
4772018-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
478
479	PR fortran/86907
480	* frontend-passes.c (check_locus_code): Add information that
481	warning about missing location information points to an
482	inconsisten internal state.
483	(check_locus_expr): Likewise.
484
4852018-10-25  Jakub Jelinek  <jakub@redhat.com>
486
487	PR fortran/87725
488	* openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and
489	nonmonotonic modifiers regardless of if they have been parsed
490	already or if the opposite one has.  Fix up check whether
491	comma after modifier should be parsed.
492	(resolve_omp_clauses): Diagnose schedule modifier restrictions.
493
4942018-10-23  Paul Thomas  <pault@gcc.gnu.org>
495
496	PR fortran/85603
497	* frontend-passes.c (get_len_call): New function to generate a
498	call to intrinsic LEN.
499	(create_var): Use this to make length expressions for variable
500	rhs string lengths.
501	Clean up some white space issues.
502
5032018-10-21  Paul Thomas  <pault@gcc.gnu.org>
504
505	PR fortran/71880
506	* trans-expr.c (gfc_trans_pointer_assignment): Set the string
507	length for array valued deferred length lhs.
508
5092018-10-18  Tobias Burnus  <burnus@net-b.de>
510
511	PR fortran/87625
512	* trans-array.c (gfc_is_reallocatable_lhs): Detect allocatable
513	polymorphic arrays.
514
5152018-10-18  Paul Thomas  <pault@gcc.gnu.org>
516
517	PR fortran/58618
518	* trans-stmt.c (trans_associate_var): All strings that return
519	as pointer types can be assigned directly to the associate
520	name so remove 'attr' and the condition that uses it.
521
5222018-10-18  Paul Thomas  <pault@gcc.gnu.org>
523
524	PR fortran/58618
525	* trans-decl.c (gfc_get_symbol_decl): Deal correctly with the
526	initialization with NULL() of a deferred length pointer.
527
5282018-10-17  Tobias Burnus  <burnus@net-b.de>
529
530	PR fortran/87632
531	* resolve.c (resolve_select_type): Use correct variable.
532
5332018-10-17  David Malcolm  <dmalcolm@redhat.com>
534
535	* Make-lang.in (selftest-fortran): New.
536
5372018-10-17  Paul Thomas  <pault@gcc.gnu.org>
538
539	PR fortran/56386
540	PR fortran/58906
541	PR fortran/77385
542	PR fortran/80260
543	PR fortran/82077
544	* resolve.c (resolve_variable): Fix up expressions with array
545	associate names, where the parser did not detect that this is
546	array and there was no array part_ref in the expression.
547
5482018-10-16  Tobias Burnus  <burnus@net-b.de>
549
550	PR fortran/67125
551	* trans-array.c (gfc_array_init_size, gfc_array_allocate):
552	Rename argument e3_is_array_constr to e3_has_nodescriptor
553	and update comments.
554	* trans-stmt.c (gfc_trans_allocate): Also fix lower bound
555	to 1 for nonalloc/nonpointer func results/vars besides
556	array constructors.
557
5582018-10-16  Tobias Burnus  <burnus@net-b.de>
559
560	PR fortran/87556
561	* trans-stmt.c (form_team, change_team, sync_team):
562	Don't ignore argse.pre/argse.post.
563
5642018-10-15  Paul Thomas  <pault@gcc.gnu.org>
565	Tobias Burnus  <burnus@gcc.gnu.org>
566
567	PR fortran/87566
568	* resolve.c (resolve_assoc_var): Add missing array spec for
569	class associate names.
570	(resolve_select_type): Handle case where last typed component
571	of the selector has a different type to the expression.
572	* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace
573	call to gfc_expr_to_initialize with call to gfc_copy_expr.
574	(gfc_conv_class_to_class): Guard assignment to 'len' field
575	against case where zero constant is supplied.
576
5772018-10-12  Tobias Burnus  <burnus@net-b.de>
578
579	PR fortran/87597
580	* expr.c (gfc_simplify_expr): Avoid simplifying
581	the 'array' argument to lbound/ubound/lcobound/
582	ucobound.
583
5842018-10-12  Tobias Burnus <burnus@net-b.de>
585
586	PR fortran/58787
587	* decl.c (get_proc_name): Return with error before
588	creating sym_tree.
589
5902018-10-11  Tobias Burnus <burnus@net-b.de>
591
592	Revert:
593	2018-10-09  Tobias Burnus <burnus@net-b.de>
594
595	PR fortran/83522
596	* resolve.c (resolve_ref): Reject nonscalar
597	substring references.
598
5992018-10-09  David Malcolm  <dmalcolm@redhat.com>
600
601	* cpp.c (gfc_cpp_init_0): Update for renamings.
602	(cb_cpp_error): Rename to...
603	(cb_cpp_diagnostic): ...this, converting level and reason to
604	enums.
605
6062018-10-09  Tobias Burnus <burnus@net-b.de>
607
608	PR fortran/83522
609	* resolve.c (resolve_ref): Reject nonscalar
610	substring references.
611
6122018-10-09  Paul Thomas  <pault@gcc.gnu.org>
613
614	PR fortran/87151
615	* trans-array.c (gfc_get_array_span): Deal with deferred char
616	array components having a TYPE_MAX_VALUE of zero.
617	(gfc_array_init_size): Use the hidden string length component
618	to build the descriptor dtype.
619	(gfc_array_allocate): Remove the erroneous replacement of the
620	charlen backend decl with a temporary.
621	(gfc_conv_expr_descriptor): Use the ss_info string length in
622	the case of deferred character components.
623	(gfc_alloc_allocatable_for_assignment): Actually compare the
624	string lengths for deferred characters. Make sure that kind > 1
625	is handled correctly. Set the span field of the descriptor.
626	* trans-intrinsic.c (gfc_conv_intrinsic_len): Remove the stupid
627	comment.
628
629	PR fortran/80931
630	* trans-array.c (gfc_array_allocate): Set the span field for
631	variable length character arrays.
632
6332018-10-08  Cesar Philippidis  <cesar@codesourcery.com>
634
635	* expr.c (gfc_check_pointer_assign): Demote "Assignment to
636	contiguous pointer from non-contiguous target" to a warning.
637
6382018-10-08  Paul Thomas  <pault@gcc.gnu.org>
639
640	PR fortran/86372
641	* trans-stmt.c (trans_associate_var): Character associate names
642	with variable string length do not have to be deferred length
643	for the string length to be set, if variable.
644
6452018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
646
647	PR fortran/86111
648	* gfortran.h (enum arith): Add ARITH_WRONGCONCAT.
649	* arith.h (gfc_arith_error): Issue error for ARITH_WRONGCONCAT.
650	(gfc_arith_concat):  If the types of op1 and op2 are not
651	character of if their kinds do not match, issue ARITH_WRONGCONCAT.
652
6532018-10-06  Paul Thomas  <pault@gcc.gnu.org>
654
655	PR fortran/83999
656	* resolve.c (resolve_fl_procedure): Include class functions in
657	the test that elemental function results be scalar.
658
6592018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
660
661	PR fortran/84640
662	* simplify.c (gfc_simplify_cshift): Extend size of hs_ex and ss_ex
663	by one. Set extents one past the array boundaries to zero to avoid
664	warning with instrumented compiler.
665	(gfc_simplify_eoshift): Likewise, only for ss_ex.
666
6672018-10-05  Paul Thomas  <pault@gcc.gnu.org>
668
669	PR fortran/87487
670	* trans-decl.c (gfc_get_symbol_decl): Make sure that deferred
671	character length pointer initializer has the right type to fix
672	problem with deferred_character_24.f90 on big endian.
673
6742018-10-03  Jeff Law  <law@redhat.comg>
675
676	* trans-types.c (get_typenode_from_name): Moved into gcc/tree.c.
677
6782018-10-01  Paul Thomas  <pault@gcc.gnu.org>
679
680	PR fortran/65677
681	* trans-expr.c (gfc_trans_assignment_1): Set the 'identical'
682	flag in the call to gfc_check_dependency.
683
6842018-09-30  Paul Thomas  <pault@gcc.gnu.org>
685
686	PR fortran/87359
687	* trans-array.c (gfc_is_reallocatable_lhs): Correct the problem
688	introduced by r264358, which prevented components of associate
689	names from being reallocated on assignment.
690
6912018-09-30  Paul Thomas  <pault@gcc.gnu.org>
692
693	PR fortran/70752
694	PR fortran/72709
695	* trans-array.c (gfc_conv_scalarized_array_ref): If this is a
696	deferred type and the info->descriptor is present, use the
697	info->descriptor
698	(gfc_conv_array_ref): Is the se expr is a descriptor type, pass
699	it as 'decl' rather than the symbol backend_decl.
700	(gfc_array_allocate): If the se string_length is a component
701	reference, fix it and use it for the expression string length
702	if the latter is not a variable type. If it is a variable do
703	an assignment. Make use of component ref string lengths to set
704	the descriptor 'span'.
705	(gfc_conv_expr_descriptor): For pointer assignment, do not set
706	the span field if gfc_get_array_span returns zero.
707	* trans.c (get_array_span): If the upper bound a character type
708	is zero, use the descriptor span if available.
709
7102018-09-30  Paul Thomas  <pault@gcc.gnu.org>
711
712	PR fortran/70149
713	* trans-decl.c (gfc_get_symbol_decl): A deferred character
714	length pointer that is initialized needs the string length to
715	be initialized as well.
716
7172018-09-29  Paul Thomas  <pault@gcc.gnu.org>
718
719	PR fortran/65677
720	* trans-expr.c (gfc_trans_assignment_1): If there is dependency
721	fix the rse stringlength.
722
7232018-09-25  Martin Liska  <mliska@suse.cz>
724
725	PR fortran/87394
726	* decl.c (add_hidden_procptr_result): Simplify condition
727	as we are in branch witch 'case1 || case2'.
728
7292018-09-25  Martin Liska  <mliska@suse.cz>
730
731	* trans.c (remove_suffix): Remove
732	unused function.
733
7342018-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
735
736	PR fortran/87397
737	* gfc_conv_procedure_call: Do not add clobber on INTENT(OUT)
738	for variables in an associate statement.
739
7402018-09-24  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
741	    Cesar Philippidis  <cesar@codesourcery.com>
742
743	* openmp.c (resolve_oacc_loop_blocks):
744
7452018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
746
747	PR fortran/87397
748	* gfc_conv_procedure_call: Do not add clobber on INTENT(OUT)
749	for variables having the dimension attribute.
750
7512018-09-23  Janne Blomqvist  <jb@gcc.gnu.org>
752
753	* trans-expr.c (gfc_caf_get_image_index): Do array index
754	calculations in gfc_array_index_type.
755	* trans-intrinsic.c (conv_intrinsic_event_query): Likewise.
756	* trans-stmt.c (gfc_trans_lock_unlock): Likewise.
757	(gfc_trans_event_post_wait): Likewise.
758
7592018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
760
761	PR fortran/87395
762	* gfc_conv_procedure_call: Reformat comments slightly. Do not add
763	clobber on INTENT(OUT) for saved variables.
764
7652018-09-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
766
767	PR fortran/41453
768	* trans.h (gfc_conv_expr_reference): Add optional argument
769	add_clobber to prototype.
770	(gfc_conv_procedure_call):  Set add_clobber argument to
771	gfc_conv_procedure_reference to true for scalar, INTENT(OUT),
772	non-pointer, non-allocatable, non-dummy variables whose type
773	is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if
774	the procedure is not elemental.
775	* trans-expr.c (gfc_conv_procedure_reference): Add clobber
776	statement before call if add_clobber is set.
777
7782018-09-22  Paul Thomas  <pault@gcc.gnu.org>
779
780	PR fortran/85603
781	* trans-array.c (gfc_alloc_allocatable_for_assignment): Test
782	the charlen backend_decl before using the VAR_P macro.
783
7842018-09-21  Paul Thomas  <pault@gcc.gnu.org>
785
786	PR fortran/77325
787	* trans-array.c (gfc_alloc_allocatable_for_assignment): If the
788	rhs has a charlen expression, convert that and use it.
789	* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
790	assignment of deferred character array vars to a realocatable
791	lhs should not be added to the exterior block since vector
792	indices, for example, generate temporaries indexed within the
793	loop.
794
7952018-09-21  Paul Thomas  <pault@gcc.gnu.org>
796
797	PR fortran/87359
798	* trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc
799	components if must_finalize is set for expr3.
800
8012018-09-21  Andrew Stubbs  <ams@codesourcery.com>
802            Kwok Cheung Yeung  <kcy@codesourcery.com>
803
804	* trans-expr.c (gfc_trans_structure_assign): Ensure that the first
805	argument of a call to _gfortran_caf_register is of size_type_node.
806	* trans-intrinsic.c (conv_intrinsic_event_query): Convert computed
807	index to a size_type_node type.
808	* trans-stmt.c (gfc_trans_event_post_wait): Likewise.
809
8102018-09-20  Allan Sandfeld Jensen  <allan.jensen@qt.io>
811
812	* gfortranspec.c (lang_specific_driver): Handle -r like -nostdlib.
813
8142018-09-20  Janus Weil  <janus@gcc.gnu.org>
815
816	* gfortran.h (gfc_str_startswith): New macro.
817	* decl.c (variable_decl, gfc_match_end): Use it.
818	* iresolve.c (is_trig_resolved): Ditto.
819	* module.c (load_omp_udrs, read_module): Ditto.
820	* options.c (gfc_handle_runtime_check_option): Ditto.
821	* primary.c (match_arg_list_function): Ditto.
822	* trans-decl.c (gfc_get_symbol_decl): Ditto.
823	* trans-expr.c (gfc_conv_procedure_call): Ditto.
824	* interface.c (dtio_op): Replace strncmp by strcmp.
825	* resolve.c (resolve_actual_arglist, resolve_function): Ditto.
826	* trans-expr.c (conv_arglist_function): Ditto.
827	* trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Replace macro
828	STARTS_WITH by gfc_str_startswith.
829
8302018-09-20  Cesar Philippidis  <cesar@codesourcery.com>
831
832	* dump-parse-tree.c (show_omp_clauses): Add missing omp list_types
833	and reorder the switch cases to match the enum in gfortran.h.
834
8352018-09-19  Paul Thomas  <pault@gcc.gnu.org>
836
837	PR fortran/84109
838	* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
839	assignment of deferred character intrinsic elemental function
840	results to a realocatable lhs must not be added to the exterior
841	block if they are array valued but must go to the loop body.
842
8432018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
844
845	PR fortran/29550
846	* gfortran.h (gfc_expr): Add external_blas flag.
847	* frontend-passes.c (matrix_case): Add case A2TB2T.
848	(optimize_namespace): Handle flag_external_blas by
849	calling call_external_blas.
850	(get_array_inq_function): Add argument okind. If
851	it is nonzero, use it as the kind of argument
852	to be used.
853	(inline_limit_check): Remove m_case argument, add
854	limit argument instead.  Remove assert about m_case.
855	Set the limit for inlining from the limit argument.
856	(matmul_lhs_realloc): Handle case A2TB2T.
857	(inline_matmul_assign): Handle inline limit for other cases with
858	two rank-two matrices.  Remove no-op calls to inline_limit_check.
859	(call_external_blas): New function.
860	* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add
861	argument to external BLAS if external_blas is already set.
862
8632018-09-18  Paul Thomas  <pault@gcc.gnu.org>
864
865	PR fortran/87239
866	* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
867	assignment of deferred character elemental function results to
868	a realocatable lhs must not be added to the exterior block but
869	must go to the loop body.
870
8712018-09-18  Paul Thomas  <pault@gcc.gnu.org>
872
873	PR fortran/87336
874	* trans-array.c (gfc_get_array_span): Try to get the element
875	length of incomplete types. Return NULL_TREE otherwise.
876	(gfc_conv_expr_descriptor): Only set the 'span' field if the
877	above does not return NULL_TREE. Set 'span' field if possible
878	for all new descriptors.
879
8802018-09-17  Paul Thomas  <pault@gcc.gnu.org>
881
882	PR fortran/64120
883	* trans-decl.c (gfc_get_symbol_decl): Flag allocatable, scalar
884	characters with a variable length expression for deferred init.
885	(gfc_trans_deferred_vars): Perform the assignment for these
886	symbols by calling gfc_conv_string_length.
887
8882018-09-17  Paul Thomas  <pault@gcc.gnu.org>
889
890	PR fortran/85954
891	* resolve.c (resolve_assoc_var): If the target expression is a
892	deferred charlen dummy and the associate name shares the
893	charlen, generate a new one. Make sure that new charlens are in
894	the namespace list so that they get cleaned up.
895	* trans-array.c (gfc_is_reallocatable_lhs): Associate names are
896	not reallocatable.
897	* trans-decl.c (gfc_get_symbol_decl): Put deferred character
898	length dummy and result arrays on the deferred initialization
899	list so that the variable length arrays can be correctly dealt
900	with.
901	* trans-expr.c (gfc_conv_string_length): Return if 'expr' is
902	NULL rather than ICEing..
903
9042018-09-16  Janus Weil  <janus@gcc.gnu.org>
905
906	PR fortran/86484
907	PR fortran/84543
908	* match.c (gfc_match_assignment): For a polymorphic assignment,
909	make sure that the vtab for the rhs type is generated.
910
9112018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
912
913	PR fortran/37802
914	* frontend-passes.c (B_ERROR): New macro for matmul bounds
915	checking error messages.
916	(C_ERROR): Likewise.
917	(inline_matmul_assign): Reorganize bounds checking, use B_ERROR
918	and C_ERROR macros.
919
9202018-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
921
922	* trans-array.c (gfc_conv_array_initializer): Remove excess precision
923	from overlength string initializers.
924
9252018-09-12  Paul Thomas  <pault@gcc.gnu.org>
926
927	PR fortran/87284
928	* trans-expr.c (gfc_trans_class_init_assign): Access to
929	to array elements of the dynamic type requires that the array
930	reference be added to the class expression and not the _data
931	component, unlike scalar expressions.
932
9332018-09-11  Janus Weil  <janus@gcc.gnu.org>
934
935	PR fortran/87172
936	* resolve.c (resolve_fl_derived): If a type has the 'use_assoc'
937	attribute, then it was declared in another module, so there should be
938	no error that it has not been declared.
939
9402018-09-11  Paul Thomas  <pault@gcc.gnu.org>
941
942	PR fortran/87277
943	* expr.c (is_subref_array): Add the check of dimensionality for
944	class, dummy, pointer arrays.
945
9462018-09-11  Janus Weil  <janus@gcc.gnu.org>
947
948	PR fortran/86830
949	* expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls
950	with non-polymorphic objects.
951
9522018-09-10  Janus Weil  <janus@gcc.gnu.org>
953
954	PR fortran/85395
955	* decl.c (match_binding_attributes): Use correct default accessibility
956	for procedure pointer components.
957
9582018-09-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
959
960	* simplify.c (gfc_simplify_modulo): Re-arrange code to test whether
961	'P' is zero and issue an error if it is.
962
9632018-08-31  Paul Thomas  <pault@gcc.gnu.org>
964
965	PR fortran/86328
966	PR fortran/86760
967	* trans-array.c (gfc_conv_scalarized_array_ref): Do not fix
968	info->descriptor but pass it directly to gfc_build_array_ref.
969	(gfc_conv_array_ref): Likewise for se->expr.
970	* trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF
971	obtain the span field directly from it.
972
9732017-08-28  Paul Thomas  <pault@gcc.gnu.org>
974
975	PR fortran/80477
976	* trans-expr.c (gfc_conv_procedure_call): Allocatable class
977	scalar results being passed to a derived type formal argument
978	are finalized if possible. Otherwise, rely on existing code for
979	deallocation. Make the deallocation of allocatable result
980	components conditional on finalization not taking place. Make
981	the freeing of data components after finalization conditional
982	on the data being NULL.
983	(gfc_trans_arrayfunc_assign): Change the gcc_assert to a
984	condition to return NULL_TREE.
985	(gfc_trans_assignment_1): If the assignment is class to class
986	and the rhs expression must be finalized but the assignment
987	is not marked as a polymorphic assignment, use the vptr copy
988	function instead of gfc_trans_scalar_assign.
989
990	PR fortran/86481
991	* trans-expr.c (gfc_conv_expr_reference): Do not add the post
992	block to the pre block if the expression is to be finalized.
993	* trans-stmt.c (gfc_trans_allocate): If the expr3 must be
994	finalized, load the post block into a finalization block and
995	add it right at the end of the allocation block.
996
9972018-08-27  David Malcolm  <dmalcolm@redhat.com>
998
999	PR 87091
1000	* error.c (gfc_format_decoder): Update for conversion of
1001	show_caret_p to a tri-state.
1002
10032018-08-25  Janus Weil  <janus@gcc.gnu.org>
1004
1005	PR fortran/86545
1006	* resolve.c (resolve_transfer): Correctly determine typespec for
1007	generic function calls, in order to throw a proper error.
1008
10092018-08-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1010
1011	PR fortran/86837
1012	* frontend-passes.c (var_in_expr_callback): New function.
1013	(var_in_expr): New function.
1014	(traverse_io_block): Use var_in_expr instead of
1015	gfc_check_dependency for checking if the variable depends on the
1016	previous interators.
1017
10182018-08-23  Janne Blomqvist  <blomqvist.janne@gmail.com>
1019
1020	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Delete
1021	HONOR_SIGNED_ZEROS checks.
1022
10232018-08-23  Paul Thomas  <pault@gcc.gnu.org>
1024
1025	PR fortran/86863
1026	* resolve.c (resolve_typebound_call): If the TBP is not marked
1027	as a subroutine, check the specific symbol.
1028
10292018-08-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
1030
1031	* gfortran.texi: Mention that asynchronous I/O does
1032	not work on systems which lack condition variables, such
1033	as AIX.
1034
10352018-08-22  Janus Weil  <janus@gcc.gnu.org>
1036
1037	PR fortran/86935
1038	* match.c (gfc_match_associate): Improve diagnostics for the ASSOCIATE
1039	statement.
1040
10412018-08-22  Andrew Benson  <abensonca@gmail.com>
1042
1043	* module.c (load_generic_interfaces): Move call to find_symbol()
1044	so that only occurs if actually needed.
1045
10462018-08-22  Janus Weil  <janus@gcc.gnu.org>
1047
1048	PR fortran/86888
1049	* decl.c (gfc_match_data_decl): Allow allocatable components of
1050	indirectly recursive type.
1051	* resolve.c (resolve_component): Remove two errors messages ...
1052	(resolve_fl_derived): ... and replace them by a new one.
1053
10542018-08-21  Janne Blomqvist  <jb@gcc.gnu.org>
1055
1056	* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use
1057	MAX_EXPR/MIN_EXPR unconditionally for real arguments.
1058	* gfortran.texi (Compiler Characteristics): Document MAX/MIN
1059	behavior wrt NaN.
1060
10612018-08-21  Nicolas Koenig  <koenigni@gcc.gnu.org>
1062	Thomas Koenig <tkoenig@gcc.gnu.org>
1063
1064	PR fortran/25829
1065	* gfortran.texi: Add description of asynchronous I/O.
1066	* trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
1067	as volatile.
1068	* trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
1069	st_wait_async and change argument spec from ".X" to ".w".
1070	(gfc_trans_wait): Pass ID argument via reference.
1071
10722018-08-16  Nathan Sidwell  <nathan@acm.org>
1073
1074	* cpp.c (dump_macro): Use cpp_user_macro_p.
1075
10762018-08-14  Janus Weil  <janus@gcc.gnu.org>
1077
1078	PR fortran/86116
1079	* interface.c (compare_type): Remove a CLASS/TYPE check.
1080	(compare_type_characteristics): New function that behaves like the old
1081	'compare_type'.
1082	(gfc_check_dummy_characteristics, gfc_check_result_characteristics):
1083	Call 'compare_type_characteristics' instead of 'compare_type'.
1084
10852018-08-12  Paul Thomas  <pault@gcc.gnu.org>
1086
1087	PR fortran/66679
1088	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Class array
1089	elements are returned as references to the data element. Get
1090	the class expression by stripping back the references. Use this
1091	for the element size.
1092
10932018-08-12  Paul Thomas  <pault@gcc.gnu.org>
1094
1095	PR fortran/86906
1096	* resolve.c (resolve_fl_variable_derived): Check if the derived
1097	type is use associated before checking for the host association
1098	error.
1099
11002018-08-10  Janus Weil  <janus@gcc.gnu.org>
1101
1102	PR fortran/57160
1103	* invoke.texi (frontend-optimize): Mention short-circuiting.
1104	* options.c (gfc_post_options): Disable -ffrontend-optimize with -Og.
1105	* resolve.c (resolve_operator): Warn about short-circuiting only with
1106	-ffrontend-optimize.
1107	* trans-expr.c (gfc_conv_expr_op): Use short-circuiting operators only
1108	with -ffrontend-optimize. Without that flag, make sure that both
1109	operands are evaluated.
1110
11112018-08-08  Nathan Sidwell  <nathan@acm.org>
1112
1113	* cpp.c (cb_file_change): Use linemap_included_from.
1114
11152018-08-07  Cesar Philippidis  <cesar@codesourcery.com>
1116
1117	* trans-stmt.h: Remove stale reference to trans-openacc.c.
1118
11192018-08-04  Janus Weil  <janus@gcc.gnu.org>
1120
1121	PR fortran/45521
1122	* interface.c (gfc_compare_interfaces): Apply additional
1123	distinguishability criteria of F08 to operator interfaces.
1124
11252018-07-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1126
1127	Revert 'AsyncI/O patch committed'
1128	2018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
1129		Thomas Koenig <tkoenig@gcc.gnu.org>
1130
1131	PR fortran/25829
1132	* gfortran.texi: Add description of asynchronous I/O.
1133	* trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
1134	as volatile.
1135	* trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
1136	st_wait_async and change argument spec from ".X" to ".w".
1137	(gfc_trans_wait): Pass ID argument via reference.
1138
11392018-07-25  Nicolas Koenig  <koenigni@gcc.gnu.org>
1140	Thomas Koenig <tkoenig@gcc.gnu.org>
1141
1142	PR fortran/25829
1143	* gfortran.texi: Add description of asynchronous I/O.
1144	* trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
1145	as volatile.
1146	* trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
1147	st_wait_async and change argument spec from ".X" to ".w".
1148	(gfc_trans_wait): Pass ID argument via reference.
1149
11502018-07-20  Martin Sebor  <msebor@redhat.com>
1151
1152	PR middle-end/82063
1153	* gfortran.h (gfc_handle_option): Change function argument
1154	to HOST_WIDE_INT.
1155	* options.c (gfc_handle_option): Same.
1156
11572018-07-20  Andrew Benson  <abenson@carnegiescience.edu>
1158
1159	* gfortran.h (gfc_symbol): Add pointer to next derived type.
1160	(gfc_dt_list, gfc_get_dt_list): Remove.
1161	(gfc_namespace): Replace gfc_dt_list with gfc_symbol.
1162	* parse.c (resolve_all_program_units): Replace gfc_free_dt_list() with
1163	simple nullification of gfc_derived_types.
1164	* resolve.c (resolve_global_procedure): Replace gfc_dt_list with
1165	gfc_symbol.
1166	(add_dt_to_dt_list): Change derived type linked list insertion to
1167	utilize dt_next pointers in gfc_symbol.
1168	* symbol.c (gfc_new_symbol, gfc_free_dt_list, gfc_symbol_done2)
1169	(get_iso_c_binding_dt, generate_isocbinding_symbol): Remove
1170	gfc_free_dt_list as gfc_dt_list is obsoleted. Change derived type
1171	linked list search/insertion to utilize dt_next pointers in gfc_symbol.
1172	* trans-types.c (gfc_get_derived_type): Change derived type linked
1173	list search to utilize dt_next pointers in gfc_symbol.
1174
11752018-07-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1176
1177	* trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR
1178	or IFN_FMIN/FMAX sequence to calculate the min/max when possible.
1179
11802018-07-18  Janus Weil  <janus@gcc.gnu.org>
1181	    Thomas Koenig  <tkoenig@gcc.gnu.org>
1182
1183	PR fortran/85599
1184	* dump-parse-tree.c (show_attr): Add handling of implicit_pure.
1185	* frontend-passes.c (do_warn_function_elimination): Do not warn for
1186	pure functions.
1187	* gfortran.h: Add prototypes for gfc_pure_function and
1188	gfc_implicit_pure_function.
1189	* gfortran.texi: Add chapter on evaluation of logical expressions.
1190	* invoke.texi: Mention that -Wfunction-elimination is implied
1191	by -Wextra.
1192	* lang.opt: Make -Wextra imply -Wfunction-elimination.
1193	* resolve.c (pure_function): Rename to gfc_pure_function.
1194	(gfc_implicit_pure_function): New function.
1195	(check_pure_function): Use it here.
1196	(impure_function_callback): New function.
1197	(resolve_operator): Call it via gfc_expr_walker.
1198
11992018-07-16  Fritz Reese  <fritzoreese@gmail.com>
1200
1201	PR fortran/83184
1202	* decl.c (match_old_style_init): Initialize locus of variable expr when
1203	creating a data variable.
1204	(match_clist_expr): Verify array is explicit shape/size before
1205	attempting to allocate constant array constructor.
1206
12072018-07-16  Fritz Reese  <fritzoreese@gmail.com>
1208
1209	PR fortran/86417
1210	* module.c (mio_component): Set component->loc when loading from module.
1211
12122018-07-10  Jakub Jelinek  <jakub@redhat.com>
1213
1214	PR fortran/86421
1215	* module.c (omp_declare_simd_clauses): Add LINEAR with _REF, _VAL and
1216	_UVAL suffixes.
1217	(mio_omp_declare_simd): Save and restore ref, val and uval modifiers
1218	on linear clauses.  Initialize n->where to gfc_current_locus.
1219
12202018-07-05  Paul Thomas  <pault@gcc.gnu.org>
1221
1222	PR fortran/86408
1223	* resolve.c.c (resolve_contained_fntype): Reference to C418 is
1224	in F2008 and not F2003.
1225	(resolve_function): Ditto in error message. Also, exclude
1226	deferred character length results from the error.
1227
12282018-07-05  Fritz Reese  <fritzoreese@gmail.com>
1229
1230	PR fortran/83183
1231	PR fortran/86325
1232	* expr.c (class_allocatable, class_pointer, comp_allocatable,
1233	comp_pointer): New helpers.
1234	(component_initializer): Generate EXPR_NULL for allocatable or pointer
1235	components. Do not generate initializers for components within BT_CLASS.
1236	Do not assign to comp->initializer.
1237	(gfc_generate_initializer): Use new helpers; move code to generate
1238	EXPR_NULL for class allocatable components into component_initializer().
1239
12402018-07-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1241
1242	PR fortran/82009
1243	* trans-decl.c (gfc_process_block_locals): Delete assert and set
1244	saved_local_decls = NULL_TREE.
1245
12462018-07-02  Richard Biener  <rguenther@suse.de>
1247
1248	PR lto/86321
1249	* trans-types.c (gfc_get_array_type_bounds): Unshare TYPE_FIELDs
1250	for the distinct type copy.
1251
12522018-07-02  Paul Thomas  <pault@gcc.gnu.org>
1253
1254	PR fortran/82969
1255	PR fortran/86242
1256	* trans-array.c (structure_alloc_comps): Do not explicitly copy
1257	procedure pointer components.
1258
12592018-07-02  Paul Thomas  <pault@gcc.gnu.org>
1260
1261	PR fortran/45305
1262	* expr.c : Add a prototype for scalarize_intrinsic_call.
1263	(gfc_simplify_expr): Use scalarize_intrinsic_call for elemental
1264	intrinsic function calls.
1265	(scalarize_intrinsic_call): Add 'init_flag' argument. Check if
1266	the expression or any of the actual argument expressions are
1267	NULL. Before calling gfc_check_init_expr, check 'init_flag'.
1268	Only simplify the scalarized expressions if there are no errors
1269	on the stack.
1270	(gfc_check_init_expr): Set 'init_flag' true in the call to
1271	scalarize_intrinsic_call.
1272
12732018-06-28  Fritz Reese  <fritzoreese@gmail.com>
1274
1275	PR fortran/82865
1276	* decl.c (gfc_match_type): Refactor and check for PDT declarations.
1277
12782018-06-28  Martin Liska  <mliska@suse.cz>
1279
1280	* gfortranspec.c: Include opt-suggestions.h.
1281
12822018-06-25  Fritz Reese  <fritzoreese@gmail.com>
1283
1284	PR fortran/82972
1285	PR fortran/83088
1286	PR fortran/85851
1287	* expr.c (component_initializer): Assign init expr to c->initializer.
1288	(generate_isocbinding_initializer): New.
1289	(gfc_generate_initializer): Call generate_isocbinding_initializer to
1290	generate initializers for c_ptr and c_funptr with -finit-derived.
1291
12922018-06-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1293
1294	PR fortran/85983
1295	* interface.c (check_dtio_interface1): Delete assert.
1296
12972018-06-22  Paul Thomas  <pault@gcc.gnu.org>
1298	    Rainer Orth  <ro@gcc.gnu.org>
1299
1300	PR fortran/86281
1301	* resolve.c (resolve_contained_fntype): Check for the charlen
1302	before testing the length.
1303
13042018-06-21  Paul Thomas  <pault@gcc.gnu.org>
1305
1306	PR fortran/49630
1307	* resolve.c (resolve_contained_fntype): Change standard ref.
1308	from F95 to F2003: C418. Correct a spelling error in a comment.
1309	It is an error for an abstract interface to have an assumed
1310	character length result.
1311	* trans-expr.c (gfc_conv_procedure_call): Likewise change the
1312	standard reference.
1313
13142018-06-21  Paul Thomas  <pault@gcc.gnu.org>
1315
1316	PR fortran/83118
1317	* resolve.c (resolve_ordinary_assign): Force the creation of a
1318	vtable for assignment of non-polymorphic expressions to an
1319	unlimited polymorphic object.
1320	* trans-array.c (gfc_alloc_allocatable_for_assignment): Use the
1321	size of the rhs type for such assignments. Set the dtype, _len
1322	and vptrs appropriately.
1323	* trans-expr.c (gfc_trans_assignment): Force the use of the
1324	_copy function for these assignments.
1325
13262018-06-20  Chung-Lin Tang <cltang@codesourcery.com>
1327	    Thomas Schwinge <thomas@codesourcery.com>
1328	    Cesar Philippidis  <cesar@codesourcery.com>
1329
1330	* gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize
1331	bitfields.
1332	* openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add
1333	OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
1334	(gfc_match_omp_clauses): Update handling of copy, copyin, copyout,
1335	create, deviceptr, present_of_*. Add support for finalize and
1336	if_present.
1337	(OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses.
1338	(OACC_KERNELS_CLAUSES): Likewise.
1339	(OACC_DATA_CLAUSES): Likewise.
1340	(OACC_DECLARE_CLAUSES): Likewise.
1341	(OACC_UPDATE_CLAUSES): Add IF_PRESENT clause.
1342	(OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses.
1343	(OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause.
1344	(gfc_match_oacc_declare): Update to OpenACC 2.5 semantics.
1345	* trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT
1346	and FINALIZE.
1347
13482018-06-18  Eric Botcazou  <ebotcazou@adacore.com>
1349
1350	* trans-decl.c (gfc_get_fake_result_decl): Revert latest change.
1351
13522018-06-17  Eric Botcazou  <ebotcazou@adacore.com>
1353
1354	* trans-decl.c (nonlocal_dummy_decl_pset): Delete.
1355	(nonlocal_dummy_decls): Likewise.
1356	(gfc_nonlocal_dummy_array_decl): Likewise.
1357	(gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl.
1358	(gfc_get_fake_result_decl): Do not generate a new DECL if simply
1359	reusing the result of a recursive call.
1360	(gfc_generate_function_code): Do not create, insert and destroy
1361	nonlocal_dummy_decls.
1362
13632018-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1364
1365	PR fortran/86110
1366	* array.c (gfc_resolve_character_array_constructor): Avoid NULL
1367	pointer dereference.
1368
13692018-06-13  Cesar Philippidis  <cesar@codesourcery.com>
1370
1371	PR fortran/85703
1372	* parse.c (decode_oacc_directive): Set gfc_matching_function
1373	to false.
1374	(decode_omp_directive): Likewise.
1375
13762018-06-13  Cesar Philippidis  <cesar@codesourcery.com>
1377
1378	PR fortran/85702
1379	* openmp.c (gfc_match_oacc_wait): Use %C to report error location.
1380
13812018-06-12  David Malcolm  <dmalcolm@redhat.com>
1382
1383	PR other/69968
1384	* misc.c (gfc_closest_fuzzy_match): Update for renaming of
1385	levenshtein_distance to get_edit_distance.
1386
13872018-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>
1388
1389	PR fortran/44491
1390	* expr.c (gfc_check_assign): Select non-NULL locus.
1391
13922018-06-11  Janus Weil  <janus@gcc.gnu.org>
1393
1394	PR fortran/45521
1395	* interface.c (compare_ptr_alloc): New function.
1396	(generic_correspondence): Call it.
1397
13982018-06-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
1399
1400	* gfortran.h (gfc_expr): Add no_bounds_check field.
1401	* frontend-passes.c (get_array_inq_function): Set no_bounds_check
1402	on function and function argument.
1403	(inline_matmul_assign): Set no_bounds_check on zero expression
1404	and on lhs of zero expression.
1405	Also handle A1B2 case if realloc on assigment is active.
1406	* trans-array.c (gfc_conv_array_ref): Don't do range checking
1407	if expr has no_bounds_check set.
1408	(gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr
1409	has it set.
1410	* trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check
1411	on lss and lss if the corresponding expressions have it set.
1412
14132018-06-10  Dominique d'Humieres  <dominiq@gcc.gnu.org>
1414
1415	PR fortran/79854
1416	* trans-const.c: Remove include "diagnostic-core.h".
1417	(gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable.
1418
14192018-06-10  Janus Weil  <janus@gcc.gnu.org>
1420
1421	PR fortran/85088
1422	* decl.c (match_attr_spec): Synchronize the DECL_* enum values with the
1423	INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec'
1424	and remove a TODO note.
1425	* gfortran.h: Add a comment to sym_intent.
1426
14272018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1428
1429	PR fortran/38351
1430	* resolve.c (resolve_operator): Provide better error message for
1431	derived type entity used in an binary intrinsic numeric operator.
1432
14332018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1434
1435	PR fortran/85138
1436	PR fortran/85996
1437	PR fortran/86051
1438	* decl.c (gfc_match_char_spec): Use private namespace in attempt to
1439	reduce a charlen to a constant.
1440
14412018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1442
1443	PR fortran/78278
1444	* data.c (gfc_assign_data_value): Re-arrange code to allow for
1445	an error for double initialization of CHARACTER entities.
1446
14472018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1448
1449	PR fortran/63514
1450	* symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588.
1451
14522018-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1453
1454	PR fortran/85631
1455	* trans.h (gfc_ss): Add field no_bounds_check.
1456	* trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and
1457	ss->no_bounds_check is set, do not use runtime checks.
1458	* trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check
1459	for reallocatable lhs.
1460
14612018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1462
1463	PR fortran/86059
1464	* array.c (match_array_cons_element): NULL() cannot be in an
1465	array constructor.
1466
14672018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1468
1469	PR fortran/78571
1470	* data.c (create_character_initializer): Return early if type is
1471	incompatible with CHARACTER.
1472
14732018-06-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1474
1475	PR fortran/86045
1476	* simplify.c (gfc_simplify_mod): Re-arrange code to test whether
1477	'P' is zero and issue an error if it is.
1478
14792018-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1480
1481	PR fortran/85641
1482	* frontend-passes.c (is_fe_temp): Add prototype.
1483	(realloc_string_callback): Early return for frontend-generated
1484	temporary.
1485
14862018-06-05  Cesar Philippidis  <cesar@codesourcery.com>
1487
1488	PR fortran/85701
1489
1490	* openmp.c (gfc_resolve_oacc_declare): Error on functions and
1491	subroutine data clause arguments.
1492
14932018-06-04  Steven G. Kargl  <kargl@gcc.gnu.org>
1494
1495	PR fortran/85981
1496	* resolve.c (resolve_allocate_deallocate): Check errmsg is default
1497	character kind.
1498
14992018-06-03  Paul Thomas  <pault@gcc.gnu.org>
1500
1501	PR fortran/36497
1502	* decl.c (variable_decl): Use gfc_add_type for cray pointees.
1503
15042018-06-01  Steven G. Kargl  <kargl@gcc.gnu.org>
1505
1506	PR fortran/63570
1507	* check.c (gfc_check_random_init): New function. Check arguments of
1508	RANDOM_INIT.
1509	* gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token.
1510	* intrinsic.c (add_subroutines): Add RANDOM_INIT to list of
1511	subroutines.
1512	(gfc_check_intrinsic_standard): Introduce Fortran 2018 check.
1513	* intrinsic.h: Add prototypes for gfc_check_random_init and
1514	gfc_resolve_random_init
1515	* intrinsic.texi: Document new intrinsic subprogram.
1516	* iresolve.c (gfc_resolve_random_init): Resolve routine name.
1517	* trans-decl.c: Declare gfor_fndecl_random_init
1518	* trans-intrinsic.c (conv_intrinsic_random_init): New function.
1519	Translate call to RANDOM_INIT.
1520	(gfc_conv_intrinsic_subroutine): Call it.
1521 	* trans.h: Declare gfor_fndecl_random_init
1522
15232018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
1524
1525	* decl.c (match_data_constant):  Fortran 2018 allows pointer
1526	initialization in a data statement.
1527
15282018-05-25  Janus Weil  <janus@gcc.gnu.org>
1529
1530	PR fortran/85839
1531	* match.c (gfc_match_block_data): Call gfc_notify_std to warn about
1532	an obsolescent feature in Fortran 2018.
1533	(gfc_match_equivalence): Ditto.
1534	* resolve.c (resolve_common_blocks): Ditto.
1535	(gfc_resolve_forall): Ditto.
1536	* symbol.c (gfc_define_st_label): Ditto.
1537
15382018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1539
1540	PR fortran/85543
1541	* resolve.c (update_current_proc_array_outer_dependency): Avoid NULL
1542	pointer dereference.
1543
15442018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1545
1546	PR fortran/85780
1547	* resolve.c (resolve_fl_procedure): Avoid NULL dereference.
1548
15492018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1550
1551	PR fortran/85779
1552	* decl.c (gfc_match_derived_decl): Fix NULL point dereference.
1553
15542018-05-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1555
1556	PR fortran/85895
1557	* resolve.c (resolve_sync): Resolve expression before checking for
1558	an error.
1559
15602018-05-22  Janus Weil  <janus@gcc.gnu.org>
1561
1562	PR fortran/85841
1563	* libgfortran.h: Remove the macros GFC_STD_F2008_TS and
1564	GFC_STD_OPT_F08TS.
1565	* error.c (notify_std_msg): Remove GFC_STD_F2008_TS.
1566	* options.c (set_default_std_flags): Ditto.
1567	(gfc_handle_option): Make -std=f2008ts an alias for -std=f2018.
1568	* array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by
1569	GFC_STD_F2018.
1570	* check.c (gfc_check_atomic, gfc_check_event_query,
1571	gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc,
1572	gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto.
1573	* decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto.
1574	* intrinsic.c (add_functions, add_subroutines,
1575	gfc_check_intrinsic_standard): Ditto.
1576	* iso-c-binding.def: Ditto.
1577	* iso-fortran-env.def: Ditto.
1578	* match.c (gfc_match_event_post, gfc_match_event_wait,
1579	gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team,
1580	gfc_match_end_team, gfc_match_sync_team): Ditto.
1581	* gfortran.texi: Remove mention of -std=f2008ts.
1582	Move TSs into F2018 section.
1583	* invoke.texi: Update documentation of -std=f2008ts.
1584
15852018-05-21  Janus Weil  <janus@gcc.gnu.org>
1586
1587	PR fortran/85841
1588	* libgfortran.h: New macros GFC_STD_OPT_*.
1589	* error.c (notify_std_msg): New function.
1590	(gfc_notify_std): Adjust such that it can handle combinations of
1591	GFC_STD_* flags in the 'std' argument, not just a single one.
1592	* match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if
1593	in Fortran 2018.
1594	(gfc_match_stopcode): Use GFC_STD_OPT_* macros.
1595	* options.c (set_default_std_flags): Warn for F2018 deleted features
1596	by default.
1597	(gfc_handle_option): F2018 deleted features are allowed in earlier
1598	standards.
1599	* symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject
1600	nonblock do constructs in Fortran 2018.
1601
16022018-05-20  Paul Thomas  <pault@gcc.gnu.org>
1603
1604	PR fortran/80657
1605	* resolve.c (flag_fn_result_spec): Use the 'sym' argument to
1606	test for self refs to the function result in the character len
1607	expression. If a self reference is found, emit an error and
1608	return true.
1609	(resolve_fntype): Use the function symbol in the calls to the
1610	above.
1611
16122018-05-20  Paul Thomas  <pault@gcc.gnu.org>
1613
1614	PR fortran/49636
1615	* trans-array.c (gfc_get_array_span): Renamed from
1616	'get_array_span'.
1617	(gfc_conv_expr_descriptor): Change references to above.
1618	* trans-array.h : Add prototype for 'gfc_get_array_span'.
1619	* trans-intrinsic.c (gfc_conv_associated): Add pre and post
1620	blocks for 'arg1'.
1621	* trans-stmt.c (trans_associate_var): If the associate name is
1622	a subref array pointer, use gfc_get_array_span for the span.
1623
16242018-05-20  Paul Thomas  <pault@gcc.gnu.org>
1625
1626	PR fortran/82275
1627	* match.c (gfc_match_type_spec): Go through the array ref and
1628	decrement 'rank' for every dimension that is an element.
1629
16302018-05-19  Paul Thomas  <pault@gcc.gnu.org>
1631
1632	PR fortran/82923
1633	PR fortran/66694
1634	PR fortran/82617
1635	* trans-array.c (gfc_alloc_allocatable_for_assignment): Set the
1636	charlen backend_decl of the rhs expr to ss->info->string_length
1637	so that the value in the current scope is used.
1638
16392018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1640
1641	PR fortran/63529
1642	* gfortran.texi: Clarify documentation for Cray pointer and
1643	assumed-sized array.
1644
16452018-05-13  Paul Thomas  <pault@gcc.gnu.org>
1646
1647	PR fortran/85742
1648	* trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation
1649	of 'size'. If the element type is a pointer use the size of the
1650	TREE_TYPE of the type, unless it is VOID_TYPE. In this latter
1651	case, set the size to zero.
1652
16532018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1654
1655	* gfortran.h: Remove prototype.
1656	* symbol.c (gfc_new_undo_checkpoint): Remove unused function.
1657
16582018-05-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1659
1660	PR fortran/85542
1661	* expr.c (check_inquiry): Avoid NULL pointer dereference.
1662
16632018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1664
1665	PR fortran/85687
1666	* check.c (gfc_check_rank): Check that the argument is a data object.
1667
16682018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1669
1670	PR fortran/85521
1671	* array.c (gfc_resolve_character_array_constructor): Substrings
1672	with upper bound smaller than lower bound are zero length strings.
1673
16742018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1675
1676	PR fortran/70870
1677	* data.c (gfc_assign_data_value): Check that a data object does
1678	not also have default initialization.
1679
16802018-05-10  Marek Polacek  <polacek@redhat.com>
1681
1682	PR fortran/85735
1683	* options.c (gfc_post_options): Set main_input_filename.
1684
16852018-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
1686
1687	PR fortran/54613
1688	* intrinsic.texi: Document BACK for MINLOC and MAXLOC.
1689
16902018-05-10  Paul Thomas  <pault@gcc.gnu.org>
1691
1692	PR fortran/68846
1693	PR fortran/70864
1694	* resolve.c (get_temp_from_expr): The temporary must not have
1695	dummy or intent attributes.
1696
16972018-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1698
1699	PR fortran/54613
1700	* check.c (gfc_check_minmaxloc): Remove error for BACK not being
1701	implemented.  Use gfc_logical_4_kind for BACK.
1702	* simplify.c (min_max_choose): Add optional argument back_val.
1703	Handle it.
1704	(simplify_minmaxloc_to_scalar): Add argument back_val. Pass
1705	back_val to min_max_choose.
1706	(simplify_minmaxloc_to_nodim): Likewise.
1707	(simplify_minmaxloc_to_array): Likewise.
1708	(gfc_simplify_minmaxloc): Add argument back, handle it.
1709	Pass back_val to specific simplification functions.
1710	(gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back,
1711	pass it on to gfc_simplify_minmaxloc.
1712	(gfc_simplify_maxloc): Likewise.
1713	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust
1714	comment. If BACK is true, use greater or equal (or lesser or
1715	equal) insteal of greater (or lesser). Mark the condition of
1716	having found a value which exceeds the limit as unlikely.
1717
17182018-05-07  Jeff Law  <law@redhat.comg>
1719
1720	* scanner.c (preprocessor_line): Call linemap_add after a line
1721	directive that changes the current filename.
1722
17232018-05-06  Andre Vehreschild  <vehre@gcc.gnu.org>
1724
1725	PR fortran/85507
1726	* dependency.c (gfc_dep_resolver): Revert looking at coarray dimension
1727	introduced by r259385.
1728	* trans-intrinsic.c (conv_caf_send): Always report a dependency for
1729	same variables in coarray assignments.
1730
17312018-05-02  Tom de Vries  <tom@codesourcery.com>
1732
1733	PR libgomp/82428
1734	* f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define.
1735
17362018-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1737
1738	PR fortran/85520
1739	* decl.c (gfc_match_char_spec): Check for negative length and set to 0.
1740
17412018-04-14  Andre Vehreschild  <vehre@gcc.gnu.org>
1742
1743	PR fortran/81773
1744	PR fortran/83606
1745	* dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored
1746	during dependency computation.  They define no data dependency.
1747	* trans-array.c (conv_array_index_offset): The stride can not be set
1748	here, prevent fail.
1749	* trans-intrinsic.c (conv_caf_send): Add creation of temporary array
1750	for caf_get's result and copying to the array with vectorial
1751	indexing.
1752
17532018-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1754
1755	PR fortran/85387
1756	* frontend-passes.c (traverse_io_block): Check for start, end or
1757	stride being defined by an outer implied DO loop.
1758
17592018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1760
1761	PR fortran/83064
1762	PR testsuite/85346
1763	* trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind
1764	for annotation and remove dependence on -ftree-parallelize-loops.
1765
17662018-04-10  Jakub Jelinek  <jakub@redhat.com>
1767
1768	PR fortran/85313
1769	* openmp.c (resolve_omp_do): Remove bogus if (j < i) break;.
1770	(resolve_oacc_nested_loops): Likewise.  Formatting fix.
1771
17722018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1773
1774	PR fortran/83064
1775	* trans-stmt.c (gfc_trans_forall_loop): Remove annotation for
1776	parallell processing of DO CONCURRENT -ftree-parallelize-loops
1777	is set.
1778
17792018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1780
1781	PR fortran/51260
1782	* resolve.c (resolve_variable): Simplify cases where access to a
1783	parameter array results in a single constant.
1784
17852018-04-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1786
1787	PR fortran/85102
1788	* decl.c (variable_decl): If upper or lower bounds simplify
1789	to a constant, use that.
1790
17912018-03-30  Paul Thomas  <pault@gcc.gnu.org>
1792
1793	PR fortran/84931
1794	* simplify.c (gfc_convert_constant): Handle case of array
1795	constructors within an array that has no iterator and improve
1796	the conciseness of this section of code.
1797
17982017-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1799
1800	PR fortran/85111
1801	* array.c (gfc_resolve_character_array_constructor): Early
1802	exit for zero-size arrays.
1803	* simplify.c (simplify_transformation_to_array): Exit early
1804	if the result size is zero.
1805	(simplify_minmaxloc_to_array): Likewise.
1806
18072018-03-28  Mikael Morin  <mikael@gcc.gnu.org>
1808
1809	PR fortran/69497
1810	* symbol.c (gfc_symbol_done_2): Start freeing namespaces
1811	from the root.
1812	(gfc_free_namespace): Restore assert (revert r258839).
1813
18142018-03-28  Jakub Jelinek  <jakub@redhat.com>
1815
1816	* gfortran.h (gfc_dt): Rename default_exp field to dec_ext.
1817	* ioparm.def (IOPARM_dt_default_exp): Rename to ...
1818	(IOPARM_dt_dec_ext): ... this.
1819	* trans-io.c (build_dt): Adjust for default_exp renaming to
1820	dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext.
1821	* io.c (match_io): Likewise.
1822
18232018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1824
1825	PR fortran/85084
1826	* frontend-passes.c (gfc_run_passes): Do not run front-end
1827	optimizations if a previous error occurred.
1828
18292018-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1830	Harald Anlauf  <anlauf@gmx.de>
1831
1832	PR fortran/85083
1833	* primary.c (gfc_convert_to_structure_constructor): Check
1834	conformance of argument types in structure constructor.
1835
18362018-03-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1837
1838	PR fortran/66709
1839	* io.c: Include constructor.h.
1840	(resolve_tag_format): For a constant character array, concatenate
1841	into a single character expression.
1842
18432018-03-25  Seth Johnson <johnsonsr@ornl.gov>
1844	Dominique d'Humieres  <dominiq@gcc.gnu.org>
1845
1846	PR fortran/84924
1847	* check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable
1848	scalar derived type with -std=f2003 and -std=f2008.
1849
18502018-03-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1851	    Dominique d'Humieres  <dominiq@gcc.gnu.org>
1852
1853	PR fortran/69497
1854	* symbol.c (gfc_free_namespace): Delete the assert and only if
1855	refs count is equals zero, free the namespace. Otherwise,
1856	something is halfway and other errors will resound.
1857
18582018-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1859
1860	PR fortran/70068
1861	* expr.c (find_substring_ref): Change types of start, end
1862	and length variables to gfc_charlen_t. Set length to zero
1863	for empty substring.
1864
18652018-03-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1866
1867	PR fortran/42651
1868	* decl.c (check_function_name): Improved error message
1869	(gfc_match_volatile, gfc_match_asynchronous) Use check_function_name.
1870
18712018-03-22  Steven G. Kargl  <kargl@gcc.gnu.org>
1872
1873	PR fortran/84922
1874	* decl.c (get_proc_name): If the MODULE prefix appears in interface
1875	body, then it must appear on the contained subroutine or function.
1876	While here, fix nearby mis-indented code.
1877
18782018-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1879	Harald Anlauf  <anlauf@gmx.de>
1880
1881	PR fortran/84957
1882	* trans-types.c (gfc_sym_type): Do not dereference NULL pointer.
1883
18842018-03-21  Janne Blomqvist  <jb@gcc.gnu.org>
1885
1886	PR fortran/84615
1887	* trans-expr.c (gfc_conv_procedure_call): Convert charlen to
1888	gfc_charlen_type_node when calling procedure.
1889
18902018-03-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1891
1892	PR fortran/85001
1893	* interface.c (symbol_rank): Remove bogus null pointer check that
1894	crept in when translating a ternary operator into an if-else
1895	constructor.
1896
18972018-03-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1898
1899	PR fortran/84931
1900	* simplify.c (gfc_convert_constant): Correctly handle iterators
1901	for type conversion.
1902
19032018-03-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1904
1905	PR fortran/77414
1906	* decl.c (get_proc_name):  Check for a subroutine re-defined in
1907	the contain portion of a subroutine.  Change language of existing
1908	error message to better describe the issue. While here fix whitespace
1909	issues.
1910
19112018-03-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1912
1913	PR fortran/65453
1914	* decl.c (get_proc_name): Catch clash between a procedure statement
1915	and a contained subprogram
1916
19172018-03-16  Steven G. Kargl  <kargl@gcc.gnu.org>
1918
1919	PR fortran/69395
1920	* decl.c (merge_array_spec): Correct the error condition.
1921
19222018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1923
1924	PR fortran/78741
1925	* decl.c (get_proc_name):  Check for clash of entry name with
1926	subroutine name.
1927
19282018-03-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1929
1930	PR fortran/69395
1931	* decl.c (merge_array_spec): Limit the merging to maximum allowed
1932	dimensions, and issue error message if limit is exceeded.
1933
19342018-03-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1935
1936	* check.c (gfc_check_kill_sub):  Remove check for INTEGER(4) or (8).
1937	* intrinsic.c (add_functions): Remove reference to gfc_resolve_kill.
1938	(add_subroutines): Remove reference to gfc_resolve_kill_sub.
1939	* intrinsic.texi: Update documentation.
1940	* iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove.
1941	* trans-decl.c (gfc_build_intrinsic_function_decls):  Add
1942	gfor_fndecl_kill and gfor_fndecl_kill_sub
1943	* trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new
1944	functions.
1945	(gfc_conv_intrinsic_function): Use conv_intrinsic_kill.
1946	(gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub.
1947	* trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub.
1948
19492018-03-11  Paul Thomas  <pault@gcc.gnu.org>
1950
1951	PR fortran/84546
1952	* trans-array.c (structure_alloc_comps): Make sure that the
1953	vptr is copied and that the unlimited polymorphic _len is used
1954	to compute the size to be allocated.
1955	* trans-expr.c (gfc_get_class_array_ref): If unlimited, use the
1956	unlimited polymorphic _len for the offset to the element.
1957	(gfc_copy_class_to_class): Set the new 'unlimited' argument.
1958	* trans.h : Add the boolean 'unlimited' to the prototype.
1959
19602018-03-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1961
1962	PR fortran/83939
1963	* resolve.c (resolve_fl_procedure): Enforce F2018:C15100.
1964
19652018-03-11  Steven G. Kargl  <kargls@gcc.gnu.org>
1966
1967	* check.c (gfc_check_kill):  Check pid and sig are scalar.
1968	(gfc_check_kill_sub): Restrict kind to 4 and 8.
1969	* intrinsic.c (add_function): Sort keyword list.  Add pid and sig
1970	keywords for KILL.  Remove redundant *back="back" in favor of the
1971	original *bck="back".
1972	(add_subroutines): Sort keyword list.  Add pid and sig keywords
1973	for KILL.
1974	* intrinsic.texi: Fix documentation to consistently use pid and sig.
1975	* iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8.  Choose the
1976	correct function.
1977	(gfc_resolve_rename_sub): Add comment.
1978
19792018-03-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1980
1981	PR fortran/66128
1982	* simplify.c (simplify_transformation): Return default result for
1983	empty array argument.
1984	(gfc_simplify_all): Remove special-case handling for zerosize.
1985	(gfc_simplify_any): Likewise.
1986	(gfc_simplify_count): Likewise.
1987	(gfc_simplify_iall): Likewise.
1988	(gfc_simplify_iany): Likewise.
1989	(gfc_simplify_iparity): Likewise.
1990	(gfc_simplify_minval): Likewise.
1991	(gfc_simplify_maxval): Likewise.
1992	(gfc_simplify_norm2): Likewise.
1993	(gfc_simplify_product): Likewise.
1994	(gfc_simplify_sum): Likewise.
1995
19962018-03-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1997
1998	PR fortran/84734
1999	* arith.c (check_result, eval_intrinsic):  If result overflows, pass
2000	the expression up the chain instead of a NULL pointer.
2001
20022018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>
2003
2004	PR fortran/64124
2005	PR fortran/70409
2006	* decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
2007
20082017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2009
2010	PR fortran/84697
2011	PR fortran/66128
2012	* expr.c (simplify_parameter_variable): If p is a size zero array
2013	and not an ARRAY_EXPR insert an empty array constructor and
2014	return.
2015	* gfortran.h: Add prototype for gfc_is_size_zero_array.
2016	* simplify.c (is_size_zero_array): Make non-static and rename into
2017	(gfc_is_size_zero_array):  Check for parameter arrays of zero
2018	size by comparing shape and absence of constructor.
2019	(gfc_simplify_all): Use gfc_is_size_zero_array instead of
2020	is_size_zero_array.
2021	(gfc_simplify_count): Likewise.
2022	(gfc_simplify_iall): Likewise.
2023	(gfc_simplify_iany): Likewise.
2024	(gfc_simplify_iparity): Likewise.
2025	(gfc_simplify_minval): Likewise.
2026	(gfc_simplify_maxval): Likewise.
2027	(gfc_simplify_product): Likewise.
2028	(gfc_simplify_sum): Likewise.
2029
20302018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>
2031
2032	PR fortran/56667
2033	* primary.c (match_sym_complex_part): Give the matcher for an implied
2034	do-loop a chance to run.
2035
20362018-03-03  Harald Anlauf  <anlauf@gmx.de>
2037
2038	PR fortran/71085
2039	* trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
2040	dereference NULL pointer.
2041
20422018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
2043
2044	PR fortran/66128
2045	* simplify.c (is_size_zero_array): New function to check for size
2046	zero array.
2047	(gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
2048	 gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
2049	 gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
2050	 gfc_simplify_product, gfc_simplify_sum): Use it, and implement
2051	requirements from F2018.
2052
20532018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>
2054
2055	PR fortran/51434
2056	* simplify.c (gfc_simplify_transfer): Resolve mold.
2057
20582018-03-03  Paul Thomas  <pault@gcc.gnu.org>
2059
2060	PR fortran/80965
2061	* resolve.c (build_loc_call): Change symtree name from 'loc' to
2062	'_loc'.
2063
20642018-03-01  Paul Thomas  <pault@gcc.gnu.org>
2065
2066	PR fortran/84219
2067	* target-memory.c (gfc_interpret_derived): Assert that BT_VOID
2068	components are caf tokens.
2069	(gfc_target_interpret_expr): Treat BT_VOID expressions as
2070	integers.
2071
20722018-03-01  Paul Thomas  <pault@gcc.gnu.org>
2073
2074	PR fortran/84538
2075	* class.c (class_array_ref_detected): Remove the condition that
2076	there be no reference after the array reference.
2077	(find_intrinsic_vtab): Remove excess whitespace.
2078	* trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
2079	as 'base and call build_class_array_ref earlier.
2080
20812018-02-28  Paul Thomas  <pault@gcc.gnu.org>
2082
2083	PR fortran/83901
2084	* trans-stmt.c (trans_associate_var): Make sure that the se
2085	expression is a pointer type before converting it to the symbol
2086	backend_decl type.
2087
20882018-02-25  Steven G. Kargl  <kargl@gcc.gnu.org>
2089
2090	PR fortran/83633
2091	* decl.c (variable_decl): Check that an explicit-shape-array with
2092	nonconstant bounds is allowed.
2093
20942018-02-25  Paul Thomas  <pault@gcc.gnu.org>
2095
2096	PR fortran/84523
2097	* trans-intrinsic.c (gfc_conv_allocated): If the argument se
2098	has a pre block, add it to the expression pre block.
2099
21002018-02-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
2101
2102	PR fortran/78238
2103	* gfortran.h (gfc_integer_4_kind): Define.
2104	* resolve.c (resolve_select_type): Make sure that the
2105	kind of c->high is gfc_integer_4_kind.
2106
21072018-02-24  Steven G. Kargl <kargl@gcc.gnu.org>
2108
2109	PR fortran/30792
2110	* decl.c (gfc_match_data): Check for invalid substring in
2111	data-implied-do
2112
21132018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
2114
2115	* intrinsic.texi: Arguments to MATMUL cannot both be rank one.
2116
21172018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
2118
2119	PR fortran/84511
2120	* trans-io.c (transfer_expr): Deal with C_LOC in transfer statement.
2121
21222018-02-23  Steven G. Kargl  <kargl@gcc.gnu.org>
2123
2124	PR fortran/84346
2125	* interface.c (compare_actual_formal): Issue error if keyword is
2126	used in a statement function.
2127
21282018-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2129
2130	PR fortran/84506
2131	* trans-io.c (set_parameter_value_inquire): Adjust range check of
2132	negative unit values for kind=8 units to the kind=4 negative limit.
2133
21342018-02-23  Paul Thomas  <pault@gcc.gnu.org>
2135
2136	PR fortran/83149
2137	* trans-types.c (gfc_sym_type): Test sym->ns->proc_name before
2138	accessing its components.
2139
21402018-02-23  Paul Thomas  <pault@gcc.gnu.org>
2141
2142	PR fortran/83149
2143	* trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name
2144	before accessing its components.
2145
21462018-02-23  Paul Thomas  <pault@gcc.gnu.org>
2147
2148	PR fortran/83148
2149	* trans-const.c : Clean up some whitespace issues.
2150	* trans-expr.c (gfc_conv_initializer): If an iso_c_binding
2151	derived type has a kind value of zero, set it to the default
2152	integer kind.
2153
21542018-02-23  Janne Blomqvist  <jb@gcc.gnu.org>
2155
2156	PR fortran/84519
2157	* trans-decl.c (gfc_build_builtin_function_decls): Add bool
2158	argument to stop and error stop decls.
2159	* trans-stmt.c (gfc_trans_stop): Add false value to argument
2160	lists.
2161
21622018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
2163
2164	PR 78534
2165	PR 84509
2166	* trans-decl.c (gfc_build_builtin_function_decls): Pass
2167	gfc_int8_type node to pause_numeric, size_type_node to
2168	pause_string.
2169	* trans-stmt.c (gfc_trans_pause): Likewise.
2170
21712018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>
2172
2173	* gfortran.texi: Update Coarray API description.
2174	* trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
2175	character lengths, int for exit codes.
2176	(generate_coarray_sym_init): Use size_t for character length.
2177	* trans-intrinsic.c (conv_co_collective): Likewise.
2178	* trans-stmt.c (gfc_trans_lock_unlock): Likewise.
2179	(gfc_trans_event_post_wait): Likewise.
2180	(gfc_trans_sync): Likewise.
2181	(gfc_trans_stop): Use size_t for character lengths, int for exit
2182	codes.
2183
21842018-02-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
2185
2186	PR fortran/48890
2187	PR fortran/83823
2188	* primary.c (gfc_convert_to_structure_constructor):
2189	For a constant string constructor, make sure the length
2190	is correct.
2191
21922018-02-19  Paul Thomas  <pault@gcc.gnu.org>
2193
2194	PR fortran/83344
2195	PR fortran/83975
2196	* resolve.c (resolve_assoc_var): Rearrange the logic for the
2197	determination of the character length of associate names. If
2198	the associate name is missing a length expression or the length
2199	expression is not a constant and the target is not a variable,
2200	make the associate name allocatable and deferred length.
2201	* trans-decl.c (gfc_get_symbol_decl): Null the character length
2202	backend_decl for deferred length associate names that are not
2203	variables. Set 'length' to gfc_index_zero_node for character
2204	associate names, whose character length is a PARM_DECL.
2205
22062018-02-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
2207
2208	PR fortran/35339
2209	* frontend-passes.c (traverse_io_block): Remove workaround for
2210	PR 80945.
2211
22122018-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>
2213
2214	* gfortran.texi: Document additional src/dst_type.  Fix some typos.
2215	* trans-decl.c (gfc_build_builtin_function_decls): Declare the new
2216	argument of _caf_*_by_ref () with * e { get, send, sendget }.
2217	* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the
2218	data referenced when generating a call to caf_get_by_ref ().
2219	(conv_caf_send): Same but for caf_send_by_ref () and
2220	caf_sendget_by_ref ().
2221
22222018-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2223
2224	PR fortran/84389
2225	* io.c (check_format): Allow FMT_COLON.
2226
22272018-02-18  Paul Thomas  <pault@gcc.gnu.org>
2228
2229	PR fortran/80945
2230	* trans-array.c (gfc_conv_expr_descriptor): Set parmtype from
2231	the typenode in the case of deferred length characters.
2232
22332018-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
2234
2235	PR fortran/84270
2236	* frontend-passes (scalarized_expr):  If the expression
2237	is an assumed size array, leave in the last reference
2238	and pass AR_SECTION instead of AR_FULL to gfc_resolve
2239	in order to avoid an error.
2240
22412018-02-17  Paul Thomas  <pault@gcc.gnu.org>
2242
2243	PR fortran/84115
2244	* resolve.c (resolve_assoc_var): If a non-constant target expr.
2245	has no string length expression, make the associate variable
2246	into a deferred length, allocatable symbol.
2247	* trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to
2248	the symbol.
2249	* trans-stmt.c (trans_associate_var): Null and free scalar
2250	associate names that are allocatable. After assignment, remove
2251	the allocatable attribute to prevent reallocation.
2252
22532018-02-16  Jakub Jelinek  <jakub@redhat.com>
2254
2255	PR fortran/84418
2256	* trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF
2257	kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step.
2258
22592018-02-16  Dominique d'Humieres  <dominiq@gcc.gnu.org>
2260
2261	PR fortran/84354
2262	* decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs.
2263
22642018-02-15  Janus Weil  <janus@gcc.gnu.org>
2265
2266	PR fortran/84409
2267	* interface.c (check_dtio_arg_TKR_intent): Add a check for character
2268	length.
2269
22702018-02-14  Janus Weil  <janus@gcc.gnu.org>
2271
2272	PR fortran/84385
2273	* match.c (gfc_match_select_type): Fix check for selector in
2274	SELECT TYPE statement.
2275
22762018-02-13  Janus Weil  <janus@gcc.gnu.org>
2277
2278	PR fortran/84313
2279	* symbol.c (check_conflict): Reject procedure pointers in common blocks.
2280
22812018-02-13  Alastair McKinstry  <alastair.mckinstry@sceal.ie>
2282	    Janne Blomqvist  <jb@gcc.gnu.org>
2283
2284	* module.c (dump_module): Use lbasename to ensure that module
2285	files are reproducible.
2286
22872018-02-12  Janus Weil  <janus@gcc.gnu.org>
2288
2289	PR fortran/84273
2290	* resolve.c (resolve_component): Fix checks of passed argument in
2291	procedure-pointer components.
2292
22932018-02-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2294
2295	PR fortran/35299
2296	* resolve.c (resolve_formal_arglist): Update error message.
2297
22982018-02-11  Andre Vehreschild  <vehre@gcc.gnu.org>
2299
2300	* gfortran.texi: Fix typos in documentation of caf_register ().
2301	* trans-array.c (structure_alloc_comps): Only register a component of
2302	a derived typed corray, not of an ultimate component coarray.
2303
23042018-02-11  Steven G. Kargl  <kargl@gcc.gnu.org>
2305
2306	PR fortran/54223
2307	PR fortran/84276
2308	* interface.c (compare_actual_formal): Add in_statement_function
2309	bool parameter.  Skip check of INTENT attribute for statement
2310	functions.  Arguments to a statement function cannot be optional,
2311	issue error for missing argument.
2312	(gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use
2313	 in_statement_function.
2314
23152018-02-11  Paul Thomas  <pault@gcc.gnu.org>
2316
2317	PR fortran/84074
2318	* trans-expr.c (gfc_conv_derived_to_class): Set the use_offset
2319	flag. If the is a vector subscript or the expression is not a
2320	variable, make the descriptor one-based.
2321
23222018-02-10  Paul Thomas  <pault@gcc.gnu.org>
2323
2324	PR fortran/84141
2325	PR fortran/84155
2326	* trans-array.c (gfc_array_init_size): Revert the change made
2327	in revision 257356 setting the dtype.
2328	* trans-types.c (gfc_get_dtype): Do not use the cached dtype.
2329	Call gfc_get_dtype_rank_type every time.
2330
2331	PR fortran/56691
2332	* trans-array.c (gfc_conv_expr_descriptor): If the source array
2333	is a descriptor type, use its offset, removing the condition
2334	that is be a class expression.
2335
23362018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
2337
2338	PR fortran/82994
2339	* match.c (gfc_match_deallocate): Check for NULL pointer.
2340
23412018-02-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
2342
2343	PR fortran/68560
2344	* trans-intrinsic.c (gfc_conv_intrinsic_shape): New function.
2345	(gfc_conv_intrinsic_function): Call it.
2346
23472018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
2348
2349	PR fortran/82049
2350	* match.c (gfc_match_type_spec): If the charlen is non-NULL, then
2351	try to resolve it.  While here return early if possible.
2352
23532018-02-04  Paul Thomas  <pault@gcc.gnu.org>
2354
2355	PR fortran/84115
2356	* trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of
2357	'length' if the symbol charlen backend_decl is an indirect ref.
2358
23592018-02-03  Paul Thomas  <pault@gcc.gnu.org>
2360
2361	PR fortran/84141
2362	PR fortran/84155
2363	* trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype
2364	use gfc_get_dtype_rank_type.
2365
23662018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
2367
2368	PR 83975
2369	PR 83344
2370	* resolve.c (resolve_assoc_var): Generate an error if
2371	target length unknown.
2372
23732018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
2374
2375	PR fortran/83705
2376	* simplify.c (gfc_simplify_repeat): Increase limit for deferring
2377	to runtime, print a warning message.
2378
23792018-01-31  Jakub Jelinek  <jakub@redhat.com>
2380
2381	PR fortran/84116
2382	* openmp.c (gfc_match_omp_clauses): If all the linear
2383	gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist
2384	nor set *head = NULL.  Formatting fixes.
2385
23862018-01-31  Paul Thomas  <pault@gcc.gnu.org>
2387
2388	PR fortran/84088
2389	* trans-expr.c (gfc_conv_procedure_call): If the parm expr is
2390	an address expression passed to an assumed rank dummy, convert
2391	to an indirect reference.
2392
23932018-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
2394
2395	* dump-parse-tree.c (write_proc): Use sym_name (which may
2396	be sym->binding_label) instead of sym->name.
2397
23982018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
2399
2400	* trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead
2401	of int for slen.
2402
24032018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
2404
2405	PR fortran/78534
2406	* trans-expr.c (fill_with_spaces): Use memset instead of
2407	generating loop.
2408	(gfc_trans_string_copy): Improve opportunity to use builtins with
2409	constant lengths.
2410
24112018-01-30  Jakub Jelinek  <jakub@redhat.com>
2412
2413	PR debug/84131
2414	* trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off
2415	to DATA_FIELD's offset rather than OFFSET_FIELD's offset.
2416
24172018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
2418
2419	PR fortran/84134
2420	* array.c (gfc_ref_dimen_size): Whitespace fixes.  If stride is
2421	zero, return false.
2422
24232018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
2424
2425	PR fortran/84133
2426	* frontend-passes (matmul_to_var_expr): Return early if
2427	in association list.
2428	(inline_matmul_assign): Likewise.
2429
24302017-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
2431
2432	PR fortran/84073
2433	* resolve.c (resolve_component): Ensure BIND(C) character
2434	components have length one.
2435	(resolve_symbol): Likewise for variables.
2436
24372018-01-27  Jakub Jelinek  <jakub@redhat.com>
2438
2439	PR fortran/84065
2440	* decl.c (add_init_expr_to_sym): Ignore initializers for too large
2441	lengths.
2442
24432018-01-26  Damian Rouson  <damian@sourceryinstitute.org>
2444	    Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
2445	    Soren Rasmussen  <s.c.rasmussen@gmail.com>
2446
2447	Partial support for Fortran 2018 teams features.
2448
2449	* array.c (gfc_match_array_ref): add team attribute in coarray
2450	transfers.
2451	* check.c (gfc_check_get_team, gfc_check_team_number): add new
2452	functions for get_team and team_number.
2453	* dump-parse-tree.c (show_code_node): add new statements: form team,
2454	change team, end team, and sync team.
2455	* expr.c (gfc_find_team_co): add new function.
2456	* gfortran.h: add new statements.
2457	* intrinsic.c (add_functions): add get_team and team_number functions.
2458	* intrinsic.h: add get_team and team_number prototypes for check,
2459	simplify, and resolve.
2460	* iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new
2461	functions.
2462	* iso-fortran-env.def: add the team_type derived type.
2463	* match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number)
2464	(gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team):
2465	add change team, end team, form team, sync team match and functions.
2466	* match.h: add new prototypes for change team, end team, form team,
2467	and sync team.
2468	* parse.c (decode_statement): add cases for change team, end team,
2469	form team, and sync team.
2470	* resolve.c: add cases for exec form team, change team, end team, and
2471	sync team.
2472	* simplify.c (gfc_simplify_get_team): add new function for get team.
2473	* st.c (gfc_free_statement): add cases exec for change team, end team,
2474	form team, sync team.
2475	* trans-decl.c (gfor_fndecl_caf_form_team)
2476	(gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team)
2477	(gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team)
2478	(gfor_fndecl_caf_team_number): add functions and definitions.
2479	* trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add
2480	new function and team_type argument support.
2481	* trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team)
2482	(gfc_trans_end_team, gfc_trans_sync_team): add new functions.
2483	* trans-stmt.h: add new prototypes.
2484	* trans-types.c (gfc_get_derived_type): check condition for team_type.
2485	* trans.c (trans_code): new exec cases for form team, change team, end
2486	team, and sync team.
2487	* trans.h: add new prototypes.
2488
24892018-01-26  Steven G. Kargl  <kargl@gcc.gnu.org>
2490
2491	PR fortran/83998
2492	* simplify.c (compute_dot_product):  Initialize result to INTEGER(1) 0
2493	or .false.  The summation does the correct type conversion.
2494	(gfc_simplify_dot_product): Special case zero-sized arrays.
2495
24962018-25-01  Paul Thomas  <pault@gcc.gnu.org>
2497
2498	PR fortran/37577
2499	* array.c (gfc_match_array_ref): If standard earlier than F2008
2500	it is an error if the reference dimension is greater than 7.
2501	libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the
2502	dtype masks and shifts accordingly.
2503	* trans-array.c (gfc_conv_descriptor_dtype): Use the dtype
2504	type node to check the field.
2505	(gfc_conv_descriptor_dtype): Access the rank field of dtype.
2506	(duplicate_allocatable_coarray): Access the rank field of the
2507	dtype descriptor rather than the dtype itself.
2508	* trans-expr.c (get_scalar_to_descriptor_type): Store the type
2509	of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE
2510	(ie. a character).
2511	(gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to
2512	get_scalar_to_descriptor_type if the actual expression is a
2513	constant.
2514	(gfc_trans_structure_assign): Assign the rank directly to the
2515	dtype rank field.
2516	* trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result
2517	to default integer kind.
2518	(gfc_conv_intrinsic_sizeof): Obtain the element size from the
2519	'elem_len' field of the dtype.
2520	* trans-io.c (gfc_build_io_library_fndecls): Replace
2521	gfc_int4_type_node with dtype_type_node where necessary.
2522	(transfer_namelist_element): Use gfc_get_dtype_rank_type for
2523	scalars.
2524	* trans-types.c : Provide 'get_dtype_type_node' to acces the
2525	dtype_type_node and, if necessary, build it.
2526	The maximum size of an array element is now determined by the
2527	maximum value of size_t.
2528	Update the description of the array descriptor, including the
2529	type def for the dtype_type.
2530	(gfc_get_dtype_rank_type): Build a constructor for the dtype.
2531	Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS.
2532	(gfc_get_array_descriptor_base): Change the type of the dtype
2533	field to dtype_type_node.
2534	(gfc_get_array_descr_info): Get the offset to the rank field of
2535	the dtype.
2536	* trans-types.h : Add a prototype for 'get_dtype_type_node ()'.
2537	* trans.h : Define the indices of the dtype fields.
2538
25392018-23-01  Paul Thomas  <pault@gcc.gnu.org>
2540
2541	PR fortran/83866
2542	* decl.c (gfc_match_derived_decl): If eos not matched, recover
2543	and emit error about garbage after declaration.
2544
25452018-23-01  Paul Thomas  <pault@gcc.gnu.org>
2546
2547	PR fortran/83898
2548	* trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
2549	for characters.
2550
25512018-01-22  Janne Blomqvist  <jb@gcc.gnu.org>
2552
2553	PR 78534
2554	PR 83704
2555	* arith.c (gfc_arith_concat): Use size_t for string length.
2556	(gfc_compare_string): Likewise.
2557	(gfc_compare_with_Cstring): Likewise.
2558	* array.c (gfc_resolve_character_array_constructor): Use
2559	HOST_WIDE_INT, gfc_mpz_get_hwi.
2560	* check.c (gfc_check_fe_runtime_error): Use size_t.
2561	* data.c (create_character_initializer): Use HOST_WIDE_INT,
2562	gfc_extract_hwi.
2563	* decl.c (gfc_set_constant_character_len): Use gfc_charlen_t.
2564	(add_init_expr_to_sym): Use HOST_WIDE_INT.
2565	* expr.c (gfc_build_init_expr): Use HOST_WIDE_INT,
2566	gfc_extract_hwi.
2567	(gfc_apply_init): Likewise.
2568	* match.h (gfc_set_constant_character_len): Update prototype.
2569	* primary.c (match_string_constant): Use size_t.
2570	* resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT,
2571	gfc_mpz_get_hwi.
2572	* simplify.c (init_result_expr): Likewise.
2573	(gfc_simplify_len_trim): Use size_t.
2574	* target-memory.c (gfc_encode_character): Use size_t.
2575	(gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi.
2576	(interpret_array): Use size_t.
2577	(gfc_interpret_character): Likewise.
2578	* target-memory.h (gfc_encode_character): Update prototype.
2579	(gfc_interpret_character): Likewise.
2580	(gfc_target_interpret_expr): Likewise.
2581	* trans-const.c (gfc_build_string_const): Use size_t for length
2582	argument.
2583	(gfc_build_wide_string_const): Likewise.
2584	* trans-const.h (gfc_build_string_const): Likewise.
2585	(gfc_build_wide_string_const): Likewise.
2586
25872018-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
2588
2589	PR fortran/83900
2590    * simplify.c (gfc_simplify_matmul): Set return type correctly.
2591
25922018-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
2593
2594	PR fortran/83900
2595	* simplify.c (gfc_simplify_matmul): Delete bogus assertion.
2596
25972018-01-17  Harald Anlauf  <anlauf@gmx.de>
2598
2599	PR fortran/83864
2600	* expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
2601
26022018-01-17  Harald Anlauf  <anlauf@gmx.de>
2603
2604	PR fortran/83874
2605	* decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
2606
26072018-01-15  Louis Krupp  <louis.krupp@zoho.com>
2608
2609	PR fortran/82257
2610	* interface.c (compare_rank): Don't try to retrieve CLASS_DATA
2611	from symbol marked unlimited polymorphic.
2612	* resolve.c (resolve_structure_cons): Likewise.
2613	* misc.c (gfc_typename): Don't dereference derived->components
2614	if it's NULL.
2615
26162018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2617
2618	PR fortran/54613
2619	* gfortran.h (gfc_check_f): Rename f4ml to f5ml.
2620	(gfc_logical_4_kind): New macro
2621	* intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
2622	(gfc_simplify_maxloc): Likewise.
2623	(gfc_resolve_maxloc): Likewise.
2624	(gfc_resolve_minloc): Likewise.
2625	* check.c (gfc_check_minloc_maxloc): Add checking for "back"
2626	argument; also raise error if it is used (for now). Add it
2627	if it isn't present.
2628	* intrinsic.c (add_sym_4ml): Rename to
2629	(add_sym_5ml), adjust for extra argument.
2630	(add_functions): Add "back" constant. Adjust maxloc and minloc
2631	for back argument.
2632	* iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
2633	not of gfc_logical_4_kind, convert.
2634	(gfc_resolve_minloc): Likewise.
2635	* simplify.c (gfc_simplify_minloc): Add back argument.
2636	(gfc_simplify_maxloc): Likewise.
2637	* trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
2638	argument to %VAL to ensure passing by value.
2639	(gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
2640	also for library calls.
2641
26422018-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2643
2644	PR fortran/82007
2645	* resolve.c (resolve_transfer): Delete code looking for 'DT'
2646	format specifiers in format strings. Set formatted to true if a
2647	format string or format label is present.
2648	* trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix
2649	whitespace.
2650
26512018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2652
2653	PR fortran/83744
2654	* dump-parse-tree.c (get_c_type_name): Remove extra line.
2655	Change for loop to use declaration in for loop. Handle BT_LOGICAL
2656	and BT_CHARACTER.
2657	(write_decl): Add where argument. Fix indentation. Replace
2658	assert with error message. Add typename to warning
2659	in comment.
2660	(write_type): Adjust locus to call of write_decl.
2661	(write_variable): Likewise.
2662	(write_proc): Likewise. Replace assert with error message.
2663
26642018-01-13  Paul Thomas  <pault@gcc.gnu.org>
2665
2666	PR fortran/52162
2667	* trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if
2668	the rhs expression is neither an elemental nor a conversion
2669	function.
2670
2671	PR fortran/83622
2672	* trans-array.c (is_pointer_array): Remove unconditional return
2673	of false for -fopenmp.
2674
26752018-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2676	<emsr@gcc.gnu.org>
2677
2678	PR fortran/83803
2679	* dump-parse-tree.c (write_proc): Always emit closing parenthesis
2680	for functions.
2681
26822018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
2683
2684	PR fortran/82367
2685	* resolve.c (resolve_allocate_expr): Check for NULL pointer.
2686
26872018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
2688
2689	PR fortran/83093
2690	* resolve.c (resolve_charlen): Check the type of cl->length
2691	after resolution.
2692
26932018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
2694
2695	PR fortran/83740
2696	* trans-array.c (gfc_trans_array_ctor_element): Fix formatting.
2697
26982018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
2699
2700	PR fortran/83740
2701	* trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the
2702	LHS type when assigning.
2703
27042018-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2705
2706	PR fortran/83742
2707	* expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
2708
27092018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2710
2711	* match.c (gfc_match_allocate): Check for NULL pointer.
2712
27132018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2714
2715	* expr.c (gfc_check_pointer_assign): Fix typo in comment.
2716
27172018-01-08  Paul Thomas  <pault@gcc.gnu.org>
2718
2719	PR fortran/83611
2720	* decl.c (gfc_get_pdt_instance): If parameterized arrays have
2721	an initializer, convert the kind parameters and add to the
2722	component if the instance.
2723	* trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
2724	use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
2725	for parameterized arrays. Clean up typos in comments. Convert
2726	parameterized array initializers and copy into the array.
2727	* trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
2728	parameterized types.
2729	*trans-stmt.c (trans_associate_var): Deallocate associate vars
2730	as necessary, when they are PDT function results for example.
2731
2732	PR fortran/83731
2733	* trans-array.c (structure_alloc_comps): Only compare len parms
2734	when they are declared explicitly.
2735
27362018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
2737
2738	PR fortran/50892
2739	* trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
2740	lhs type.
2741
27422018-01-05  Janne Blomqvist  <jb@gcc.gnu.org>
2743
2744	PR fortran/78534
2745	PR fortran/66310
2746	* array.c (got_charlen): Use gfc_charlen_int_kind.
2747	* class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
2748	hardcoded kind.
2749	(find_intrinsic_vtab): Likewise.
2750	* decl.c (match_char_length): Use gfc_charlen_int_kind.
2751	(add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind.
2752	(gfc_match_implicit): Use gfc_charlen_int_kind.
2753	* dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t.
2754	(show_expr): Use HOST_WIDE_INT_PRINT_DEC.
2755	* expr.c (gfc_get_character_expr): Length parameter of type
2756	gfc_charlen_t.
2757	(gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
2758	(gfc_extract_hwi): New function.
2759	(simplify_const_ref): Make string_len of type gfc_charlen_t.
2760	(gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
2761	* frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind.
2762	* gfortran.h (gfc_mpz_get_hwi): New prototype.
2763	(gfc_mpz_set_hwi): Likewise.
2764	(gfc_charlen_t): New typedef.
2765	(gfc_expr): Use gfc_charlen_t for character lengths.
2766	(gfc_size_kind): New extern variable.
2767	(gfc_extract_hwi): New prototype.
2768	(gfc_get_character_expr): Use gfc_charlen_t for character length.
2769	(gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
2770	* gfortran.texi: Update description of hidden string length argument.
2771	* iresolve.c (check_charlen_present): Use gfc_charlen_int_kind.
2772	(gfc_resolve_char_achar): Likewise.
2773	(gfc_resolve_repeat): Pass string length directly without
2774	temporary, use gfc_charlen_int_kind.
2775	(gfc_resolve_transfer): Use gfc_charlen_int_kind.
2776	* match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
2777	* misc.c (gfc_mpz_get_hwi): New function.
2778	(gfc_mpz_set_hwi): New function.
2779	* module.c (atom_int): Change type from int to HOST_WIDE_INT.
2780	(parse_integer): Don't complain about large integers.
2781	(write_atom): Use HOST_WIDE_INT for integers.
2782	(mio_integer): Handle integer type mismatch.
2783	(mio_hwi): New function.
2784	(mio_intrinsic_op): Use HOST_WIDE_INT.
2785	(mio_array_ref): Likewise.
2786	(mio_expr): Likewise.
2787	* primary.c (match_substring): Use gfc_charlen_int_kind.
2788	* resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind.
2789	(resolve_character_operator): Likewise.
2790	(resolve_assoc_var): Likewise.
2791	(resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf.
2792	(resolve_charlen): Use mpz_sgn to determine sign.
2793	* simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
2794	instead of long.
2795	* symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind.
2796	* target-memory.c (size_character): Length argument of type
2797	gfc_charlen_t.
2798	(gfc_encode_character): Likewise.
2799	(gfc_interpret_character): Use gfc_charlen_t.
2800	* target-memory.h (gfc_encode_character): Modify prototype.
2801	* trans-array.c (gfc_trans_array_ctor_element): Use existing type.
2802	(get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type.
2803	(trans_array_constructor): Use existing type.
2804	(get_array_charlen): Likewise.
2805	* trans-const.c (gfc_conv_mpz_to_tree_type): New function.
2806	* trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
2807	* trans-decl.c (gfc_trans_deferred_vars): Use existing type.
2808	(add_argument_checking): Likewise.
2809	* trans-expr.c (gfc_class_len_or_zero_get): Build const of type
2810	gfc_charlen_type_node.
2811	(gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
2812	4, fold_convert to correct type.
2813	(gfc_conv_class_to_class): Build const of type size_type_node for
2814	size.
2815	(gfc_copy_class_to_class): Likewise.
2816	(gfc_conv_string_length): Use same type in expression.
2817	(gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
2818	(gfc_conv_string_tmp): Make sure len is of the right type.
2819	(gfc_conv_concat_op): Use same type in expression.
2820	(gfc_conv_procedure_call): Likewise.
2821	(fill_with_spaces): Comment out memset() block due to spurious
2822	-Wstringop-overflow warnings.
2823	(gfc_trans_string_copy): Use gfc_charlen_type_node.
2824	(alloc_scalar_allocatable_for_subcomponent_assignment):
2825	fold_convert to right type.
2826	(gfc_trans_subcomponent_assign): Likewise.
2827	(trans_class_vptr_len_assignment): Build const of correct type.
2828	(gfc_trans_pointer_assignment): Likewise.
2829	(alloc_scalar_allocatable_for_assignment): fold_convert to right
2830	type in expr.
2831	(trans_class_assignment): Build const of correct type.
2832	* trans-intrinsic.c (gfc_conv_associated): Likewise.
2833	(gfc_conv_intrinsic_repeat): Do calculation in sizetype.
2834	* trans-io.c (gfc_build_io_library_fndecls): Use
2835	gfc_charlen_type_node for character lengths.
2836	(set_string): Convert to right type in assignment.
2837	* trans-stmt.c (gfc_trans_label_assign): Build const of
2838	gfc_charlen_type_node.
2839	(trans_associate_var): Likewise.
2840	(gfc_trans_character_select): Likewise.
2841	(gfc_trans_allocate): Likewise, don't typecast strlen result.
2842	(gfc_trans_deallocate): Don't typecast strlen result.
2843	* trans-types.c (gfc_size_kind): New variable.
2844	(gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
2845	from size_type_node.
2846	* trans-types.h: Fix comment.
2847
28482018-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
2849
2850	PR fortran/83683
2851	PR fortran/45689
2852	* check.c (gfc_check_eoshift): Check for string length and
2853	for conformance of boundary.
2854	* intrinsic.c (add_functions): Add gfc_simplify_eoshift.
2855	* intrinsic.h: Add prototype for gfc_simplify_eoshift.
2856	* simplify.c (gfc_simplify_eoshift): New function.
2857
28582018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
2859	    Alan Hayward  <alan.hayward@arm.com>
2860	    David Sherwood  <david.sherwood@arm.com>
2861
2862	* trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
2863
28642018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
2865	    Alan Hayward  <alan.hayward@arm.com>
2866	    David Sherwood  <david.sherwood@arm.com>
2867
2868	* trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
2869
28702018-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2871
2872	PR fortran/83664
2873	* check.c (gfc_check_eoshift): Error for missing boundary if array
2874	is not one of the standard types.
2875
28762018-01-03  Jakub Jelinek  <jakub@redhat.com>
2877
2878	Update copyright years.
2879
2880	* gfortranspec.c (lang_specific_driver): Update copyright notice
2881	dates.
2882	* gfc-internals.texi: Bump @copying's copyright year.
2883	* gfortran.texi: Ditto.
2884	* intrinsic.texi: Ditto.
2885	* invoke.texi: Ditto.
2886
28872017-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2888
2889	PR fortran/45689
2890	* intrinsic.c (add_function): Add gfc_simplify_maxloc and
2891	gfc_simplify_minloc to maxloc and minloc, respectively.
2892	* intrinsic.h: Add prototypes for gfc_simplify_minloc
2893	and gfc_simplify_maxloc.
2894	* simplify.c (min_max_chose): Adjust prototype.  Modify function
2895	to have a return value which indicates if the extremum was found.
2896	(is_constant_array_expr): Fix typo in comment.
2897	(simplify_minmaxloc_to_scalar): New function.
2898	(simplify_minmaxloc_nodim): New function.
2899	(new_array): New function.
2900	(simplify_minmaxloc_to_array): New function.
2901	(gfc_simplify_minmaxloc): New function.
2902	(simplify_minloc): New function.
2903	(simplify_maxloc): New function.
2904
29052018-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2906
2907	PR fortran/45689
2908	PR fortran/83650
2909	* simplify.c (gfc_simplify_cshift): Re-implement to allow full
2910	range of arguments.
2911
29122018-01-01  Paul Thomas  <pault@gcc.gnu.org>
2913
2914	PR fortran/83076
2915	* resolve.c (resolve_fl_derived0): Add caf_token fields for
2916	allocatable and pointer scalars, when -fcoarray selected.
2917	* trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token
2918	field as well as the backend_decl.
2919	(gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module
2920	derived types that are not vtypes. Components with caf_token
2921	attribute are pvoid types. For a component requiring it, find
2922	the caf_token field and have the component token field point to
2923	its backend_decl.
2924
2925	PR fortran/83319
2926	*trans-types.c (gfc_get_array_descriptor_base): Add the token
2927	field to the descriptor even when codimen not set.
2928
2929Copyright (C) 2018 Free Software Foundation, Inc.
2930
2931Copying and distribution of this file, with or without modification,
2932are permitted in any medium without royalty provided the copyright
2933notice and this notice are preserved.
2934