xref: /netbsd-src/external/gpl3/gcc/dist/gcc/fortran/ChangeLog-2019 (revision ad6404254a199e678dd184a869b8ae347b85815f)
1*ad640425Smrg2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
2*ad640425Smrg
3*ad640425Smrg	PR fortran/91651
4*ad640425Smrg	* intrinsic.c (add_sym_4ind): New function.
5*ad640425Smrg	(add_functions): Use it for INDEX.
6*ad640425Smrg	(resolve_intrinsic): Also call f1m for INDEX.
7*ad640425Smrg	* intrinsic.h (gfc_resolve_index_func): Adjust prototype to
8*ad640425Smrg	take a gfc_arglist instead of individual arguments.
9*ad640425Smrg	* iresolve.c (gfc_resolve_index_func): Adjust arguments.
10*ad640425Smrg	Remove KIND argument if present, and make sure this is
11*ad640425Smrg	not done twice.
12*ad640425Smrg	* trans-decl.c: Include "intrinsic.h".
13*ad640425Smrg	(gfc_get_extern_function_decl): Special case for resolving INDEX.
14*ad640425Smrg
15*ad640425Smrg2019-12-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
16*ad640425Smrg
17*ad640425Smrg	PR fortran/92961
18*ad640425Smrg	* gfortran.h (gfc_seen_div0): Add declaration.
19*ad640425Smrg	* arith.h (gfc_seen_div0): Add definition.
20*ad640425Smrg	(eval_intrinsic): For integer division by zero, set gfc_seen_div0.
21*ad640425Smrg	* decl.c (variable_decl):  If resolution resp. simplification
22*ad640425Smrg	fails for array spec and a division of zero error has been
23*ad640425Smrg	seen, return MATCH_ERROR.
24*ad640425Smrg
25*ad640425Smrg2019-12-21  Harald Anlauf  <anlauf@gmx.de>
26*ad640425Smrg
27*ad640425Smrg	PR fortran/92990
28*ad640425Smrg	* match.c (gfc_match_nullify): Check for valid pointer object.
29*ad640425Smrg	Reject bounds remapping.
30*ad640425Smrg
31*ad640425Smrg2019-12-21  Paul Thomas  <pault@gcc.gnu.org>
32*ad640425Smrg
33*ad640425Smrg	PR fortran/92753
34*ad640425Smrg	* expr.c (find_inquiry_ref): Catch INQUIRY_LEN case, where the
35*ad640425Smrg	temporary expression has been converted to a constant and make
36*ad640425Smrg	the new expression accordingly. Correct the error in INQUIRY_RE
37*ad640425Smrg	and INQUIRY_IM cases. The original rather than the resolved
38*ad640425Smrg	expression was being used as the source in mpfr_set.
39*ad640425Smrg
40*ad640425Smrg2019-12-20  Jakub Jelinek  <jakub@redhat.com>
41*ad640425Smrg
42*ad640425Smrg	PR middle-end/91512
43*ad640425Smrg	PR fortran/92738
44*ad640425Smrg	* lang.opt (-finline-arg-packing): Add trailing dot to help text.
45*ad640425Smrg
46*ad640425Smrg2019-12-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
47*ad640425Smrg
48*ad640425Smrg	PR middle-end/91512
49*ad640425Smrg	PR fortran/92738
50*ad640425Smrg	* invoke.texi: Document -finline-arg-packing.
51*ad640425Smrg	* lang.opt: Add -finline-arg-packing.
52*ad640425Smrg	* options.c (gfc_post_options): Handle -finline-arg-packing.
53*ad640425Smrg	* trans-array.c (gfc_conv_array_parameter): Use
54*ad640425Smrg	flag_inline_arg_packing instead of checking for optimize and
55*ad640425Smrg	optimize_size.
56*ad640425Smrg
57*ad640425Smrg2019-12-20  Tobias Burnus  <tobias@codesourcery.com>
58*ad640425Smrg
59*ad640425Smrg	PR fortran/92996
60*ad640425Smrg	* expr.c (simplify_parameter_variable): Call gfc_resolve_ref and
61*ad640425Smrg	gfc_expression_rank; fix location info.
62*ad640425Smrg	* gfortran.h (gfc_resolve_ref, gfc_expression_rank): Declare.
63*ad640425Smrg	* match.c (gfc_match_stopcode): Remove redundant setting of
64*ad640425Smrg	gfc_init_expr_flag; early return if gfc_simplify_expr has an error.
65*ad640425Smrg	* resolve.c (gfc_expression_rank): Renamed from expression_rank;
66*ad640425Smrg	minor cleanup.
67*ad640425Smrg	(gfc_resolve_ref): Removed static and renamed from resolve_ref.
68*ad640425Smrg	(resolve_variable, resolve_typebound_function,
69*ad640425Smrg	resolve_typebound_subroutine, resolve_ppc_call, resolve_expr_ppc,
70*ad640425Smrg	gfc_resolve_expr, resolve_procedure): Update calls.
71*ad640425Smrg
72*ad640425Smrg2019-12-20  Tobias Burnus  <tobias@codesourcery.com>
73*ad640425Smrg
74*ad640425Smrg	* openmp.c (resolve_omp_clauses): Move is-coindexed check from here ...
75*ad640425Smrg	(gfc_match_omp_variable_list): ... to here.
76*ad640425Smrg
77*ad640425Smrg2019-12-19  Julian Brown  <julian@codesourcery.com>
78*ad640425Smrg
79*ad640425Smrg	* openmp.c (resolve_oacc_data_clauses): Don't disallow allocatable
80*ad640425Smrg	polymorphic types for OpenACC.
81*ad640425Smrg	* trans-openmp.c (gfc_trans_omp_clauses): Support polymorphic class
82*ad640425Smrg	types.
83*ad640425Smrg
84*ad640425Smrg2019-12-19  Julian Brown  <julian@codesourcery.com>
85*ad640425Smrg
86*ad640425Smrg	* gfortran.h (gfc_omp_map_op): Add OMP_MAP_ATTACH, OMP_MAP_DETACH.
87*ad640425Smrg	* openmp.c (gfc_match_omp_variable_list): Add allow_derived parameter.
88*ad640425Smrg	Parse derived-type member accesses if true.
89*ad640425Smrg	(omp_mask2): Add OMP_CLAUSE_ATTACH and OMP_CLAUSE_DETACH.
90*ad640425Smrg	(gfc_match_omp_map_clause): Add allow_derived parameter.  Pass to
91*ad640425Smrg	gfc_match_omp_variable_list.
92*ad640425Smrg	(gfc_match_omp_clauses): Support attach and detach.  Support derived
93*ad640425Smrg	types for appropriate OpenACC directives.
94*ad640425Smrg	(OACC_PARALLEL_CLAUSES, OACC_SERIAL_CLAUSES, OACC_KERNELS_CLAUSES,
95*ad640425Smrg	OACC_DATA_CLAUSES, OACC_ENTER_DATA_CLAUSES): Add OMP_CLAUSE_ATTACH.
96*ad640425Smrg	(OACC_EXIT_DATA_CLAUSES): Add OMP_CLAUSE_DETACH.
97*ad640425Smrg	(check_symbol_not_pointer): Don't disallow pointer objects of derived
98*ad640425Smrg	type.
99*ad640425Smrg	(resolve_oacc_data_clauses): Don't disallow allocatable derived types.
100*ad640425Smrg	(resolve_omp_clauses): Perform duplicate checking only for non-derived
101*ad640425Smrg	type component accesses (plain variables and arrays or array sections).
102*ad640425Smrg	Support component refs.
103*ad640425Smrg	* trans-expr.c (gfc_conv_component_ref,
104*ad640425Smrg	conv_parent_component_references): Make global.
105*ad640425Smrg	(gfc_maybe_dereference_var): New function, broken out of...
106*ad640425Smrg	(gfc_conv_variable): ...here.  Call above function.
107*ad640425Smrg	* trans-openmp.c (gfc_omp_privatize_by_reference): Support component
108*ad640425Smrg	refs.
109*ad640425Smrg	(gfc_trans_omp_array_section): New function, broken out of...
110*ad640425Smrg	(gfc_trans_omp_clauses): ...here.  Support component refs/derived
111*ad640425Smrg	types, attach and detach clauses.
112*ad640425Smrg	* trans.h (gfc_conv_component_ref, conv_parent_component_references,
113*ad640425Smrg	gfc_maybe_dereference_var): Add prototypes.
114*ad640425Smrg
115*ad640425Smrg2019-12-19 Mark Eggleston  <mark.eggleston@codethink.com>
116*ad640425Smrg
117*ad640425Smrg	PR fortran/92896
118*ad640425Smrg	* array.c (walk_array_constructor): Replace call to gfc_convert_type
119*ad640425Smrg	with call to gfc_convert_type_warn with new argument set to true.
120*ad640425Smrg	(check_element_type): Replace call to cfg_convert_type with call to
121*ad640425Smrg	gfc_convert_type_warn with new argument set to true.
122*ad640425Smrg	* gfortran.h: Add argument "array" to gfc_convert_type_warn default
123*ad640425Smrg	value set to false.
124*ad640425Smrg	*intrinsic.c (gfc_convert_type_warn): Update description of arguments.
125*ad640425Smrg	Add new argument to argument list. Add check for conversion to numeric
126*ad640425Smrg	or logical from character and array set to true, i.e. if conversion
127*ad640425Smrg	from character is in an array constructor reject it, goto bad.
128*ad640425Smrg
129*ad640425Smrg2019-12-19  Jakub Jelinek  <jakub@redhat.com>
130*ad640425Smrg
131*ad640425Smrg	PR fortran/92977
132*ad640425Smrg	* frontend-passes.c (call_external_blas): Use || instead of |.
133*ad640425Smrg
134*ad640425Smrg2019-12-19  Jakub Jelinek  <jakub@redhat.com>
135*ad640425Smrg
136*ad640425Smrg	PR fortran/92977
137*ad640425Smrg	* frontend-passes.c (in_omp_atomic): New variable.
138*ad640425Smrg	(cfe_expr_0, matmul_to_var_expr, matmul_temp_args,
139*ad640425Smrg	inline_matmul_assign, call_external_blas): Don't optimize in
140*ad640425Smrg	EXEC_OMP_ATOMIC.
141*ad640425Smrg	(optimize_namespace): Clear in_omp_atomic.
142*ad640425Smrg	(gfc_code_walker): Set in_omp_atomic for EXEC_OMP_ATOMIC, save/restore
143*ad640425Smrg	it around.
144*ad640425Smrg
145*ad640425Smrg2019-12-19  Julian Brown  <julian@codesourcery.com>
146*ad640425Smrg	    Maciej W. Rozycki  <macro@codesourcery.com>
147*ad640425Smrg	    Tobias Burnus  <tobias@codesourcery.com>
148*ad640425Smrg	    Thomas Schwinge  <thomas@codesourcery.com>
149*ad640425Smrg
150*ad640425Smrg	* gfortran.h (gfc_omp_map_op): Add OMP_MAP_NO_ALLOC.
151*ad640425Smrg	* openmp.c (omp_mask2): Add OMP_CLAUSE_NO_CREATE.
152*ad640425Smrg	(gfc_match_omp_clauses): Support no_create.
153*ad640425Smrg	(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES)
154*ad640425Smrg	(OACC_DATA_CLAUSES): Add OMP_CLAUSE_NO_CREATE.
155*ad640425Smrg	* trans-openmp.c (gfc_trans_omp_clauses_1): Support
156*ad640425Smrg	OMP_MAP_NO_ALLOC.
157*ad640425Smrg
158*ad640425Smrg2019-12-18  Harald Anlauf  <anlauf@gmx.de>
159*ad640425Smrg
160*ad640425Smrg	PR fortran/70853
161*ad640425Smrg	* trans-expr.c (gfc_trans_pointer_assignment): Reject bounds
162*ad640425Smrg	remapping if pointer target is NULL().
163*ad640425Smrg
164*ad640425Smrg2019-12-12  Harald Anlauf  <anlauf@gmx.de>
165*ad640425Smrg
166*ad640425Smrg	PR fortran/92898
167*ad640425Smrg	* check.c (gfc_check_is_contiguous): Simplify check to handle
168*ad640425Smrg	arbitrary NULL() argument.
169*ad640425Smrg
170*ad640425Smrg2019-12-11  Jakub Jelinek  <jakub@redhat.com>
171*ad640425Smrg
172*ad640425Smrg	PR fortran/92899
173*ad640425Smrg	* trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP,
174*ad640425Smrg	do look through conversion on expr2 if any.
175*ad640425Smrg
176*ad640425Smrg2019-12-11  Steven G. Kargl  <kargl@gcc.gnu.org>
177*ad640425Smrg
178*ad640425Smrg	PR fortran/92897
179*ad640425Smrg	* array.c (gfc_set_array_spec):  Remove invalid assert() triggered
180*ad640425Smrg	by invalid Fortran code.
181*ad640425Smrg
182*ad640425Smrg2019-12-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
183*ad640425Smrg
184*ad640425Smrg	PR fortran/91643
185*ad640425Smrg	* trans-array.c (gfc_conv_array_parameter): Do not repack
186*ad640425Smrg	an assumed rank dummy argument.
187*ad640425Smrg
188*ad640425Smrg2019-12-10  Martin Liska  <mliska@suse.cz>
189*ad640425Smrg
190*ad640425Smrg	PR fortran/92874
191*ad640425Smrg	* dependency.c (gfc_dep_compare_expr): Bail out
192*ad640425Smrg	when one of the arguments is null.
193*ad640425Smrg
194*ad640425Smrg2019-12-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
195*ad640425Smrg
196*ad640425Smrg	PR fortran/92863
197*ad640425Smrg	* misc.c (gfc_typename): If derived component is NULL for
198*ad640425Smrg	derived or class, return "invalid type" or "invalid class",
199*ad640425Smrg	respectively.
200*ad640425Smrg
201*ad640425Smrg2019-12-10  Tobias Burnus  <tobias@codesourcery.com>
202*ad640425Smrg
203*ad640425Smrg	PR fortran/92872
204*ad640425Smrg	* trans-array.c (get_CFI_desc): Fix cond whether saved desc exists.
205*ad640425Smrg
206*ad640425Smrg2019-12-09  David Malcolm  <dmalcolm@redhat.com>
207*ad640425Smrg
208*ad640425Smrg	* error.c (gfc_diagnostic_starter): Add pp_newline call before
209*ad640425Smrg	call to diagnostic_show_locus.
210*ad640425Smrg
211*ad640425Smrg2019-12-09  Frederik Harwath  <frederik@codesourcery.com>
212*ad640425Smrg
213*ad640425Smrg	* trans-openmp.c (gfc_trans_omp_reduction_list): Pass correct location for each
214*ad640425Smrg	clause to build_omp_clause.
215*ad640425Smrg
216*ad640425Smrg2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
217*ad640425Smrg
218*ad640425Smrg	PR fortran/92780
219*ad640425Smrg	* resolve.c (resolve_assoc_var): Issue error if the associating
220*ad640425Smrg	entity is a program.
221*ad640425Smrg
222*ad640425Smrg2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
223*ad640425Smrg
224*ad640425Smrg	PR fortran/92764
225*ad640425Smrg	* interface.c (gfc_procedure_use): Check for existence of derived
226*ad640425Smrg	component before using (twice).
227*ad640425Smrg
228*ad640425Smrg2019-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
229*ad640425Smrg
230*ad640425Smrg	PR fortran/92755
231*ad640425Smrg	* dependency.c (gfc_dep_resolver):  Move skipping of _data ref
232*ad640425Smrg	into the loop.
233*ad640425Smrg
234*ad640425Smrg2019-12-07  Tobias Burnus  <tobias@codesourcery.com>
235*ad640425Smrg
236*ad640425Smrg	PR fortran/92793
237*ad640425Smrg	* trans.c (gfc_get_location): Declare.
238*ad640425Smrg	* trans.c (gfc_get_location): Define; returns column-corrected location.
239*ad640425Smrg	(trans_runtime_error_vararg, gfc_trans_runtime_check,
240*ad640425Smrg	gfc_generate_module_code): Use new function.
241*ad640425Smrg	* trans-array.c (gfc_trans_auto_array_allocation): Likewise.
242*ad640425Smrg	* trans-common.c (build_field, get_init_field, create_common): Likewise.
243*ad640425Smrg	* trans-decl.c (gfc_build_label_decl, gfc_get_symbol_decl): Likewise.
244*ad640425Smrg	* trans-openmp.c (gfc_trans_omp_reduction_list, gfc_trans_omp_clauses):
245*ad640425Smrg	Likewise.
246*ad640425Smrg	* trans-stmt.c (gfc_trans_if_1): Likewise.
247*ad640425Smrg
248*ad640425Smrg2019-12-06  Jakub Jelinek  <jakub@redhat.com>
249*ad640425Smrg
250*ad640425Smrg	PR fortran/92775
251*ad640425Smrg	* trans.h (struct lang_type, struct lang_decl): Remove span member.
252*ad640425Smrg	(GFC_DECL_SPAN, GFC_TYPE_ARRAY_SPAN): Remove macros.
253*ad640425Smrg	* trans-array.h (gfc_get_descriptor_offsets_for_info): Add another
254*ad640425Smrg	argument.
255*ad640425Smrg	* trans-array.c (gfc_get_descriptor_offsets_for_info): Add SPAN_OFF
256*ad640425Smrg	argument and initialize *SPAN_OFF to the offset of span field.
257*ad640425Smrg	* trans-types.c (gfc_get_array_descr_info): Adjust
258*ad640425Smrg	gfc_get_descriptor_offsets_for_info caller.  Compute elem_size
259*ad640425Smrg	as base->span instead of TYPE_SIZE_UNIT (etype) constant.
260*ad640425Smrg
261*ad640425Smrg2019-12-06  Tobias Burnus  <tobias@codesourcery.com>
262*ad640425Smrg	    Kwok Cheung Yeung  <kcy@codesourcery.com>
263*ad640425Smrg
264*ad640425Smrg	* trans-openmp.c (gfc_build_conditional_assign,
265*ad640425Smrg	gfc_build_conditional_assign_expr): New static functions.
266*ad640425Smrg	(gfc_omp_finish_clause, gfc_trans_omp_clauses): Handle mapping of
267*ad640425Smrg	absent optional arguments and fix mapping of present optional args.
268*ad640425Smrg
269*ad640425Smrg2019-12-05  Tobias Burnus  <tobias@codesourcery.com>
270*ad640425Smrg
271*ad640425Smrg	* trans-openmp.c (gfc_omp_is_optional_argument,
272*ad640425Smrg	gfc_omp_check_optional_argument): Handle type(c_ptr),value which uses a
273*ad640425Smrg
274*ad640425Smrg2019-12-05  Jakub Jelinek  <jakub@redhat.com>
275*ad640425Smrg
276*ad640425Smrg	PR fortran/92781
277*ad640425Smrg	* trans-decl.c (gfc_get_symbol_decl): If sym->backend_decl is
278*ad640425Smrg	current_function_decl, add length to current rather than parent
279*ad640425Smrg	function and expect DECL_CONTEXT (length) to be current_function_decl.
280*ad640425Smrg
281*ad640425Smrg2019-12-04  Tobias Burnus  <tobias@codesourcery.com>
282*ad640425Smrg
283*ad640425Smrg	PR fortran/92754
284*ad640425Smrg	* intrinsic.c (gfc_intrinsic_func_interface): Set
285*ad640425Smrg	sym's flavor, intrinsic and function attribute if
286*ad640425Smrg	unset.
287*ad640425Smrg
288*ad640425Smrg2019-12-04  Jakub Jelinek  <jakub@redhat.com>
289*ad640425Smrg
290*ad640425Smrg	PR fortran/92756
291*ad640425Smrg	* trans-openmp.c (gfc_trans_omp_teams): Wrap OMP_TEAMS body into a
292*ad640425Smrg	BIND_EXPR with a forced BLOCK.
293*ad640425Smrg
294*ad640425Smrg2019-11-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
295*ad640425Smrg
296*ad640425Smrg	PR fortran/91783
297*ad640425Smrg	* dependency.c (gfc_dep_resolver): Do not look at _data
298*ad640425Smrg	component if present.
299*ad640425Smrg
300*ad640425Smrg2019-11-28  Jerry DeLisle  <jvdelisle@gcc.ngu.org>
301*ad640425Smrg
302*ad640425Smrg	PR fortran/90374
303*ad640425Smrg	* io.c (check_format): Allow zero width expoenent with e0.
304*ad640425Smrg
305*ad640425Smrg2019-11-27  Jakub Jelinek  <jakub@redhat.com>
306*ad640425Smrg
307*ad640425Smrg	PR fortran/91944
308*ad640425Smrg	* simplify.c (gfc_simplify_spread): Check gfc_init_expr_flag instead
309*ad640425Smrg	of gfc_current_ns->sym_root->n.sym->attr.flavor == FL_PARAMETER.
310*ad640425Smrg
311*ad640425Smrg2019-11-27  Tobias Burnus  <tobias@codesourcery.com>
312*ad640425Smrg
313*ad640425Smrg	PR middle-end/92463
314*ad640425Smrg	* arith.c (gfc_check_real_range): Replace mp_exp_t by mpfr_exp_t.
315*ad640425Smrg
316*ad640425Smrg2019-11-25  Harald Anlauf  <anlauf@gmx.de>
317*ad640425Smrg
318*ad640425Smrg	PR fortran/92629
319*ad640425Smrg	* simplify.c (convert_mpz_to_unsigned): Skip assert for argument
320*ad640425Smrg	range when -fno-range-check is specified.
321*ad640425Smrg
322*ad640425Smrg2019-11-25  Mark Eggleston  <mark.eggleston@codethink.com>
323*ad640425Smrg	    Jim MacArthur  <jim.macarthur@codethink.co.uk>
324*ad640425Smrg
325*ad640425Smrg	* gfortran.texi: Update Hollerith constants support for character types
326*ad640425Smrg	and use in comparisons.
327*ad640425Smrg	* invoke.texi: Tidy up list of options. Update description of
328*ad640425Smrg	-fdec-char-conversions.
329*ad640425Smrg	* resolve.c (is_character_based): New.
330*ad640425Smrg	(Convert_hollerith_to_character): New.  (convert_to_numeric): New.
331*ad640425Smrg	(resolve_operator): If both sides are character based and -fdec is
332*ad640425Smrg	enabled convert Hollerith to character. If an operand is Hollerith, the
333*ad640425Smrg	other is numeric and -fdec is enabled convert to numeric.
334*ad640425Smrg	(resolve_ordinary_assign): Add check for -fdec-char-conversions for
335*ad640425Smrg	assignment of character literals.2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
336*ad640425Smrg
337*ad640425Smrg	PR fortran/92463
338*ad640425Smrg	Revert r269139
339*ad640425Smrg	* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
340*ad640425Smrg	mpfr_regular_p instead of mpfr_number_p && !mpfr_zero_p.
341*ad640425Smrg	(norm2_add_squared): Likewise.  Use mpfr_exp_t rather than
342*ad640425Smrg	mp_exp_t.
343*ad640425Smrg
344*ad640425Smrg2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
345*ad640425Smrg
346*ad640425Smrg	PR fortran/92463
347*ad640425Smrg	* arith.c (gfc_mpfr_to_mpz): Change mp_exp_t to mpfr_exp_t.
348*ad640425Smrg	(gfc_check_real_range): Likewise.
349*ad640425Smrg	* gfortran.h (GFC_RND_MODE): Change GMP_RNDN to MPFR_RNDN.
350*ad640425Smrg	* module.c (mio_gmp_real): Change mp_exp_t to mpfr_exp_t.
351*ad640425Smrg	* simplify.c (degrees_f): Change mp_rnd_t to mpfr_rnd_t.
352*ad640425Smrg	(radians_f): Likewise.
353*ad640425Smrg	(fullprec_erfc_scaled): Change mp_prec_t to mpfr_prec_t.
354*ad640425Smrg	(asympt_erfc_scaled): Likewise.
355*ad640425Smrg	(gfc_simplify_nearest): Change mp_exp_t to mpfr_exp_t, and
356*ad640425Smrg	GMP_RND* to MPFR_RND*.
357*ad640425Smrg
358*ad640425Smrg2019-11-15  Paul Thomas  <pault@gcc.gnu.org>
359*ad640425Smrg
360*ad640425Smrg	PR fortran/69654
361*ad640425Smrg	* trans-expr.c (gfc_trans_structure_assign): Move assignment to
362*ad640425Smrg	'cm' after treatment of C pointer types and test that the type
363*ad640425Smrg	has been completely built before it. Add an assert that the
364*ad640425Smrg	backend_decl for each component exists.
365*ad640425Smrg
366*ad640425Smrg2019-11-13  Tobias Burnus  <tobias@codesourcery.com>
367*ad640425Smrg
368*ad640425Smrg	* trans-expr.c (gfc_conv_procedure_call): Fold hidden
369*ad640425Smrg	is-present argument to the right type.
370*ad640425Smrg
371*ad640425Smrg2019-11-12  Harald Anlauf  <anlauf@gmx.de>
372*ad640425Smrg
373*ad640425Smrg	PR fortran/81651
374*ad640425Smrg	* module.c (gzopen_included_file, gzopen_included_file_1)
375*ad640425Smrg	(gzopen_intrinsic_module, bad_module, gfc_use_module): Use fully
376*ad640425Smrg	qualified module path for error reporting.
377*ad640425Smrg
378*ad640425Smrg2019-11-12  Martin Liska  <mliska@suse.cz>
379*ad640425Smrg
380*ad640425Smrg	* options.c (gfc_init_options):
381*ad640425Smrg	Use SET_OPTION_IF_UNSET.
382*ad640425Smrg
383*ad640425Smrg2019-11-12  Maciej W. Rozycki  <macro@codesourcery.com>
384*ad640425Smrg	    Frederik Harwath  <frederik@codesourcery.com>
385*ad640425Smrg
386*ad640425Smrg	gcc/fortran/
387*ad640425Smrg	* gfortran.h (gfc_statement): Add ST_OACC_SERIAL_LOOP,
388*ad640425Smrg	ST_OACC_END_SERIAL_LOOP, ST_OACC_SERIAL and ST_OACC_END_SERIAL
389*ad640425Smrg	enumeration constants.
390*ad640425Smrg	(gfc_exec_op): Add EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL
391*ad640425Smrg	enumeration constants.
392*ad640425Smrg	* match.h (gfc_match_oacc_serial): New prototype.
393*ad640425Smrg	(gfc_match_oacc_serial_loop): Likewise.
394*ad640425Smrg	* dump-parse-tree.c (show_omp_node, show_code_node): Handle
395*ad640425Smrg	EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL.
396*ad640425Smrg	* match.c (match_exit_cycle): Handle EXEC_OACC_SERIAL_LOOP.
397*ad640425Smrg	* openmp.c (OACC_SERIAL_CLAUSES): New macro.
398*ad640425Smrg	(gfc_match_oacc_serial_loop): New function.
399*ad640425Smrg	(gfc_match_oacc_serial): Likewise.
400*ad640425Smrg	(oacc_is_loop): Handle EXEC_OACC_SERIAL_LOOP.
401*ad640425Smrg	(resolve_omp_clauses): Handle EXEC_OACC_SERIAL.
402*ad640425Smrg	(oacc_code_to_statement): Handle EXEC_OACC_SERIAL and
403*ad640425Smrg	EXEC_OACC_SERIAL_LOOP.
404*ad640425Smrg	(gfc_resolve_oacc_directive): Likewise.
405*ad640425Smrg	* parse.c (decode_oacc_directive) <'s'>: Add case for "serial"
406*ad640425Smrg	and "serial loop".
407*ad640425Smrg	(next_statement): Handle ST_OACC_SERIAL_LOOP and ST_OACC_SERIAL.
408*ad640425Smrg	(gfc_ascii_statement): Likewise.  Handle ST_OACC_END_SERIAL_LOOP
409*ad640425Smrg	and ST_OACC_END_SERIAL.
410*ad640425Smrg	(parse_oacc_structured_block): Handle ST_OACC_SERIAL.
411*ad640425Smrg	(parse_oacc_loop): Handle ST_OACC_SERIAL_LOOP and
412*ad640425Smrg	ST_OACC_END_SERIAL_LOOP.
413*ad640425Smrg	(parse_executable): Handle ST_OACC_SERIAL_LOOP and
414*ad640425Smrg	ST_OACC_SERIAL.
415*ad640425Smrg	(is_oacc): Handle EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL.
416*ad640425Smrg	* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
417*ad640425Smrg	* st.c (gfc_free_statement): Likewise.
418*ad640425Smrg	* trans-openmp.c (gfc_trans_oacc_construct): Handle
419*ad640425Smrg	EXEC_OACC_SERIAL.
420*ad640425Smrg	(gfc_trans_oacc_combined_directive): Handle
421*ad640425Smrg	EXEC_OACC_SERIAL_LOOP.
422*ad640425Smrg	(gfc_trans_oacc_directive): Handle EXEC_OACC_SERIAL_LOOP and
423*ad640425Smrg	EXEC_OACC_SERIAL.
424*ad640425Smrg	* trans.c (trans_code): Likewise.
425*ad640425Smrg
426*ad640425Smrg2019-11-11  Janne Blomqvist  <jb@gcc.gnu.org>
427*ad640425Smrg
428*ad640425Smrg	PR fortran/91828
429*ad640425Smrg	* simplify.c (gfc_simplify_fraction): Remove fallback path for
430*ad640425Smrg	MPFR < 3.1.0.
431*ad640425Smrg
432*ad640425Smrg2019-11-11  Tobias Burnus  <tobias@codesourcery.com>
433*ad640425Smrg	    Kwok Cheung Yeung  <kcy@codesourcery.com>
434*ad640425Smrg
435*ad640425Smrg	* trans-expr.c (gfc_conv_expr_present): Check for DECL_ARTIFICIAL
436*ad640425Smrg	for the VALUE hidden argument avoiding -fallow-underscore issues.
437*ad640425Smrg	* trans-decl.c (create_function_arglist): Also set
438*ad640425Smrg	GFC_DECL_OPTIONAL_ARGUMENT for per-value arguments.
439*ad640425Smrg	* f95-lang.c (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
440*ad640425Smrg	Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; point
441*ad640425Smrg	to gfc_omp_check_optional_argument.
442*ad640425Smrg	* trans.h (gfc_omp_check_optional_argument): Subsitutes
443*ad640425Smrg	gfc_omp_is_optional_argument declaration.
444*ad640425Smrg	* trans-openmp.c (gfc_omp_is_optional_argument): Make static.
445*ad640425Smrg	(gfc_omp_check_optional_argument): New function.
446*ad640425Smrg
447*ad640425Smrg2019-11-10  Janne Blomqvist  <jb@gcc.gnu.org>
448*ad640425Smrg
449*ad640425Smrg	PR fortran/91413
450*ad640425Smrg	* trans-decl.c (gfc_finish_var_decl): Don't print warning when
451*ad640425Smrg	-fno-automatic is enabled.
452*ad640425Smrg
453*ad640425Smrg2019-11-10  Paul Thomas  <pault@gcc.gnu.org>
454*ad640425Smrg
455*ad640425Smrg	PR fortran/92123
456*ad640425Smrg	*decl.c (gfc_verify_c_interop_param): Remove error asserting
457*ad640425Smrg	that pointer or allocatable variables in a bind C procedure are
458*ad640425Smrg	not supported. Delete some trailing spaces.
459*ad640425Smrg	* trans-stmt.c (trans_associate_var): Correct the attempt to
460*ad640425Smrg	treat scalar pointer or allocatable temporaries as if they are
461*ad640425Smrg	array descriptors.
462*ad640425Smrg
463*ad640425Smrg2019-11-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
464*ad640425Smrg
465*ad640425Smrg	PR fortran/92321
466*ad640425Smrg	* frontend-passes.c (call_external_blas): Commit symbol for
467*ad640425Smrg	external BLAS routine.
468*ad640425Smrg
469*ad640425Smrg2019-11-08  Jakub Jelinek  <jakub@redhat.com>
470*ad640425Smrg
471*ad640425Smrg	* arith.c (character2representation): Change i type to size_t.
472*ad640425Smrg
473*ad640425Smrg2019-11-08  Mark Eggleston  <mark.eggleston@codethink.com>
474*ad640425Smrg	    Jim MacArthur  <jim.macarthur@codethink.co.uk>
475*ad640425Smrg
476*ad640425Smrg	* arith.c (hollerith2representation): Use OPT_Wcharacter_truncation in
477*ad640425Smrg	call to gfc_warning.
478*ad640425Smrg	(character2representation, gfc_character2int, gfc_character2real,
479*ad640425Smrg	gfc_character2complex and gfc_character2logical): New.
480*ad640425Smrg	* arith.h (gfc_character2int, gfc_character2real, gfc_character2complex,
481*ad640425Smrg	gfc_character2logical): Declare.
482*ad640425Smrg	* expr.c (gfc_check_assign): Return true if left hand side is numeric
483*ad640425Smrg	or logical and the right hand side is character and of kind=1.
484*ad640425Smrg	* gfortran.texi: Add -fdec-char-conversions.
485*ad640425Smrg	* intrinsic.c (add_conversions): Add conversions from character to
486*ad640425Smrg	integer, real, complex and logical types for their supported kinds.
487*ad640425Smrg	(gfc_convert_type_warn): Reorder if..else if.. sequence so that warnings
488*ad640425Smrg	are produced for conversion to logical.
489*ad640425Smrg	* invoke.texi: Add option to list of options.
490*ad640425Smrg	* invoke.texi: Add Character conversion subsection to Extensions
491*ad640425Smrg	section.
492*ad640425Smrg	* lang.opt: Add new option.
493*ad640425Smrg	* options.c (set_dec_flags): Add SET_BITFLAG for
494*ad640425Smrg	flag_dec_char_conversions.
495*ad640425Smrg	* resolve.c (resolve_ordindary_assign): Issue error if the left hand
496*ad640425Smrg	side is numeric or logical and the right hand side is a character
497*ad640425Smrg	variable.
498*ad640425Smrg	* simplify.c (gfc_convert_constant): Assign the conversion function
499*ad640425Smrg	depending on destination type.
500*ad640425Smrg	* trans-const.c (gfc_constant_to_tree): Use OPT_Wsurprising in
501*ad640425Smrg	gfc_warning allowing the warning to be switched off only if
502*ad640425Smrg	flag_dec_char_conversions is enabled.
503*ad640425Smrg
504*ad640425Smrg2019-11-08  Tobias Burnus  <tobias@codesourcery.com
505*ad640425Smrg
506*ad640425Smrg	PR fortran/91253
507*ad640425Smrg	* scanner.c (skip_fixed_comments): Move comment
508*ad640425Smrg	lines to next if block.
509*ad640425Smrg	(gfc_next_char_literal): Fix continue_line setting.
510*ad640425Smrg	(get_file): Remove bogus ATTRIBUTE_UNUSED.
511*ad640425Smrg
512*ad640425Smrg2019-11-06  Jerry DeLisle  <jvdelisle@gcc.ngu.org>
513*ad640425Smrg
514*ad640425Smrg	PR fortran/90374
515*ad640425Smrg	* io.c (check_format): Allow zero width for D, E, EN, and ES
516*ad640425Smrg	specifiers as default and when -std=F2018 is given. Retain
517*ad640425Smrg	existing errors when using the -fdec family of flags.
518*ad640425Smrg
519*ad640425Smrg2019-11-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
520*ad640425Smrg
521*ad640425Smrg	PR fortran/92113
522*ad640425Smrg	* trans-decl.c (gfc_get_symbol_decl): If __def_init actually
523*ad640425Smrg	contains a value, put it into  the read-only section.
524*ad640425Smrg
525*ad640425Smrg2019-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
526*ad640425Smrg
527*ad640425Smrg	* decl.c (match_byte_typespec): New function.  Match BYTE type-spec.
528*ad640425Smrg	(gfc_match_decl_type_spec): Use it.
529*ad640425Smrg
530*ad640425Smrg2019-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
531*ad640425Smrg
532*ad640425Smrg	PR fortran/90988
533*ad640425Smrg	* decl.c (gfc_match_private, gfc_match_public): Fixed-form source code
534*ad640425Smrg	does not require whitespace between PRIVATE (or PUBLIC) and an entity.
535*ad640425Smrg
536*ad640425Smrg2019-11-01  Tobias Burnus  <tobias@codesourcery.com>
537*ad640425Smrg
538*ad640425Smrg	* f95-lang.c (LANG_HOOKS_OMP_ARRAY_DATA): Set to gfc_omp_array_data.
539*ad640425Smrg	* trans-array.c (gfc_conv_descriptor_data_get): Handle also
540*ad640425Smrg	REFERENCE_TYPE.
541*ad640425Smrg	* trans-openmp.c (gfc_omp_array_data): New.
542*ad640425Smrg	* trans.h (gfc_omp_array_data): New prototype.
543*ad640425Smrg
544*ad640425Smrg2019-10-31  Tobias Burnus  <tobias@codesourcery.com>
545*ad640425Smrg
546*ad640425Smrg	PR fortran/92284.
547*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Free CFI descriptor
548*ad640425Smrg	at the end; partial revised revert of Rev. 277502.
549*ad640425Smrg
550*ad640425Smrg2019-10-31  Tobias Burnus  <tobias@codesourcery.com>
551*ad640425Smrg
552*ad640425Smrg	PR fortran/92277
553*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Fix DECL_ARTIFICIAL
554*ad640425Smrg	checking.
555*ad640425Smrg
556*ad640425Smrg2019-10-30  Tobias Burnus  <tobias@codesourcery.com>
557*ad640425Smrg
558*ad640425Smrg	PR fortran/92208
559*ad640425Smrg	* trans-array.c (gfc_conv_array_parameter): Only copy
560*ad640425Smrg	string-length backend_decl if expression is not a function.
561*ad640425Smrg
562*ad640425Smrg2019-10-30  Mark Eggleston  <mark.eggleston@codethink.com>
563*ad640425Smrg
564*ad640425Smrg	* invoke.texi: Add -Wno-overwrite-recursive to list of options. Add
565*ad640425Smrg	description of -Wno-overwrite-recursive. Fix typo in description
566*ad640425Smrg	of -Winteger-division.
567*ad640425Smrg	* lang.opt: Add option -Woverwrite-recursive initialised as on.
568*ad640425Smrg	* option.c (gfc_post_options): Output warning only if it is enabled.
569*ad640425Smrg
570*ad640425Smrg2019-10-28  Tobias Burnus  <tobias@codesourcery.com>
571*ad640425Smrg
572*ad640425Smrg	PR fortran/91863
573*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Don't free data
574*ad640425Smrg	memory as that's done on the Fortran side.
575*ad640425Smrg	(gfc_conv_procedure_call): Handle void* pointers from
576*ad640425Smrg	gfc_conv_gfc_desc_to_cfi_desc.
577*ad640425Smrg
578*ad640425Smrg2019-10-27  Paul Thomas  <pault@gcc.gnu.org>
579*ad640425Smrg
580*ad640425Smrg	PR fortran/86248
581*ad640425Smrg	* resolve.c (flag_fn_result_spec): Correct a typo before the
582*ad640425Smrg	function declaration.
583*ad640425Smrg	* trans-decl.c (gfc_sym_identifier): Boost the length of 'name'
584*ad640425Smrg	to allow for all variants. Simplify the code by using a pointer
585*ad640425Smrg	to the symbol's proc_name and taking the return out of each of
586*ad640425Smrg	the conditional branches. Allow symbols with fn_result_spec set
587*ad640425Smrg	that do not come from a procedure namespace and have a module
588*ad640425Smrg	name to go through the non-fn_result_spec branch.
589*ad640425Smrg
590*ad640425Smrg2019-10-25  Cesar Philippidis <cesar@codesourcery.com>
591*ad640425Smrg	    Tobias Burnus  <tobias@codesourcery.com>
592*ad640425Smrg
593*ad640425Smrg	* openmp.c (gfc_match_omp_map_clause): Add and pass allow_commons
594*ad640425Smrg	argument.
595*ad640425Smrg	(gfc_match_omp_clauses): Update calls to permit common blocks for
596*ad640425Smrg	OpenACC's copy/copyin/copyout, create/delete, host,
597*ad640425Smrg	pcopy/pcopy_in/pcopy_out, present_or_copy, present_or_copy_in,
598*ad640425Smrg	present_or_copy_out, present_or_create and self.
599*ad640425Smrg
600*ad640425Smrg2019-10-24  Martin Liska  <mliska@suse.cz>
601*ad640425Smrg
602*ad640425Smrg	PR fortran/92174
603*ad640425Smrg	* array.c (gfc_resolve_array_spec): Break the loop
604*ad640425Smrg	for out of bounds index.
605*ad640425Smrg	* resolve.c (is_non_constant_shape_array): Likewise.
606*ad640425Smrg
607*ad640425Smrg2019-10-23  Steven G. Kargl  <kargl@gcc.gnu.org>
608*ad640425Smrg
609*ad640425Smrg	dump-parse-tree.c (show_expr): Add dumping of BT_BOZ constants.
610*ad640425Smrg
611*ad640425Smrg2019-10-22  Steven G. Kargl  <kargl@gcc.gnu.org>
612*ad640425Smrg
613*ad640425Smrg	PR fortran/92174
614*ad640425Smrg	* decl.c (attr_decl1): Move check for F2018:C822 from here ...
615*ad640425Smrg	* array.c (gfc_set_array_spec): ... to here.
616*ad640425Smrg
617*ad640425Smrg2019-10-18  Steven G. Kargl  <kargl@gcc.gnu.org>
618*ad640425Smrg
619*ad640425Smrg	PR fortran/69455
620*ad640425Smrg	* trans-decl.c (generate_local_decl): Avoid misconstructed
621*ad640425Smrg	intrinsic modules in a BLOCK construct.
622*ad640425Smrg
623*ad640425Smrg2019-10-18  Tobias Burnus  <tobias@codesourcery.com>
624*ad640425Smrg
625*ad640425Smrg	PR fortran/91586
626*ad640425Smrg	* class.c (gfc_find_derived_vtab): Return NULL
627*ad640425Smrg	instead of deref'ing NULL pointer.
628*ad640425Smrg
629*ad640425Smrg2019-10-15  James Norris  <jnorris@codesourcery.com>
630*ad640425Smrg	    Tobias Burnus  <tobias@codesourcery.com>
631*ad640425Smrg
632*ad640425Smrg	PR fortran/65438
633*ad640425Smrg	* openmp.c (check_array_not_assumed): Remove pointer check.
634*ad640425Smrg
635*ad640425Smrg2019-10-14  Steven G. Kargl  <kargl@gcc.gnu.org>
636*ad640425Smrg
637*ad640425Smrg	PR fortran/89943
638*ad640425Smrg	decl.c (gfc_match_function_decl): Ignore duplicate BIND(C) for function
639*ad640425Smrg	declaration in submodule.  Implement at check for F2018 C1550.
640*ad640425Smrg	(gfc_match_entry): Use temporary for locus, which allows removal of
641*ad640425Smrg	one gfc_error_now().
642*ad640425Smrg	(gfc_match_subroutine): Ignore duplicate BIND(C) for subroutine
643*ad640425Smrg	declaration in submodule.  Implement at check for F2018 C1550.
644*ad640425Smrg
645*ad640425Smrg2019-10-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
646*ad640425Smrg
647*ad640425Smrg	PR fortran/92004
648*ad640425Smrg	* array.c (expand_constructor): Set from_constructor on
649*ad640425Smrg	expression.
650*ad640425Smrg	* gfortran.h (gfc_symbol): Add maybe_array.
651*ad640425Smrg	(gfc_expr): Add from_constructor.
652*ad640425Smrg	* interface.c (maybe_dummy_array_arg): New function.
653*ad640425Smrg	(compare_parameter): If the formal argument is generated from a
654*ad640425Smrg	call, check the conditions where an array element could be
655*ad640425Smrg	passed to an array.  Adjust error message for assumed-shape
656*ad640425Smrg	or pointer array.  Use correct language for assumed shaped arrays.
657*ad640425Smrg	(gfc_get_formal_from_actual_arglist): Set maybe_array on the
658*ad640425Smrg	symbol if the actual argument is an array element fulfilling
659*ad640425Smrg	the conditions of 15.5.2.4.
660*ad640425Smrg
661*ad640425Smrg2019-10-14  Tobias Burnus  <tobias@codesourcery.com>
662*ad640425Smrg
663*ad640425Smrg	* error.c: Remove debug pragma added in previous commit.
664*ad640425Smrg
665*ad640425Smrg2019-10-14  Tobias Burnus  <tobias@codesourcery.com>
666*ad640425Smrg
667*ad640425Smrg	PR fortran/92072
668*ad640425Smrg	* error.c (error_print, gfc_format_decoder): Fix %C column-
669*ad640425Smrg	offset handling.
670*ad640425Smrg
671*ad640425Smrg2019-10-13  Damian Rouson  <damain@sourceryinstitue.org>
672*ad640425Smrg
673*ad640425Smrg	PR fortran/91513
674*ad640425Smrg	* resolve.c (resolve_ordinary_assign): Improved error message.
675*ad640425Smrg
676*ad640425Smrg2019-10-13  Steven G. Kargl  <kargl@gcc.gnu.org>
677*ad640425Smrg
678*ad640425Smrg	PR fortran/90297
679*ad640425Smrg	* resolve.c (resolve_typebound_function): Remove code with no
680*ad640425Smrg	functional effect.
681*ad640425Smrg
682*ad640425Smrg2019-10-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
683*ad640425Smrg
684*ad640425Smrg	PR fortran/92017
685*ad640425Smrg	* expr.c (simplify_parameter_variable): Set the character length
686*ad640425Smrg	of the result expression from the original expression if
687*ad640425Smrg	necessary.
688*ad640425Smrg
689*ad640425Smrg2019-10-11  Steven G. Kargl  <kargl@gcc.gnu.org>
690*ad640425Smrg
691*ad640425Smrg	PR fortran/91649
692*ad640425Smrg	check.c (gfc_check_findloc): Additional checking for valid arguments
693*ad640425Smrg
694*ad640425Smrg2019-10-11  Steven G. Kargl  <kargl@gcc.gnu.org>
695*ad640425Smrg
696*ad640425Smrg	PR fortran/91715
697*ad640425Smrg	* decl.c (gfc_match_prefix): If matching a type-spec returns an error,
698*ad640425Smrg	it's an error so re-act correctly.
699*ad640425Smrg
700*ad640425Smrg2019-10-11  Steven G. Kargl  <kargl@gcc.gnu.org>
701*ad640425Smrg
702*ad640425Smrg	PR fortran/92018
703*ad640425Smrg	* check.c (reset_boz): New function.
704*ad640425Smrg	(illegal_boz_arg, boz_args_check, gfc_check_complex, gfc_check_float,
705*ad640425Smrg	gfc_check_transfer): Use it.
706*ad640425Smrg	(gfc_check_dshift): Use reset_boz, and re-arrange the checking to
707*ad640425Smrg	help suppress possible run-on errors.
708*ad640425Smrg	(gfc_check_and): Restore checks for valid argument types.  Use
709*ad640425Smrg	reset_boz, and re-arrange the checking to help suppress possible
710*ad640425Smrg	run-on errors.
711*ad640425Smrg	* resolve.c (resolve_function): Actual arguments cannot be BOZ in
712*ad640425Smrg	a function reference.
713*ad640425Smrg
714*ad640425Smrg2019-10-11  Steven G. Kargl  <kargl@gcc.gnu.org>
715*ad640425Smrg
716*ad640425Smrg	PR fortran/92019
717*ad640425Smrg	* array.c (match_subscript): BOZ cannot be an array subscript.
718*ad640425Smrg
719*ad640425Smrg2019-10-11  Tobias Burnus  <tobias@codesourcery.com>
720*ad640425Smrg
721*ad640425Smrg	PR fortran/92050
722*ad640425Smrg	* trans-expr.c (gfc_conv_procedure_call): Handle code generated
723*ad640425Smrg	by -fcheck=all.
724*ad640425Smrg
725*ad640425Smrg2019-10-11  Tobias Burnus  <tobias@codesourcery.com>
726*ad640425Smrg
727*ad640425Smrg	* f95-lang.c (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Re-define to
728*ad640425Smrg	gfc_omp_is_allocatable_or_ptr.
729*ad640425Smrg	* trans-decl.c (create_function_arglist): Set GFC_DECL_OPTIONAL_ARGUMENT
730*ad640425Smrg	only if not passed by value.
731*ad640425Smrg	* trans-openmp.c (gfc_omp_is_allocatable_or_ptr): New.
732*ad640425Smrg	(gfc_trans_omp_clauses): For MAP, handle (present) optional arguments;
733*ad640425Smrg	for target update, handle allocatable/pointer scalars.
734*ad640425Smrg	* trans.h (gfc_omp_is_allocatable_or_ptr): Declare.
735*ad640425Smrg
736*ad640425Smrg2019-10-10  Tobias Burnus  <tobias@codesourcery.com>
737*ad640425Smrg
738*ad640425Smrg	* trans-openmp.c (gfc_trans_omp_clauses): Actually pass use_device_addr
739*ad640425Smrg	on to the middle end.
740*ad640425Smrg
741*ad640425Smrg2019-10-08  Steven G. Kargl  <kargl@gcc.gnu.org>
742*ad640425Smrg
743*ad640425Smrg	PR fortran/91801
744*ad640425Smrg	* simplify.c (gfc_simplify_reshape): Convert a gcc_assert into a
745*ad640425Smrg	gfc_error as a user can easily hit the condition.
746*ad640425Smrg
747*ad640425Smrg2019-10-08  Tobias Burnus  <tobias@codesourcery.com>
748*ad640425Smrg
749*ad640425Smrg	* parse.c (parse_executable): Add missing ST_OMP_TARGET_SIMD.
750*ad640425Smrg
751*ad640425Smrg2019-10-08  Tobias Burnus  <tobias@codesourcery.com>
752*ad640425Smrg
753*ad640425Smrg	* match.h (gfc_match_omp_eos_error): Renamed from gfc_match_omp_eos.
754*ad640425Smrg	* openmp.c (gfc_match_omp_eos): Make static.
755*ad640425Smrg	(gfc_match_omp_eos_error): New.
756*ad640425Smrg	* parse.c (matchs, matchdo, matchds): Do as done for 'matcho' -
757*ad640425Smrg	if error occurred after OpenMP/OpenACC directive matched, do not
758*ad640425Smrg	try other directives.
759*ad640425Smrg	(decode_oacc_directive, decode_omp_directive): Call new function
760*ad640425Smrg	instead.
761*ad640425Smrg
762*ad640425Smrg2019-10-05  Steven G. Kargl  <kargl@gcc.gnu.org>
763*ad640425Smrg
764*ad640425Smrg	PR fortran/47045
765*ad640425Smrg	* decl.c (variable_decl): Do not search parent namespace for symbol.
766*ad640425Smrg
767*ad640425Smrg2019-10-05  Paul Thomas  <pault@gcc.gnu.org>
768*ad640425Smrg
769*ad640425Smrg	PR fortran/91926
770*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Correct the
771*ad640425Smrg	assignment of the attribute field to account correctly for an
772*ad640425Smrg	assumed shape dummy. Assign separately to the gfc and cfi
773*ad640425Smrg	descriptors since the atribute can be different. Add btanch to
774*ad640425Smrg	correctly handle missing optional dummies.
775*ad640425Smrg
776*ad640425Smrg2019-10-04  Steven G. Kargl  <kargl@gcc.gnu.org>
777*ad640425Smrg
778*ad640425Smrg	PR fortran.91959
779*ad640425Smrg	* fortran/decl.c (variable_decl): Re-arrange code for matching %FILL.
780*ad640425Smrg
781*ad640425Smrg2019-10-04  Tobias Burnus  <tobias@codesourcery.com>
782*ad640425Smrg
783*ad640425Smrg	* error.c (error_print, gfc_format_decoder): Fix off-by one issue
784*ad640425Smrg	with %C.
785*ad640425Smrg
786*ad640425Smrg2019-10-03  Steven G. Kargl  <kargl@gcc.gnu.org>
787*ad640425Smrg
788*ad640425Smrg	PR fortran/91497
789*ad640425Smrg	* simplify.c (gfc_simplify_dble, simplify_intconv, gfc_simplify_real,
790*ad640425Smrg	gfc_simplify_sngl): Disable -Wconversion and -Wconversion-extra
791*ad640425Smrg	warnings for explicit conversion of literal constants.
792*ad640425Smrg
793*ad640425Smrg2019-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
794*ad640425Smrg
795*ad640425Smrg	* primary.c (match_real_constant): Remove shadowing local vars.
796*ad640425Smrg	Rename local vars.  Fix undefined behavior in loop termination.
797*ad640425Smrg	(gfc_convert_to_structure_constructor): Rename local var.
798*ad640425Smrg
799*ad640425Smrg2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>
800*ad640425Smrg
801*ad640425Smrg	PR fortran/84487
802*ad640425Smrg	* trans-decl.c (gfc_get_symbol_decl): For __def_init, set
803*ad640425Smrg	DECL_ARTIFICAL and do not set TREE_READONLY.
804*ad640425Smrg
805*ad640425Smrg2019-10-03  Mark Eggleston  <mark.eggleston@codethink.com>
806*ad640425Smrg
807*ad640425Smrg	* array.c (check_element_type): Call gfc_typename with the gfc_expr
808*ad640425Smrg	"expr" instead of its gfc_typespec "ts".
809*ad640425Smrg	* check.c (gfc_check_co_reduce): Call gfc_typename with the gfc_expr
810*ad640425Smrg	"a" instead of its gfc_typespec "ts".
811*ad640425Smrg	(gfc_check_co_reduce): Call gfc_typename with the gfc_expr "a" instead
812*ad640425Smrg	 of its gfc_typespec "ts".
813*ad640425Smrg	(gfc_check_eoshift): Call gfc_typename with the gfc_expr "array"
814*ad640425Smrg	instead of its gfc_typespec ts.
815*ad640425Smrg	(gfc_check_same_type_as): In two calls to gfc_typename use "a" and "b"
816*ad640425Smrg	of type gfc_expr instead of the "ts" fields of "a" and "b"
817*ad640425Smrg	* decl.c (variable_decl): Call gfc_typename with the gfc_expr
818*ad640425Smrg	"initializer" instead of its gfc_typespec "ts".
819*ad640425Smrg	* expr.c (gfc_check_assign): Use "rvalue" and "lvalue" of type gfc_expr
820*ad640425Smrg	in calls to gfc_typename instead of their "ts" fields of type
821*ad640425Smrg	gfc_typespec.
822*ad640425Smrg	(gfc_check_pointer_assign): Use "rvalue" and "lvalue" of type gfc_expr
823*ad640425Smrg	in calls to gfc_typename instead of their "ts" fields of type
824*ad640425Smrg	gfc_typespec.
825*ad640425Smrg	* gfortran.h: Add prototypes for gfc_dummy_typename and a new function
826*ad640425Smrg	gfc_typename for gfc_expr *.
827*ad640425Smrg	*interface.c (gfc_check_dummy_characteristics): Use gfc_dummy_typename
828*ad640425Smrg	for the dummy variable.
829*ad640425Smrg	(compare_parameter): Use gfc_dummy_typename for the formal argument.
830*ad640425Smrg	Use "actual" of type gfc_expr in call to gfc_typename for the actual
831*ad640425Smrg	argument.
832*ad640425Smrg	* intrinsic.c (check_arglist): Use gfc_dummy_typename for the formal
833*ad640425Smrg	argument. Use expressions of type gfc_expr from the argument list to
834*ad640425Smrg	call gfc_typename.
835*ad640425Smrg	(gfc_convert_type_warn): New local variable "is_char_constant" set if
836*ad640425Smrg	the expression type is a character constant. At the "bad" label
837*ad640425Smrg	determine source type name by calling gfc_typename with either "expr"
838*ad640425Smrg	for character constants or "from_ts" and use that in the warning
839*ad640425Smrg	messages instead of the original call to gfc_typename.
840*ad640425Smrg	* misc.c (gfc_typename): New function for gfc_expr *, use for where
841*ad640425Smrg	character types are possible it can get the character length from
842*ad640425Smrg	gfc_expr for character literals.
843*ad640425Smrg	(gfc_dummy_typename): New functionfor gfc_typespec *, if no character
844*ad640425Smrg	length is present the character type is assumed and the appropriate
845*ad640425Smrg	string is return otherwise it calls gfc_typename for gfc_typespec *.
846*ad640425Smrg	(gfc_typespec): for character types construct the type name with length
847*ad640425Smrg	and kind (if it is not default kind).
848*ad640425Smrg
849*ad640425Smrg2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
850*ad640425Smrg
851*ad640425Smrg	PR fortran/91784
852*ad640425Smrg	* simplify.c (gfc_convert_constant): Simplify expression if the
853*ad640425Smrg	expression type is EXPR_OP.
854*ad640425Smrg
855*ad640425Smrg2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
856*ad640425Smrg
857*ad640425Smrg	PR fortran/91785
858*ad640425Smrg	* primary.c (gfc_match_varspec): Ensure an inquiry parameter has
859*ad640425Smrg	it locus set.
860*ad640425Smrg
861*ad640425Smrg2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
862*ad640425Smrg
863*ad640425Smrg	PR fortran/91942
864*ad640425Smrg	* io.c (match_vtag): Check for non-NULL result->symtree.
865*ad640425Smrg	(match_out_tag): Check for invalid constant due to inquiry parameter.
866*ad640425Smrg	(match_filepos): Instead of a syntax error, go to cleanup to get better
867*ad640425Smrg	error messages.
868*ad640425Smrg
869*ad640425Smrg2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>
870*ad640425Smrg
871*ad640425Smrg	PR fortran/91943
872*ad640425Smrg	* match.c (gfc_match_call): BOZ cannot be an actual argument in
873*ad640425Smrg	a subroutine reference.
874*ad640425Smrg	* resolve.c (resolve_function): BOZ cannot be an actual argument in
875*ad640425Smrg	a function reference.
876*ad640425Smrg
877*ad640425Smrg2019-10-01  Jan Hubicka  <jh@suse.cz>
878*ad640425Smrg
879*ad640425Smrg	* module.c (load_commons): Initialize flags to 0 to silence
880*ad640425Smrg	-Wmaybe-uninitialized warning.
881*ad640425Smrg	(read_module): Likewise for n and comp_name.
882*ad640425Smrg
883*ad640425Smrg2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
884*ad640425Smrg
885*ad640425Smrg	* dump-parse-tree.c (show_omp_clauses): Handle OMP_LIST_USE_DEVICE_ADDR.
886*ad640425Smrg	* gfortran.h (enum): Add OMP_LIST_USE_DEVICE_ADDR.
887*ad640425Smrg	* openmp.c (omp_mask1): Likewise.
888*ad640425Smrg	(gfc_match_omp_clauses): Match 'use_device_addr'.
889*ad640425Smrg	(OMP_TARGET_DATA_CLAUSES): Add OMP_LIST_USE_DEVICE_ADDR.
890*ad640425Smrg	(resolve_omp_clauses): Add it; add is_device_ptr checks.
891*ad640425Smrg
892*ad640425Smrg2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
893*ad640425Smrg
894*ad640425Smrg	* openmp.c (gfc_match_omp_clauses): Show a clause-parsing
895*ad640425Smrg	error if none was rised before.
896*ad640425Smrg	* parse.c (matcha, matcho): If error occurred after
897*ad640425Smrg	OpenMP/OpenACC directive matched, do not try other directives.
898*ad640425Smrg
899*ad640425Smrg2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
900*ad640425Smrg
901*ad640425Smrg	* trans-openmp.c (gfc_omp_is_optional_argument): Fix coding
902*ad640425Smrg	style.
903*ad640425Smrg
904*ad640425Smrg2019-10-02  Kwok Cheung Yeung  <kcy@codesourcery.com>
905*ad640425Smrg
906*ad640425Smrg	* f95-lang.c (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Define to
907*ad640425Smrg	gfc_omp_is_optional_argument.
908*ad640425Smrg	* trans-decl.c (create_function_arglist): Set
909*ad640425Smrg	GFC_DECL_OPTIONAL_ARGUMENT in the generated decl if the parameter is
910*ad640425Smrg	optional.
911*ad640425Smrg	* trans-openmp.c (gfc_omp_is_optional_argument): New.
912*ad640425Smrg	(gfc_omp_privatize_by_reference): Return true if the decl is an
913*ad640425Smrg	optional pass-by-reference argument.
914*ad640425Smrg	* trans.h (gfc_omp_is_optional_argument): New declaration.
915*ad640425Smrg	(lang_decl): Add new optional_arg field.
916*ad640425Smrg	(GFC_DECL_OPTIONAL_ARGUMENT): New macro.
917*ad640425Smrg
918*ad640425Smrg2019-10-01  David Malcolm  <dmalcolm@redhat.com>
919*ad640425Smrg
920*ad640425Smrg	* error.c (gfc_diagnostic_starter): Clear the prefix before
921*ad640425Smrg	calling diagnostic_show_locus.
922*ad640425Smrg
923*ad640425Smrg2019-09-29  Steven G. Kargl  <kargl@gcc.gnu.org>
924*ad640425Smrg
925*ad640425Smrg	PR fortran/91641
926*ad640425Smrg	* check.c (gfc_check_is_contiguous): null() cannot be an actual
927*ad640425Smrg	argument to is_contiguous().
928*ad640425Smrg
929*ad640425Smrg2019-09-29  Steven G. Kargl  <kargl@gcc.gnu.org>
930*ad640425Smrg
931*ad640425Smrg	PR fortran/91714
932*ad640425Smrg	* decl.c (gfc_match_decl_type_spec):  Issue errors for a few
933*ad640425Smrg	mangled types.
934*ad640425Smrg
935*ad640425Smrg2019-09-29  Paul Thomas  <pault@gcc.gnu.org>
936*ad640425Smrg
937*ad640425Smrg	PR fortran/91726
938*ad640425Smrg	* resolve.c (gfc_expr_to_initialize): Bail out with a copy of
939*ad640425Smrg	the original expression if the array ref is a scalar and the
940*ad640425Smrg	array_spec has corank.
941*ad640425Smrg	* trans-array.c (gfc_conv_array_ref): Such expressions are OK
942*ad640425Smrg	even if the array ref codimen is zero.
943*ad640425Smrg	* trans-expr.c (gfc_get_class_from_expr): New function taken
944*ad640425Smrg	from gfc_get_vptr_from_expr.
945*ad640425Smrg	(gfc_get_vptr_from_expr): Call new function.
946*ad640425Smrg	* trans-stmt.c (trans_associate_var): If one of these is a
947*ad640425Smrg	target expression, extract the class expression from the target
948*ad640425Smrg	and copy its fields to a new target variable.
949*ad640425Smrg	* trans.h : Add prototype for gfc_get_class_from_expr.
950*ad640425Smrg
951*ad640425Smrg2019-09-28  Jerry DeLisle  <jvdelisle@gcc.ngu.org>
952*ad640425Smrg
953*ad640425Smrg	PR fortran/91802
954*ad640425Smrg	* decl.c (attr_decl1): Return MATCH_ERROR without free to avoid
955*ad640425Smrg	bad expression type in free_expr0() ICE in rank+corank check.
956*ad640425Smrg
957*ad640425Smrg2019-09-28  Steven G. Kargl  <kargl@gcc.ngu.org>
958*ad640425Smrg
959*ad640425Smrg	PR fortran/91802
960*ad640425Smrg	* decl.c (attr_decl1): Check if rank+corank > 15.
961*ad640425Smrg
962*ad640425Smrg2019-09-28  Steven G. Kargl  <kargl@gcc.gnu.org>
963*ad640425Smrg
964*ad640425Smrg	PR fortran/91864
965*ad640425Smrg	* gcc/fortran/io.c (match_io_element): An inquiry parameter cannot be
966*ad640425Smrg	read into.
967*ad640425Smrg	* gcc/fortran/match.c (gfc_match_allocate): An inquiry parameter
968*ad640425Smrg	can be neither an allocate-object nor stat variable.
969*ad640425Smrg	(gfc_match_deallocate): An inquiry parameter cannot be deallocated.
970*ad640425Smrg
971*ad640425Smrg2019-09-26  Alessandro Fanfarillo  <afanfa@gcc.gnu.org>
972*ad640425Smrg
973*ad640425Smrg	* trans-array.c (structure_alloc_comps):
974*ad640425Smrg	Add new enum item for BCAST_ALLOC_COMP.
975*ad640425Smrg	New argument for structure_alloc_comp, and new case to handle
976*ad640425Smrg	recursive components in derived types.
977*ad640425Smrg	* trans-array.c (gfc_bcast_alloc_comp): New function
978*ad640425Smrg	used to handleco_broadcast for allocatable components
979*ad640425Smrg	of derived types.
980*ad640425Smrg	* trans-array.h: Add gfc_bcast_alloc_comp
981*ad640425Smrg	* trans-intrinsics.c (conv_co_collective): Add check for
982*ad640425Smrg	derived type variable and invocation of co_bcast_alloc_comp.
983*ad640425Smrg	* trans.h: New data structure gfc_co_subroutines_args.
984*ad640425Smrg
985*ad640425Smrg2019-09-25  David Malcolm  <dmalcolm@redhat.com>
986*ad640425Smrg
987*ad640425Smrg	PR fortran/91426
988*ad640425Smrg	* error.c (curr_diagnostic): New static variable.
989*ad640425Smrg	(gfc_report_diagnostic): New static function.
990*ad640425Smrg	(gfc_warning): Replace call to diagnostic_report_diagnostic with
991*ad640425Smrg	call to gfc_report_diagnostic.
992*ad640425Smrg	(gfc_format_decoder): Colorize the text of %L and %C to match the
993*ad640425Smrg	colorization used by diagnostic_show_locus.
994*ad640425Smrg	(gfc_warning_now_at): Replace call to diagnostic_report_diagnostic with
995*ad640425Smrg	call to gfc_report_diagnostic.
996*ad640425Smrg	(gfc_warning_now): Likewise.
997*ad640425Smrg	(gfc_warning_internal): Likewise.
998*ad640425Smrg	(gfc_error_now): Likewise.
999*ad640425Smrg	(gfc_fatal_error): Likewise.
1000*ad640425Smrg	(gfc_error_opt): Likewise.
1001*ad640425Smrg	(gfc_internal_error): Likewise.
1002*ad640425Smrg
1003*ad640425Smrg2019-09-23  Paul Thomas  <pault@gcc.gnu.org>
1004*ad640425Smrg
1005*ad640425Smrg	PR fortran/91729
1006*ad640425Smrg	* match.c (gfc_match_select_rank): Initialise 'as' to NULL.
1007*ad640425Smrg	Check for a symtree in the selector expression before trying to
1008*ad640425Smrg	assign a value to 'as'. Revert to gfc_error and go to cleanup
1009*ad640425Smrg	after setting a MATCH_ERROR.
1010*ad640425Smrg
1011*ad640425Smrg2019-09-20  Tobias Burnus  <tobias@codesourcery.com>
1012*ad640425Smrg
1013*ad640425Smrg	PR fortran/78260
1014*ad640425Smrg	* openmp.c (gfc_resolve_oacc_declare): Reject all
1015*ad640425Smrg	non variables but accept function result variables.
1016*ad640425Smrg	* trans-openmp.c (gfc_trans_omp_clauses): Handle
1017*ad640425Smrg	function-result variables for remaing cases.
1018*ad640425Smrg
1019*ad640425Smrg2019-09-17  Paul Thomas  <pault@gcc.gnu.org>
1020*ad640425Smrg
1021*ad640425Smrg	PR fortran/91588
1022*ad640425Smrg	* expr.c (check_inquiry): Remove extended component refs by
1023*ad640425Smrg	using symbol pointers. If a function argument is an associate
1024*ad640425Smrg	variable with a constant target, copy the target expression in
1025*ad640425Smrg	place of the argument expression. Check that the charlen is not
1026*ad640425Smrg	NULL before using the string length.
1027*ad640425Smrg	(gfc_check_assign): Remove extraneous space.
1028*ad640425Smrg
1029*ad640425Smrg2019-09-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1030*ad640425Smrg
1031*ad640425Smrg	PR fortran/91727
1032*ad640425Smrg	* resolve.c (conformable_arrays):  If array-spec is NULL, then
1033*ad640425Smrg	allocate-object is a scalar.  a conformability check only occurs
1034*ad640425Smrg	for an array source-expr.
1035*ad640425Smrg
1036*ad640425Smrg2019-09-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
1037*ad640425Smrg
1038*ad640425Smrg	PR fortran/91550
1039*ad640425Smrg	* frontend-passes.c (do_subscript): If step equals
1040*ad640425Smrg	zero, a previuos error has been reported; do nothing
1041*ad640425Smrg	in this case.
1042*ad640425Smrg	* resolve.c (gfc_resolve_iterator): Move error checking
1043*ad640425Smrg	after type conversion.
1044*ad640425Smrg
1045*ad640425Smrg2019-09-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1046*ad640425Smrg
1047*ad640425Smrg	PR fortran/91557
1048*ad640425Smrg	PR fortran/91556
1049*ad640425Smrg	* frontend-passes.c (check_externals_procedure): Reformat argument
1050*ad640425Smrg	list. Use gfc_compare_actual_formal instead of gfc_procedure_use.
1051*ad640425Smrg	* gfortran.h (gfc_symbol): Add flag error.
1052*ad640425Smrg	* interface.c (gfc_compare_interfaces): Reformat.
1053*ad640425Smrg	(argument_rank_mismatch): Add where_formal argument. If it is
1054*ad640425Smrg	present, note that the error is between different calls.
1055*ad640425Smrg	(compare_parameter): Change warnings that previously dependended
1056*ad640425Smrg	on -Wargument-mismatch to unconditional.  Issue an error / warning
1057*ad640425Smrg	on type mismatch only once.  Pass where_formal to
1058*ad640425Smrg	argument_rank_mismatch for artificial variables.
1059*ad640425Smrg	(compare_actual_formal): Change warnings that previously
1060*ad640425Smrg	dependeded on -Wargument-mismatch to unconditional.
1061*ad640425Smrg	(gfc_check_typebound_override): Likewise.
1062*ad640425Smrg	(gfc_get_formal_from_actual_arglist): Set declared_at for
1063*ad640425Smrg	artificial symbol.
1064*ad640425Smrg	* invoke.texi: Extend description of -fallow-argument-mismatch.
1065*ad640425Smrg	Delete -Wargument-mismatch.
1066*ad640425Smrg	* lang.opt: Change -Wargument-mismatch to do-nothing option.
1067*ad640425Smrg	* resolve.c (resolve_structure_cons): Change warnings that
1068*ad640425Smrg	previously depended on -Wargument-mismatch to unconditional.
1069*ad640425Smrg	* trans-decl.c (generate_local_decl): Do not warn if the symbol is
1070*ad640425Smrg	artificial.
1071*ad640425Smrg
1072*ad640425Smrg2019-09-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1073*ad640425Smrg
1074*ad640425Smrg	PR fortran/91566
1075*ad640425Smrg	* simplify.c (gfc_simplify_merge): Need to simplify expression
1076*ad640425Smrg	after insertation of parenthesis.
1077*ad640425Smrg
1078*ad640425Smrg2019-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1079*ad640425Smrg
1080*ad640425Smrg	PR fortran/91716
1081*ad640425Smrg	* trans-array.c (gfc_conv_array_initializer): Always assign the
1082*ad640425Smrg	array type of the field to the string constant.
1083*ad640425Smrg
1084*ad640425Smrg2019-09-13  Paul Thomas  <pault@gcc.gnu.org>
1085*ad640425Smrg
1086*ad640425Smrg	PR fortran/91717
1087*ad640425Smrg	* dependency.c (gfc_dep_resolver): Flag identical components
1088*ad640425Smrg	and exit with return value 1 if set and no array refs.
1089*ad640425Smrg
1090*ad640425Smrg2019-09-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1091*ad640425Smrg
1092*ad640425Smrg	PR fortran/91553
1093*ad640425Smrg	* simplify.c (gfc_convert_constant):  During conversion check if the
1094*ad640425Smrg	constant is enclosed in parenthesis, and simplify expression.
1095*ad640425Smrg
1096*ad640425Smrg2019-09-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1097*ad640425Smrg
1098*ad640425Smrg	PR fortran/91642
1099*ad640425Smrg	* io.c (gfc_match_inquire): null() cannot be in an iolength inquire
1100*ad640425Smrg	list.
1101*ad640425Smrg
1102*ad640425Smrg2019-09-05  Harald Anlauf  <anlauf@gmx.de>
1103*ad640425Smrg
1104*ad640425Smrg	PR fortran/91496
1105*ad640425Smrg	* parse.c (parse_executable): Improve error messages for
1106*ad640425Smrg	improperly placed pragmas not preceeding a loop.
1107*ad640425Smrg
1108*ad640425Smrg2019-09-05  Steven G. Kargl  <kargl@gcc.gnu.org>
1109*ad640425Smrg
1110*ad640425Smrg	PR fortran/91660
1111*ad640425Smrg	* decl.c (gfc_match_decl_type_spec): Improve and restore error
1112*ad640425Smrg	message for malformed types-spec.
1113*ad640425Smrg
1114*ad640425Smrg2019-09-04  Steven G. Kargl  <kargl@gcvc.gnu.org>
1115*ad640425Smrg
1116*ad640425Smrg	PR fortran/91650
1117*ad640425Smrg	* io.c (match_io_element):  An output IO list item cannot be a BOZ.
1118*ad640425Smrg
1119*ad640425Smrg2019-09-03  Steven G. Kargl  <kargl@gcc.gnu.org>
1120*ad640425Smrg
1121*ad640425Smrg	* gfortran.texi: Update documentation to catch up with BOZ changes.
1122*ad640425Smrg	* invoke.texi: Fix English from previous BOZ changes commit.
1123*ad640425Smrg
1124*ad640425Smrg2019-09-02  Paul Thomas  <pault@gcc.gnu.org>
1125*ad640425Smrg
1126*ad640425Smrg	PR fortran/91589
1127*ad640425Smrg	* primary.c (gfc_match_varspec): Return MATCH_NO on an apparent
1128*ad640425Smrg	component ref, when the primary type is intrinsic.
1129*ad640425Smrg
1130*ad640425Smrg2019-09-02  Steven G. Kargl  <kargl@gc.gnu.org>
1131*ad640425Smrg
1132*ad640425Smrg	PR fortran/91552
1133*ad640425Smrg	* array.c (walk_array_constructor): New function.
1134*ad640425Smrg	(gfc_match_array_constructor): Use it.
1135*ad640425Smrg
1136*ad640425Smrg2019-09-01  Paul Thomas  <pault@gcc.gnu.org>
1137*ad640425Smrg
1138*ad640425Smrg	* array.c (spec_dimen_size): Check for the presence of
1139*ad640425Smrg	expressions for the bounds.
1140*ad640425Smrg	* decl.c (gfc_match_end): Add case COMP_SELECT_RANK.
1141*ad640425Smrg	* dump-parse-tree.c(show_symbol): Show the arrayspec of class
1142*ad640425Smrg	entities.
1143*ad640425Smrg	(show_code_node): Show the code for SELECT_RANK.
1144*ad640425Smrg	* expr.c (gfc_check_vardef_context): Omit the context of
1145*ad640425Smrg	variable definition for select rank associate names since the
1146*ad640425Smrg	ASSUMED RANK throws.
1147*ad640425Smrg	* gfortran.h : Add ST_SELECT_RANK and ST_RANK to enum
1148*ad640425Smrg	gfc_statement. Add select_rank_temporary to symbol attribute
1149*ad640425Smrg	structure. Add EXEC_SELECT_RANK to enum gfc_exec_op.
1150*ad640425Smrg	* match.c (match_exit_cycle): Add COMP_SELECT_RANK.
1151*ad640425Smrg	(copy_ts_from_selector_to_associate): Add as special case for
1152*ad640425Smrg	assumed rank class variables.
1153*ad640425Smrg	(select_intrinsic_set_tmp): Clean up the code by using symbols
1154*ad640425Smrg	for references to the temporary and the selector.
1155*ad640425Smrg	(select_type_set_tmp): Ditto.
1156*ad640425Smrg	(select_rank_set_tmp): New function.
1157*ad640425Smrg	(gfc_match_select_rank): New function.
1158*ad640425Smrg	(gfc_match_rank_is): New function.
1159*ad640425Smrg	* match.h : Add prototypes for gfc_match_select_rank and
1160*ad640425Smrg	gfc_match_rank_is.
1161*ad640425Smrg	* parse.c (decode_statement): Attempt to match select_rank and
1162*ad640425Smrg	rank statements.
1163*ad640425Smrg	(next_statement, gfc_ascii_statement): Add ST_SELECT_RANK.
1164*ad640425Smrg	(parse_select_rank_block): New function.
1165*ad640425Smrg	(parse_executable): Parse select rank block for ST_SELECT_RANK.
1166*ad640425Smrg	* parse.h : Add COMP_SELECT_RANK to enum gfc_compile_state.
1167*ad640425Smrg	* resolve.c (resolve_variable): Exclude select_rank_temporaries
1168*ad640425Smrg	from the check on use of ASSUMED RANK.
1169*ad640425Smrg	(gfc_resolve_expr): Make sure that unlimited polymorphic select
1170*ad640425Smrg	rank temporaries expressions are not resolved again after being
1171*ad640425Smrg	successfully resolved.
1172*ad640425Smrg	(resolve_assoc_var): Do not do the rank check for select rank
1173*ad640425Smrg	temporaries.
1174*ad640425Smrg	(resolve_select_rank): New function.
1175*ad640425Smrg	(gfc_resolve_blocks): Deal with case EXEC_SELECT_RANK.
1176*ad640425Smrg	(resolve_symbol): Exclude select rank temporaries for check on
1177*ad640425Smrg	use of ASSUMED RANK.
1178*ad640425Smrg	* st.c (gfc_free_statement): Include EXEC_SELECT_RANK.
1179*ad640425Smrg	* trans-array.c (gfc_conv_array_ref): Select rank temporaries
1180*ad640425Smrg	may have dimen == 0.
1181*ad640425Smrg	(gfc_conv_expr_descriptor): Zero the offset of select rank
1182*ad640425Smrg	temporaries.
1183*ad640425Smrg	* trans-stmt.c (copy_descriptor): New function.
1184*ad640425Smrg	(trans_associate_var): Add code to associate select rank temps.
1185*ad640425Smrg	(gfc_trans_select_rank_cases): New function.
1186*ad640425Smrg	(gfc_trans_select_rank): New function.
1187*ad640425Smrg	* trans-stmt.h : Add prototype for gfc_trans_select_rank.
1188*ad640425Smrg	trans.c (trans_code): Add select rank case.
1189*ad640425Smrg
1190*ad640425Smrg2019-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>
1191*ad640425Smrg
1192*ad640425Smrg	PR fortran/91587
1193*ad640425Smrg	* io.c (match_filepos): MATCH_ERROR should branch to a syntax error.
1194*ad640425Smrg
1195*ad640425Smrg2019-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1196*ad640425Smrg
1197*ad640425Smrg	PR fortran/91551
1198*ad640425Smrg	* intrinsic.c (sort_actual): ALLOCATED has one argument. Check for
1199*ad640425Smrg	no argument case.
1200*ad640425Smrg
1201*ad640425Smrg2019-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1202*ad640425Smrg
1203*ad640425Smrg	PR fortran/91565
1204*ad640425Smrg	* simplify.c (gfc_simplify_reshape): Add additional checks of the
1205*ad640425Smrg	ORDER dummy argument.
1206*ad640425Smrg
1207*ad640425Smrg2019-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1208*ad640425Smrg
1209*ad640425Smrg	PR fortran/91564
1210*ad640425Smrg	* check.c (gfc_check_kill_sub): Additional checks on status dummy
1211*ad640425Smrg	argument.
1212*ad640425Smrg
1213*ad640425Smrg2019-08-28  Mark Eggleston  <mark.eggleston@codethink.com>
1214*ad640425Smrg
1215*ad640425Smrg	* intrinsics.text: Corrected stated standard for intrinsics
1216*ad640425Smrg	and specific intrinsics where necessary.  Also in C_SIZEOF the
1217*ad640425Smrg	printed value is T not .TRUE.. In IPARITY example wrap BOZ
1218*ad640425Smrg	constants in calls to INT.
1219*ad640425Smrg
1220*ad640425Smrg2019-08-27  Harald Anlauf  <anlauf@gmx.de>
1221*ad640425Smrg
1222*ad640425Smrg	PR fortran/91496
1223*ad640425Smrg	* gfortran.h: Extend struct gfc_iterator for loop annotations.
1224*ad640425Smrg	* array.c (gfc_copy_iterator): Copy loop annotations by IVDEP,
1225*ad640425Smrg	VECTOR, and NOVECTOR pragmas.
1226*ad640425Smrg	* decl.c (gfc_match_gcc_ivdep, gfc_match_gcc_vector)
1227*ad640425Smrg	(gfc_match_gcc_novector): New matcher functions handling IVDEP,
1228*ad640425Smrg	VECTOR, and NOVECTOR pragmas.
1229*ad640425Smrg	* match.h: Declare prototypes of matcher functions handling IVDEP,
1230*ad640425Smrg	VECTOR, and NOVECTOR pragmas.
1231*ad640425Smrg	* parse.c (decode_gcc_attribute, parse_do_block)
1232*ad640425Smrg	(parse_executable): Decode IVDEP, VECTOR, and NOVECTOR pragmas;
1233*ad640425Smrg	emit warning for unrecognized pragmas instead of error.
1234*ad640425Smrg	* trans-stmt.c (gfc_trans_simple_do, gfc_trans_do): Add code to
1235*ad640425Smrg	emit annotations for IVDEP, VECTOR, and NOVECTOR pragmas.
1236*ad640425Smrg	* gfortran.texi: Document IVDEP, VECTOR, and NOVECTOR pragmas.
1237*ad640425Smrg
1238*ad640425Smrg2019-08-27  Mark Eggleston  <mark.eggleston@codethink.com>
1239*ad640425Smrg
1240*ad640425Smrg	* invoke.texi: Ensure that the option lists fit within the
1241*ad640425Smrg	margins of a PDF page.  Re-worded description of
1242*ad640425Smrg	'-ffrontend-loop-interchange' so that it fits with the margins
1243*ad640425Smrg	of a PDF page.  Add '-fdec-include', '-fdec-blank-format-item'
1244*ad640425Smrg	and '-fdec-format-defaults' to list of options that are enabled
1245*ad640425Smrg	by '-fdec'.
1246*ad640425Smrg
1247*ad640425Smrg2019-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1248*ad640425Smrg
1249*ad640425Smrg	PR fortran/91390
1250*ad640425Smrg	PR fortran/91473
1251*ad640425Smrg	* frontend-passes.c (gfc_check_externals): Make
1252*ad640425Smrg	gfc_errors_to_warnings conditional on -fallow-argument-mismatch.
1253*ad640425Smrg	* invoke.texi: Document -fallow-argument-mismatch.
1254*ad640425Smrg	* lang.opt: Add -fallow-argument-mismatch.
1255*ad640425Smrg
1256*ad640425Smrg2019-08-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1257*ad640425Smrg
1258*ad640425Smrg	PR fortran/91390
1259*ad640425Smrg	PR fortran/91519
1260*ad640425Smrg	* frontend-passes.c (check_externals_procedure): New
1261*ad640425Smrg	function. If a procedure is not in the translation unit, create
1262*ad640425Smrg	an "interface" for it, including its formal arguments.
1263*ad640425Smrg	(check_externals_code): Use check_externals_procedure for common
1264*ad640425Smrg	code with check_externals_expr.
1265*ad640425Smrg	(check_externals_expr): Vice versa.
1266*ad640425Smrg	* gfortran.h (gfc_get_formal_from_actual-arglist): New prototype.
1267*ad640425Smrg	(gfc_compare_actual_formal): New prototype.
1268*ad640425Smrg	* interface.c (compare_actual_formal): Rename to
1269*ad640425Smrg	(gfc_compare_actual_formal): New function, make global.
1270*ad640425Smrg	(gfc_get_formal_from_actual_arglist): Make global, and move here from
1271*ad640425Smrg	* trans-types.c (get_formal_from_actual_arglist): Remove here.
1272*ad640425Smrg	(gfc_get_function_type): Use gfc_get_formal_from_actual_arglist.
1273*ad640425Smrg
1274*ad640425Smrg2019-08-23  Mark Eggleston  <mark.eggleston@codethink.com>
1275*ad640425Smrg
1276*ad640425Smrg	* intrinsics.text: References in 'See also:' are now on
1277*ad640425Smrg	separate lines to ensure that they always fit in the margins of
1278*ad640425Smrg	a PDF page.  The column widths of tables have been adjusted
1279*ad640425Smrg	where necessary to prevent overlapping text.  All program
1280*ad640425Smrg	examples now fit within the margins of a PDF page.
1281*ad640425Smrg
1282*ad640425Smrg2019-08-23  Jakub Jelinek  <jakub@redhat.com>
1283*ad640425Smrg
1284*ad640425Smrg	PR middle-end/91283
1285*ad640425Smrg	* options.c (gfc_post_options): Set flag_excess_precision instead of
1286*ad640425Smrg	flag_excess_precision_cmdline.  Remove comment.
1287*ad640425Smrg
1288*ad640425Smrg2019-08-23  Mark Eggleston  <mark.eggleston@codethink.com>
1289*ad640425Smrg
1290*ad640425Smrg	* intrinsics.text: Removed empty sections. The order of
1291*ad640425Smrg	sections for each intrinsic is now consistent throughout.
1292*ad640425Smrg	Stray words removed. Text in the wrong section moved.
1293*ad640425Smrg	Missing standard statement inserted.
1294*ad640425Smrg
1295*ad640425Smrg2019-08-23  Mark Eggleston  <mark.eggleston@codethink.com>
1296*ad640425Smrg
1297*ad640425Smrg	* intrinsics.text: Correct the return types for ZABS and CDABS.
1298*ad640425Smrg
1299*ad640425Smrg2019-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
1300*ad640425Smrg
1301*ad640425Smrg	* intrinsic.c (add_subroutines): ERRMSG is INTENT(INOUT) in
1302*ad640425Smrg	co_broadcast, co_max, co_min, co_reduce, and  co_sum.
1303*ad640425Smrg
1304*ad640425Smrg2019-08-20  Mark Eggleston  <mark.eggleston@codethink.com>
1305*ad640425Smrg
1306*ad640425Smrg	PR fortran/89236
1307*ad640425Smrg	* intrinsic.texi: Add GNU extension notes to DIM, MOD, MODULO.
1308*ad640425Smrg
1309*ad640425Smrg2019-08-19  Mark Eggleston  <mark.eggleston@codethink.com>
1310*ad640425Smrg
1311*ad640425Smrg	* gfortran.texi: Delete paragraph about integer overload errors
1312*ad640425Smrg	when initialising integer variables with BOZ constants as these
1313*ad640425Smrg	no longer occur.
1314*ad640425Smrg
1315*ad640425Smrg2019-08-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1316*ad640425Smrg
1317*ad640425Smrg	PR fortran/91485
1318*ad640425Smrg	module.c (gfc_match_use): User defined operator cannot conflict with
1319*ad640425Smrg	a rename symbol.
1320*ad640425Smrg
1321*ad640425Smrg2019-08-17  Steven G. Kargl  <kargl@gcc.gnu.org>
1322*ad640425Smrg
1323*ad640425Smrg	PR fortran/82992
1324*ad640425Smrg	* module.c (gfc_match_use):  When renaming a module entity, search
1325*ad640425Smrg	current namespace for conflicting symbol.
1326*ad640425Smrg
1327*ad640425Smrg2019-08-17  Steven G. Kargl  <kargl@gcc.gnu.org>
1328*ad640425Smrg
1329*ad640425Smrg	PR fortran/78739
1330*ad640425Smrg	* match.c (gfc_match_st_function):  When matching a statement function,
1331*ad640425Smrg	need to check if the statement function name shadows the function
1332*ad640425Smrg	name.
1333*ad640425Smrg
1334*ad640425Smrg2019-08-17  Steven G. Kargl  <kargl@gcc.gnu.org>
1335*ad640425Smrg
1336*ad640425Smrg	PR fortran/78719
1337*ad640425Smrg	* decl.c (get_proc_name): Check for a CLASS entity when trying to
1338*ad640425Smrg	add attributes to an entity that already has an explicit interface.
1339*ad640425Smrg
1340*ad640425Smrg2019-08-17  Steven G. Kargl  <kargl@gcc.gnu.org>
1341*ad640425Smrg
1342*ad640425Smrg	PR fortran/91471
1343*ad640425Smrg	* primary.c (gfc_variable_attr): Remove a gfc_internal_error(),
1344*ad640425Smrg	which cannot be reached by conforming Fortran code, but seems to
1345*ad640425Smrg	be reachable from nonconforming Fortran code.  Treat the AR_UNKNOWN
1346*ad640425Smrg	case as a no-op.
1347*ad640425Smrg
1348*ad640425Smrg2019-08-17  Janne Blomqvist  <jb@gcc.gnu.org>
1349*ad640425Smrg
1350*ad640425Smrg	PR fortran/68401
1351*ad640425Smrg	* trans-decl.c (gfc_build_builtin_function_decls): Replace
1352*ad640425Smrg	os_error with os_error_at decl.
1353*ad640425Smrg	* trans.c (trans_runtime_error_vararg): Modify so the error
1354*ad640425Smrg	function decl is passed directly.
1355*ad640425Smrg	(gfc_trans_runtime_error): Pass correct error function decl.
1356*ad640425Smrg	(gfc_trans_runtime_check): Likewise.
1357*ad640425Smrg	(trans_os_error_at): New function.
1358*ad640425Smrg	(gfc_call_malloc): Use trans_os_error_at.
1359*ad640425Smrg	(gfc_allocate_using_malloc): Likewise.
1360*ad640425Smrg	(gfc_call_realloc): Likewise.
1361*ad640425Smrg	* trans.h (gfor_fndecl_os_error): Replace with gfor_fndecl_os_error_at.
1362*ad640425Smrg
1363*ad640425Smrg2019-08-16  Jeff Law <law@redhat.com>
1364*ad640425Smrg	    Mark Eggleston <mark.eggleston@codethink.com>
1365*ad640425Smrg
1366*ad640425Smrg	* gfortran.h: Add gfc_check_conflict declaration.
1367*ad640425Smrg	* symbol.c (check_conflict): Rename cfg_check_conflict and remove
1368*ad640425Smrg	static.
1369*ad640425Smrg	* symbol.c (cfg_check_conflict): Remove automatic in equivalence
1370*ad640425Smrg	conflict check.
1371*ad640425Smrg	* symbol.c (save_symbol): Add check for in equivalence to stop the
1372*ad640425Smrg	the save attribute being added.
1373*ad640425Smrg	* trans-common.c (build_equiv_decl): Add is_auto parameter and
1374*ad640425Smrg	add !is_auto to condition where TREE_STATIC (decl) is set.
1375*ad640425Smrg	* trans-common.c (build_equiv_decl): Add local variable is_auto,
1376*ad640425Smrg	set it true if an atomatic attribute is encountered in the variable
1377*ad640425Smrg	list.  Call build_equiv_decl with is_auto as an additional parameter.
1378*ad640425Smrg	flag_dec_format_defaults is enabled.
1379*ad640425Smrg	* trans-common.c (accumulate_equivalence_attributes) : New subroutine.
1380*ad640425Smrg	* trans-common.c (find_equivalence) : New local variable dummy_symbol,
1381*ad640425Smrg	accumulated equivalence attributes from each symbol then check for
1382*ad640425Smrg	conflicts.
1383*ad640425Smrg
1384*ad640425Smrg2019-08-16  Richard Biener  <rguenther@suse.de>
1385*ad640425Smrg
1386*ad640425Smrg	* trans-intrinsic.c (gfc_conv_intrinsic_findloc): Initialize
1387*ad640425Smrg	forward_branch to avoid bogus uninitialized warning.
1388*ad640425Smrg
1389*ad640425Smrg2019-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
1390*ad640425Smrg
1391*ad640425Smrg	PR fortran/91443
1392*ad640425Smrg	* frontend-passes.c (check_externals_expr): New function.
1393*ad640425Smrg	(check_externals_code): New function.
1394*ad640425Smrg	(gfc_check_externals): New function.
1395*ad640425Smrg	* gfortran.h (debug): Add prototypes for gfc_symbol * and
1396*ad640425Smrg	gfc_expr *.
1397*ad640425Smrg	(gfc_check_externals): Add prototype.
1398*ad640425Smrg	* interface.c (compare_actual_formal): Do not complain about
1399*ad640425Smrg	alternate returns if the formal argument is optional.
1400*ad640425Smrg	(gfc_procedure_use): Handle cases when an error has been issued
1401*ad640425Smrg	previously.  Break long line.
1402*ad640425Smrg	* parse.c (gfc_parse_file): Call gfc_check_externals for all
1403*ad640425Smrg	external procedures.
1404*ad640425Smrg	* resolve.c (resolve_global_procedure): Remove checking of
1405*ad640425Smrg	argument list.
1406*ad640425Smrg
1407*ad640425Smrg2019-08-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1408*ad640425Smrg
1409*ad640425Smrg	PR fortran/87991
1410*ad640425Smrg	* resolve.c (check_data_variable): data-stmt-object with pointer
1411*ad640425Smrg	attribute requires a data-stmt-value with the target attribute.
1412*ad640425Smrg
1413*ad640425Smrg2019-08-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1414*ad640425Smrg
1415*ad640425Smrg	PR fortran/88072
1416*ad640425Smrg	* misc.c (gfc_typename): Do not point to something that ought not to
1417*ad640425Smrg	be pointed at.
1418*ad640425Smrg
1419*ad640425Smrg2013-08-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1420*ad640425Smrg
1421*ad640425Smrg	PR fortran/90563
1422*ad640425Smrg	* frontend-passes.c (insert_index): Suppress errors while
1423*ad640425Smrg	simplifying the resulting expression.
1424*ad640425Smrg
1425*ad640425Smrg2019-08-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1426*ad640425Smrg
1427*ad640425Smrg	PR fortran/89647
1428*ad640425Smrg	resolve.c (resolve_typebound_procedure): Allow host associated
1429*ad640425Smrg	procedure to be a binding target.  While here, wrap long line.
1430*ad640425Smrg
1431*ad640425Smrg2019-08-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1432*ad640425Smrg
1433*ad640425Smrg	PR fortran/87993
1434*ad640425Smrg	* expr.c (gfc_simplify_expr): Simplifcation of an array with a kind
1435*ad640425Smrg	type inquiry suffix yields a constant expression.
1436*ad640425Smrg
1437*ad640425Smrg2019-08-13  Janne Blomqvist  <jb@gcc.gnu.org>
1438*ad640425Smrg
1439*ad640425Smrg        PR fortran/91414
1440*ad640425Smrg        * check.c (gfc_check_random_seed): Reduce seed_size.
1441*ad640425Smrg        * intrinsic.texi (RANDOM_NUMBER): Update to match new PRNG.
1442*ad640425Smrg
1443*ad640425Smrg2019-08-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1444*ad640425Smrg
1445*ad640425Smrg	PR fortran/91424
1446*ad640425Smrg	* frontend-passes.c (do_subscript): Do not warn for an
1447*ad640425Smrg	expression a second time.  Do not warn about a zero-trip loop.
1448*ad640425Smrg	(doloop_warn): Also look at contained namespaces.
1449*ad640425Smrg
1450*ad640425Smrg2019-08-11  Janne Blomqvist  <jb@gcc.gnu.org>
1451*ad640425Smrg
1452*ad640425Smrg	PR fortran/91413
1453*ad640425Smrg	* invoke.texi (-fmax-stack-var-size): Document increased default.
1454*ad640425Smrg	* options.c (gfc_post_options): Increase default stack var size to
1455*ad640425Smrg	65536 bytes.
1456*ad640425Smrg	* trans-decl.c (gfc_finish_var_decl): Generate warning when local
1457*ad640425Smrg	array moved to static storage.
1458*ad640425Smrg
1459*ad640425Smrg2019-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1460*ad640425Smrg
1461*ad640425Smrg	* decl.c (match_old_style_init): Use a clearer error message.
1462*ad640425Smrg	* expr.c (gfc_check_assign): Update BOZ checking to provide a stricter
1463*ad640425Smrg	adherence to the Fortran standard.  Use gfc_invalid_boz () to
1464*ad640425Smrg	relax errors into warnings.
1465*ad640425Smrg	* gfortran.h (gfc_isym_id): Add new ids GFC_ISYM_DFLOAT,
1466*ad640425Smrg	GFC_ISYM_FLOAT, GFC_ISYM_REALPART, and GFC_ISYM_SNGL
1467*ad640425Smrg	* intrinsic.c (add_functions): Use new ids to split REAL generic into
1468*ad640425Smrg	REAL, FLOAT, DFLOAT, SNGL, and REALPART generics.
1469*ad640425Smrg	(gfc_intrinsic_func_interface): Allow new intrinsics in an
1470*ad640425Smrg	initialization expression
1471*ad640425Smrg	* resolve.c (resolve_operator): Deal with BOZ as operands.
1472*ad640425Smrg        Use gfc_invalid_boz to allow for errors or warnings via the
1473*ad640425Smrg	-fallow-invalid-boz option.  A BOZ cannot be an operand to an
1474*ad640425Smrg	unary operator.  Both operands of a binary operator cannot be BOZ.
1475*ad640425Smrg        For binary operators, convert a BOZ operand into the type and
1476*ad640425Smrg	kind of the other operand for REAL or INTEGER operand.
1477*ad640425Smrg	* trans-intrinsic.c: Use new ids to cause conversions to happen.
1478*ad640425Smrg
1479*ad640425Smrg2019-08-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1480*ad640425Smrg
1481*ad640425Smrg	PR fortran/91359
1482*ad640425Smrg	* trans-decl.c (gfc_generate_return): Ensure something is returned
1483*ad640425Smrg	from a function.
1484*ad640425Smrg
1485*ad640425Smrg2019-08-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1486*ad640425Smrg
1487*ad640425Smrg	PR fortran/42546
1488*ad640425Smrg	* check.c(gfc_check_allocated): Add comment pointing to ...
1489*ad640425Smrg 	* intrinsic.c(sort_actual): ... the checking done here.
1490*ad640425Smrg
1491*ad640425Smrg2019-08-05  Steven g. Kargl  <kargl@gcc.gnu.org>
1492*ad640425Smrg
1493*ad640425Smrg	PR fortran/91372
1494*ad640425Smrg	* decl.c (gfc_match_data): Allow an implied do-loop to nestle against
1495*ad640425Smrg	DATA.
1496*ad640425Smrg
1497*ad640425Smrg2019-08-04  Steven G. Kargl  <kargl@gcc.gnu.org>
1498*ad640425Smrg
1499*ad640425Smrg	PR fortran/88227
1500*ad640425Smrg	* check.c (oct2bin): New function.  Convert octal string to binary.
1501*ad640425Smrg	(hex2bin): New function.  Convert hexidecimal string to binary.
1502*ad640425Smrg	(bin2real): New function.  Convert binary string to REAL.  Use
1503*ad640425Smrg	oct2bin and hex2bin.
1504*ad640425Smrg	(gfc_boz2real): Use fallback conversion bin2real.
1505*ad640425Smrg
1506*ad640425Smrg2019-08-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1507*ad640425Smrg
1508*ad640425Smrg	PR fortran/90985
1509*ad640425Smrg	* decl.c (gfc_match_data): In free-form code, DATA be followed by
1510*ad640425Smrg	whitespace.
1511*ad640425Smrg
1512*ad640425Smrg2019-08-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1513*ad640425Smrg
1514*ad640425Smrg	PR fortran/90986
1515*ad640425Smrg	* match.c (gfc_match_equivalence): Check that EQUIVALENCE is followed
1516*ad640425Smrg	by '('.
1517*ad640425Smrg
1518*ad640425Smrg2019-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>
1519*ad640425Smrg
1520*ad640425Smrg	PR fortran/91296
1521*ad640425Smrg	* interface.c (compare_actual_expr): When checking for aliasing, add
1522*ad640425Smrg	a case to handle REF_INQUIRY (e.g., foo(x%re, x%im) do not alias).
1523*ad640425Smrg
1524*ad640425Smrg2019-07-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1525*ad640425Smrg
1526*ad640425Smrg	PR fortran/90813
1527*ad640425Smrg	* dump-parse-tree.c (show_global_symbol): New function.
1528*ad640425Smrg	(gfc_dump_global_symbols): New function.
1529*ad640425Smrg	* gfortran.h (gfc_traverse_gsymbol): Add prototype.
1530*ad640425Smrg	(gfc_dump_global_symbols): Likewise.
1531*ad640425Smrg	* invoke.texi: Document -fdump-fortran-global.
1532*ad640425Smrg	* lang.opt: Add -fdump-fortran-global.
1533*ad640425Smrg	* parse.c (gfc_parse_file): Handle flag_dump_fortran_global.
1534*ad640425Smrg	* symbol.c (gfc_traverse_gsymbol): New function.
1535*ad640425Smrg	* trans-decl.c (sym_identifier): New function.
1536*ad640425Smrg	(mangled_identifier): New function, doing most of the work
1537*ad640425Smrg	of gfc_sym_mangled_identifier.
1538*ad640425Smrg	(gfc_sym_mangled_identifier): Use mangled_identifier.  Add mangled
1539*ad640425Smrg	identifier to global symbol table.
1540*ad640425Smrg	(get_proc_pointer_decl): Use backend decl from global identifier
1541*ad640425Smrg	if present.
1542*ad640425Smrg
1543*ad640425Smrg2019-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1544*ad640425Smrg
1545*ad640425Smrg	PR fortran/65819
1546*ad640425Smrg	* dependency.h (gfc_dep_resovler): Add optional argument identical.
1547*ad640425Smrg	* dependency.c (gfc_check_dependency): Do not alway return 1 if
1548*ad640425Smrg	the symbol is the same. Pass on identical to gfc_dep_resolver.
1549*ad640425Smrg	(gfc_check_element_vs_element): Whitespace fix.
1550*ad640425Smrg	(gfc_dep_resolver): Adjust comment for function.  If identical is
1551*ad640425Smrg	true, return 1 if any overlap has been found.
1552*ad640425Smrg
1553*ad640425Smrg2019-07-23  Steven G. Kargl  <kargl@gcc.gnu.org>
1554*ad640425Smrg
1555*ad640425Smrg	PR fortran/54072
1556*ad640425Smrg	* check.c (gfc_invalid_boz): Fix comment.
1557*ad640425Smrg	(illegal_boz_arg): New function.
1558*ad640425Smrg	(gfc_check_transfer): Use to arguments.
1559*ad640425Smrg	(gfc_check_storage_size): Ditto.
1560*ad640425Smrg	(gfc_check_complex): Remove leftover comment from BOZ patch.
1561*ad640425Smrg	* primary.c (match_boz_constant): Remove leftover comment.
1562*ad640425Smrg
1563*ad640425Smrg2019-07-23  Steven G. Kargl  <kargl@gcc.gnu.org>
1564*ad640425Smrg
1565*ad640425Smrg	* arith.c (gfc_convert_integer, gfc_convert_real, gfc_convert_complex):
1566*ad640425Smrg	Move to ...
1567*ad640425Smrg	* primary.c (convert_integer, convert_real, convert_complex): ... here.
1568*ad640425Smrg	Rename and make static functions.
1569*ad640425Smrg	(match_integer_constant): Use convert_integer
1570*ad640425Smrg	(match_real_constant): Use convert_real.
1571*ad640425Smrg	(match_complex_constant: Use convert_complex.
1572*ad640425Smrg	* arith.h (gfc_convert_integer, gfc_convert_real, gfc_convert_complex):
1573*ad640425Smrg	Remove prototypes.
1574*ad640425Smrg	* array.c (match_array_cons_element): A BOZ cannot be a data
1575*ad640425Smrg	statement value.  Jump to a common exit point.
1576*ad640425Smrg	* check.c (gfc_invalid_boz): New function.  Emit error or warning
1577*ad640425Smrg	for a BOZ in an invalid context.
1578*ad640425Smrg	(boz_args_check): Move to top of file to prevent need of forward
1579*ad640425Smrg	declaration.
1580*ad640425Smrg	(is_boz_constant): New function.  Check that BOZ expr is constant.
1581*ad640425Smrg	(gfc_boz2real): New function. In-place conversion of BOZ literal
1582*ad640425Smrg	constant to REAL in accordance to F2018.
1583*ad640425Smrg	(gfc_boz2int): New function. In-place conversion of BOZ literal
1584*ad640425Smrg	constant to INTEGER in accordance to F2018.
1585*ad640425Smrg	(gfc_check_achar, gfc_check_char, gfc_check_float): Use gfc_invalid_boz.  Convert BOZ
1586*ad640425Smrg	as needed.
1587*ad640425Smrg	(gfc_check_bge_bgt_ble_blt): Enforce F2018 requirements on BGE,
1588*ad640425Smrg	BGT, BLE, and BLT intrinsic functions.
1589*ad640425Smrg	(gfc_check_cmplx): Re-organize to check kind, if present, first.
1590*ad640425Smrg	Convert BOZ real and/or imaginary parts as needed in accordance to
1591*ad640425Smrg	F2018.
1592*ad640425Smrg	(gfc_check_complex): Use gfc_invalid_boz.  Convert BOZ as needed.
1593*ad640425Smrg	(gfc_check_dcmplx, gfc_check_dble ): Convert BOZ as needed.
1594*ad640425Smrg	(gfc_check_dshift): Make dshift[lr] conform to F2018 standard.
1595*ad640425Smrg 	gfc_check_float (gfc_expr *a)
1596*ad640425Smrg	(gfc_check_iand_ieor_ior): Make IAND, IEOR, and IOR conform to
1597*ad640425Smrg	F2018 standard.
1598*ad640425Smrg	(gfc_check_int): Conform to F2018 standard.
1599*ad640425Smrg	(gfc_check_intconv): Deprecate SHORT and LONG aliases for INT2 and
1600*ad640425Smrg	INT.  Simply return for a BOZ argument. See gfc_simplify_intconv.
1601*ad640425Smrg	(gfc_check_merge_bits): Make MERGE_BITS conform to Fortran 2018
1602*ad640425Smrg	standard.
1603*ad640425Smrg	(gfc_check_real): Remove incorrect comment. Check kind, if present,
1604*ad640425Smrg	first.  Simply return for a BOZ argument. See gfc_simplify_real.
1605*ad640425Smrg	(gfc_check_and): Re-do error handling for BOZ arguments.  Remove
1606*ad640425Smrg	special casing ts.type != BT_INTEGER or BT_LOGICAL.
1607*ad640425Smrg	* decl.c (match_old_style_init): Check for BOZ in old-style
1608*ad640425Smrg	initialization.  Issue error or warning depending on
1609*ad640425Smrg	-fallow-invalid-boz option.  Issue error if variable is not an
1610*ad640425Smrg	INTEGER or REAL and the value is BOZ.
1611*ad640425Smrg	* expr.c (gfc_copy_expr): Copy a BT_BOZ gfc_expr.
1612*ad640425Smrg	(gfc_check_assign): Re-do error handling for a BOZ in an assignment
1613*ad640425Smrg	statement.  Do in-place conversion of RHS based on LHS type of
1614*ad640425Smrg	INTEGER or REAL.
1615*ad640425Smrg	* gfortran.h (gfc_expr): Add a boz component.  Remove is_boz component.
1616*ad640425Smrg	(gfc_boz2int, gfc_boz2real, gfc_invalid_boz): New prototypes.
1617*ad640425Smrg	* interface.c (gfc_extend_assign): Guard against replacing an
1618*ad640425Smrg	intrinsic involving a BOZ literal constant on RHS.
1619*ad640425Smrg	* invoke.texi: Doument -fallow-invalid-boz.
1620*ad640425Smrg	* lang.opt: New option. -fallow-invalid-boz.
1621*ad640425Smrg	* libgfortran.h (bt): Elevate BOZ to a basic type.
1622*ad640425Smrg	* misc.c (gfc_basic_typename, gfc_typename): Translate BT_BOZ to BOZ.
1623*ad640425Smrg	* primary.c (convert_integer, convert_real, convert_complex): to here.
1624*ad640425Smrg	Rename and make static functions.
1625*ad640425Smrg	* primary.c(match_boz_constant): Rewrite parsing of a BOZ. Re-do
1626*ad640425Smrg	error handling.  Deprecate 'X' for hexidecimal and postfix notation.
1627*ad640425Smrg	Use -fallow-invalid-boz and gfc_invalid_boz to accept deprecated code.
1628*ad640425Smrg	* resolve.c (resolve_ordinary_assign): Rework a RHS that is a
1629*ad640425Smrg	BOZ literal constant.  Use gfc_invalid_boz to allow previous
1630*ad640425Smrg	nonstandard behavior.  Remove range checking of BOZ conversion.
1631*ad640425Smrg	* simplify.c (convert_boz): Remove function.
1632*ad640425Smrg	(simplify_cmplx): Remove conversion of BOZ constants, because
1633*ad640425Smrg	conversion is done in gfc_check_cmplx.
1634*ad640425Smrg	(gfc_simplify_float): Remove conversion of BOZ constant, because
1635*ad640425Smrg	conversion is done in gfc_check_float.
1636*ad640425Smrg	(simplify_intconv): Use gfc_boz2int to convert BOZ to INTEGER.
1637*ad640425Smrg	Remove range checking for BOZ conversion.
1638*ad640425Smrg	(gfc_simplify_real): Use k, if present, to determine kind.  Convert
1639*ad640425Smrg	BOZ to REAL.  Remove range checking for BOZ conversion.
1640*ad640425Smrg	target-memory.c (gfc_convert_boz): Rewrite to deal with convert of
1641*ad640425Smrg	a BOZ to a REAL value.
1642*ad640425Smrg
1643*ad640425Smrg2019-07-21  Thomas König  <tkoenig@gcc.gnu.org>
1644*ad640425Smrg
1645*ad640425Smrg	PR libfortran/91030
1646*ad640425Smrg	* gfortran.texi (GFORTRAN_FORMATTED_BUFFER_SIZE): Document
1647*ad640425Smrg	(GFORTRAN_UNFORMATTED_BUFFER_SIZE): Likewise.
1648*ad640425Smrg
1649*ad640425Smrg2019-07-16  Harald Anlauf  <anlauf@gmx.de>
1650*ad640425Smrg
1651*ad640425Smrg	PR fortran/90903
1652*ad640425Smrg	* libgfortran.h: Add mask for -fcheck=bits option.
1653*ad640425Smrg	* options.c (gfc_handle_runtime_check_option): Add option "bits"
1654*ad640425Smrg	to run-time checks selectable via -fcheck.
1655*ad640425Smrg	* trans-intrinsic.c (gfc_conv_intrinsic_btest)
1656*ad640425Smrg	(gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits)
1657*ad640425Smrg	(gfc_conv_intrinsic_shift, gfc_conv_intrinsic_ishft)
1658*ad640425Smrg	(gfc_conv_intrinsic_ishftc): Implement run-time checks for the
1659*ad640425Smrg	POS, LEN, SHIFT, and SIZE arguments.
1660*ad640425Smrg	* gfortran.texi: Document run-time checks for bit manipulation
1661*ad640425Smrg	intrinsics.
1662*ad640425Smrg	* invoke.texi: Document new -fcheck=bits option.
1663*ad640425Smrg
1664*ad640425Smrg2019-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1665*ad640425Smrg
1666*ad640425Smrg	PR fortran/87233
1667*ad640425Smrg	* expr.c (check_restricted): Relax constraint C1279 which was
1668*ad640425Smrg	removed from F2008 and above.
1669*ad640425Smrg
1670*ad640425Smrg2019-07-07  Paul Thomas  <pault@gcc.gnu.org>
1671*ad640425Smrg
1672*ad640425Smrg	PR fortran/91077
1673*ad640425Smrg	* trans-array.c (gfc_conv_scalarized_array_ref) Delete code
1674*ad640425Smrg	that gave symbol backend decl for subref arrays and deferred
1675*ad640425Smrg	length variables.
1676*ad640425Smrg
1677*ad640425Smrg2019-07-05  Andrew Stubbs  <ams@codesourcery.com>
1678*ad640425Smrg
1679*ad640425Smrg	* openmp.c (resolve_omp_clauses): Add custom error messages for
1680*ad640425Smrg	parameters in map clauses.
1681*ad640425Smrg
1682*ad640425Smrg2019-07-03  Martin Liska  <mliska@suse.cz>
1683*ad640425Smrg
1684*ad640425Smrg	* check.c (gfc_check_c_funloc): Remove
1685*ad640425Smrg	dead assignemts.
1686*ad640425Smrg	* decl.c (variable_decl): Likewise.
1687*ad640425Smrg	* resolve.c (resolve_typebound_function): Likewise.
1688*ad640425Smrg	* simplify.c (gfc_simplify_matmul): Likewise.
1689*ad640425Smrg	(gfc_simplify_scan): Likewise.
1690*ad640425Smrg	* trans-array.c (gfc_could_be_alias): Likewise.
1691*ad640425Smrg	* trans-common.c (add_equivalences): Likewise.
1692*ad640425Smrg	* trans-expr.c (trans_class_vptr_len_assignment): Likewise.
1693*ad640425Smrg	(gfc_trans_array_constructor_copy): Likewise.
1694*ad640425Smrg	(gfc_trans_assignment_1): Likewise.
1695*ad640425Smrg	* trans-intrinsic.c (conv_intrinsic_atomic_op): Likewise.
1696*ad640425Smrg	* trans-openmp.c (gfc_omp_finish_clause): Likewise.
1697*ad640425Smrg	* trans-types.c (gfc_get_array_descriptor_base): Likewise.
1698*ad640425Smrg	* trans.c (gfc_build_final_call): Likewise.
1699*ad640425Smrg
1700*ad640425Smrg2019-06-27  Steven G. Kargl  <kargl@gcc.gnu.org>
1701*ad640425Smrg
1702*ad640425Smrg	PR fortran/90987
1703*ad640425Smrg	* gfortran.dg/common_1.f: new test.
1704*ad640425Smrg	* gfortran.dg/common_26.f90: Ditto.
1705*ad640425Smrg
1706*ad640425Smrg2019-06-26  Steven G. Kargl  <kargl@gcc.gnu.org>
1707*ad640425Smrg
1708*ad640425Smrg	PR Fortran/90988
1709*ad640425Smrg	ChangeLog forgotten with revision 272667
1710*ad640425Smrg	* decl.c (access_attr_decl): Use temporary variable to reduce
1711*ad640425Smrg	unreadability of code.  Normalize jumping to return.
1712*ad640425Smrg	(gfc_match_protected): Fix parsing error.  Add comments to
1713*ad640425Smrg	explain code.  Remove dead code.
1714*ad640425Smrg	(gfc_match_private): Use temporary variable to reduce unreadability
1715*ad640425Smrg	of code. Fix parsing error.  Move code to test for blank PRIVATE.
1716*ad640425Smrg	Remove dead code.
1717*ad640425Smrg	(gfc_match_public): Move code to test for blank PUBLIC.  Fix
1718*ad640425Smrg	parsing error.  Remove dead code.
1719*ad640425Smrg
1720*ad640425Smrg2019-06-24  Jan Hubicka  <jh@suse.cz>
1721*ad640425Smrg
1722*ad640425Smrg	* trans-expr.c (gfc_conv_substring): Check that
1723*ad640425Smrg	type is array or integer prior checking string flag.
1724*ad640425Smrg	(gfc_conv_string_parameter): Likewise.
1725*ad640425Smrg	* trans-openmp.c (gfc_omp_scalar_p): Likewise.
1726*ad640425Smrg	* trans.c (gfc_build_array_ref): Likewise.
1727*ad640425Smrg
1728*ad640425Smrg2019-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1729*ad640425Smrg
1730*ad640425Smrg	PR fortran/89782
1731*ad640425Smrg	* io.c (gfc_resolve_dt): Check that internal units are not
1732*ad640425Smrg	character PARAMETER.
1733*ad640425Smrg
1734*ad640425Smrg2019-06-21  Steven G. Kargl  <kargl@gcc.gnu.org>
1735*ad640425Smrg
1736*ad640425Smrg	PR fortran/67884
1737*ad640425Smrg	* resolve.c (deferred_requirements) : Check only the result variable.
1738*ad640425Smrg	(resolve_fl_procedure): Check deferred requirements on functions.
1739*ad640425Smrg
1740*ad640425Smrg2019-06-21  Steven G. Kargl  <kargl@gcc.gnu.org>
1741*ad640425Smrg
1742*ad640425Smrg	PR fortran/51991
1743*ad640425Smrg	* decl.c (gfc_match_save): If SAVE was not seen, return MATCH_NO
1744*ad640425Smrg	instead issuing an error message and returning MATCH_ERROR.
1745*ad640425Smrg
1746*ad640425Smrg2019-06-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1747*ad640425Smrg
1748*ad640425Smrg	PR fortran/77632
1749*ad640425Smrg	* /decl.c (variable_decl): Mark a variable that is a target in pointer
1750*ad640425Smrg	initialization when in PROGRAM, MODULE, or SUBMODULE scope with an
1751*ad640425Smrg	implicit save.
1752*ad640425Smrg
1753*ad640425Smrg2019-06-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1754*ad640425Smrg
1755*ad640425Smrg	PR fortran/86587
1756*ad640425Smrg	* symbol.c (verify_bind_c_derived_type): Remove erroneous error
1757*ad640425Smrg	checking for BIND(C) and PRIVATE attributes.
1758*ad640425Smrg
1759*ad640425Smrg2019-06-20  Thomas Koenig  <tkoenig@gcc.gnu.org>
1760*ad640425Smrg
1761*ad640425Smrg	PR fortran/90937
1762*ad640425Smrg	* trans-types.c (get_formal_from_actual_arglist): Get symbol from
1763*ad640425Smrg	current namespace so it will be freed later.  If symbol is of type
1764*ad640425Smrg	character, get an empty character length.
1765*ad640425Smrg
1766*ad640425Smrg2019-06-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1767*ad640425Smrg
1768*ad640425Smrg	PR fortran/69499
1769*ad640425Smrg	* match.c (gfc_match_select_type): SELECT TYPE is an executable
1770*ad640425Smrg	statement, and cannot appear in MODULE or SUBMODULE scope.
1771*ad640425Smrg
1772*ad640425Smrg2019-06-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1773*ad640425Smrg
1774*ad640425Smrg	PR fortran/69398
1775*ad640425Smrg	* decl.c (attr_decl): Check for duplicate DIMENSION attribute for a
1776*ad640425Smrg	CLASS entity.
1777*ad640425Smrg
1778*ad640425Smrg2019-06-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1779*ad640425Smrg
1780*ad640425Smrg	PR fortran/87907
1781*ad640425Smrg	* resolve.c (resolve_contained_fntype): Do not dereference a NULL
1782*ad640425Smrg	pointer.
1783*ad640425Smrg
1784*ad640425Smrg2019-06-19  Jim MacArthur  <jim.macarthur@codethink.co.uk>
1785*ad640425Smrg	    Mark Eggleston  <mark.eggleston@codethink.com>
1786*ad640425Smrg
1787*ad640425Smrg	PR fortran/89103
1788*ad640425Smrg	* gfortran.texi: Add -fdec-blank-format-item
1789*ad640425Smrg	* invoke.texi: Add option to list of options.
1790*ad640425Smrg	* invoke.texi: Add to section on Commas in FORMAT specifications.
1791*ad640425Smrg	* io.c (check_format): At FMT_RPAREN goto finished if
1792*ad640425Smrg	-fdec-blank-format-item otherwise set error string.
1793*ad640425Smrg	* lang.opt: Add new option.
1794*ad640425Smrg	* options.c (set_dec_flags): Add SET_BITFLAG for
1795*ad640425Smrg	flag_dec_format_defaults.
1796*ad640425Smrg
1797*ad640425Smrg2019-06-18  Julian Brown  <julian@codesourcery.com>
1798*ad640425Smrg
1799*ad640425Smrg	PR fortran/90921
1800*ad640425Smrg	* trans-decl.c (finish_oacc_declare): Reset module_oacc_clauses
1801*ad640425Smrg	before scanning each namespace.
1802*ad640425Smrg
1803*ad640425Smrg2019-06-18  Thomas Schwinge  <thomas@codesourcery.com>
1804*ad640425Smrg
1805*ad640425Smrg	PR fortran/85221
1806*ad640425Smrg	* trans-decl.c (add_attributes_to_decl): Handle OpenACC 'declare'
1807*ad640425Smrg	directive.
1808*ad640425Smrg
1809*ad640425Smrg2019-06-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
1810*ad640425Smrg
1811*ad640425Smrg	* dump_parse_tree (debug): Add verison for formal arglist.
1812*ad640425Smrg	Do not crash when a gfc_expr is NULL.
1813*ad640425Smrg
1814*ad640425Smrg2019-06-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1815*ad640425Smrg
1816*ad640425Smrg	* decl.c (gfc_match_derived_decl): Dummy argument cannot be a derived
1817*ad640425Smrg	type.
1818*ad640425Smrg
1819*ad640425Smrg2019-06-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1820*ad640425Smrg
1821*ad640425Smrg	* arith.c (arith_power): Rework overflow of an integer to an integer
1822*ad640425Smrg	exponent.
1823*ad640425Smrg
1824*ad640425Smrg2019-06-14  Harald Anlauf  <anlauf@gmx.de>
1825*ad640425Smrg
1826*ad640425Smrg	PR fortran/90577
1827*ad640425Smrg	PR fortran/90578
1828*ad640425Smrg	* trans-intrinsic.c (gfc_conv_intrinsic_shift): Properly
1829*ad640425Smrg	distinguish logical/arithmetic shifts.
1830*ad640425Smrg	* intrinsic.texi: Update documentation for SHIFTR/SHIFTL/SHIFTA
1831*ad640425Smrg	(Fortran 2008) and LSHIFT/RSHIFT (GNU extensions).
1832*ad640425Smrg
1833*ad640425Smrg2019-06-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1834*ad640425Smrg
1835*ad640425Smrg	PR fortran/89646
1836*ad640425Smrg	* dependency.c (gfc_check_argument_var_dependency): Suppress spurious
1837*ad640425Smrg	warnings by comparing variable names.
1838*ad640425Smrg
1839*ad640425Smrg2019-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1840*ad640425Smrg
1841*ad640425Smrg	PR fortran/68544
1842*ad640425Smrg	* resolve.c (is_dt_name): New function to compare symbol name against
1843*ad640425Smrg	list of derived types.
1844*ad640425Smrg	(resolve_actual_arglist): Use it to find wrong code.
1845*ad640425Smrg
1846*ad640425Smrg2019-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1847*ad640425Smrg
1848*ad640425Smrg	PR fortran/89344
1849*ad640425Smrg	* expr.c (gfc_check_vardef_context): Check for INTENT(IN) variable
1850*ad640425Smrg	in SELECT TYPE construct.
1851*ad640425Smrg
1852*ad640425Smrg2019-06-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1853*ad640425Smrg
1854*ad640425Smrg	PR fortran/88810
1855*ad640425Smrg	* dependency.c (gfc_dep_resolver): Re-arrange code to make the logic
1856*ad640425Smrg	a bit more transparent.  Fix 2 nearby formatting issues.
1857*ad640425Smrg
1858*ad640425Smrg2019-06-13  Jakub Jelinek  <jakub@redhat.com>
1859*ad640425Smrg
1860*ad640425Smrg	* io.c (check_format): Use G_(...) instead of _(...) for error values,
1861*ad640425Smrg	append " in format string at %L" to all strings but unexpected_element,
1862*ad640425Smrg	use error as gfc_error formating string instead of
1863*ad640425Smrg	"%s in format string at %L".  Formatting fixes.
1864*ad640425Smrg
1865*ad640425Smrg2019-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>
1866*ad640425Smrg
1867*ad640425Smrg	* gfortran.h (gfc_free_dt_list): Remove prototype.
1868*ad640425Smrg
1869*ad640425Smrg2019-06-12  Steven G. Kargl  <kargl@gcc.gnu.org>
1870*ad640425Smrg
1871*ad640425Smrg	PR fortran/90002
1872*ad640425Smrg	* array.c (gfc_free_array_spec): When freeing an array-spec, avoid
1873*ad640425Smrg	an ICE for assumed-shape coarrays.
1874*ad640425Smrg
1875*ad640425Smrg2019-06-08  Paul Thomas  <pault@gcc.gnu.org>
1876*ad640425Smrg
1877*ad640425Smrg	PR fortran/90786
1878*ad640425Smrg	* trans-expr.c (pointer_assignment_is_proc_pointer) Remove as
1879*ad640425Smrg	it is very simple and only called from one place.
1880*ad640425Smrg	(gfc_trans_pointer_assignment): Rename non_proc_pointer_assign
1881*ad640425Smrg	as non_proc_ptr_assign. Assign to it directly, rather than call
1882*ad640425Smrg	to above, deleted function and use gfc_expr_attr instead of
1883*ad640425Smrg	only checking the reference chain.
1884*ad640425Smrg
1885*ad640425Smrg2019-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1886*ad640425Smrg	    Tomáš Trnka  <trnka@scm.com>
1887*ad640425Smrg
1888*ad640425Smrg	PR fortran/90744
1889*ad640425Smrg	* trans-types.c (get_formal_from_actual_arglist): Unset typespec
1890*ad640425Smrg	flags which make no sense for procedures without explicit
1891*ad640425Smrg	interface.
1892*ad640425Smrg
1893*ad640425Smrg2019-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1894*ad640425Smrg
1895*ad640425Smrg	PR fortran/90539
1896*ad640425Smrg	* trans-expr.c (gfc_conv_subref_array_arg): If the size of the
1897*ad640425Smrg	expression can be determined to be one, treat it as contiguous.
1898*ad640425Smrg	Set likelyhood of presence of an actual argument according to
1899*ad640425Smrg	PRED_FORTRAN_ABSENT_DUMMY and likelyhood of being contiguous
1900*ad640425Smrg	according to PRED_FORTRAN_CONTIGUOUS.
1901*ad640425Smrg
1902*ad640425Smrg2019-05-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1903*ad640425Smrg
1904*ad640425Smrg	* gfc-internals.texi (Translating to GENERIC): New chapter.
1905*ad640425Smrg
1906*ad640425Smrg2019-05-30  Marek Polacek  <polacek@redhat.com>
1907*ad640425Smrg
1908*ad640425Smrg	* lang.opt (ftail-call-workaround): Fix a typo.
1909*ad640425Smrg
1910*ad640425Smrg2019-05-30  Jakub Jelinek  <jakub@redhat.com>
1911*ad640425Smrg
1912*ad640425Smrg	* lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths.
1913*ad640425Smrg
1914*ad640425Smrg2019-05-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1915*ad640425Smrg
1916*ad640425Smrg	PR fortran/90539
1917*ad640425Smrg	* gfortran.h (gfc_has_dimen_vector_ref): Add prototype.
1918*ad640425Smrg	* trans.h (gfc_conv_subref_array_arg): Add argument check_contiguous.
1919*ad640425Smrg	(gfc_conv_is_contiguous_expr): Add prototype.
1920*ad640425Smrg	* frontend-passes.c (has_dimen_vector_ref): Remove prototype,
1921*ad640425Smrg	rename to
1922*ad640425Smrg	(gfc_has_dimen_vector_ref): New function name.
1923*ad640425Smrg	(matmul_temp_args): Use gfc_has_dimen_vector_ref.
1924*ad640425Smrg	(inline_matmul_assign): Likewise.
1925*ad640425Smrg	* trans-array.c (gfc_conv_array_parameter): Also check for absence
1926*ad640425Smrg	of a vector subscript before calling gfc_conv_subref_array_arg.
1927*ad640425Smrg	Pass additional argument to gfc_conv_subref_array_arg.
1928*ad640425Smrg	* trans-expr.c (gfc_conv_subref_array_arg): Add argument
1929*ad640425Smrg	check_contiguous. If that is true, check if the argument
1930*ad640425Smrg	is contiguous and do not repack in that case.
1931*ad640425Smrg	* trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): Split
1932*ad640425Smrg	away most of the work into, and call
1933*ad640425Smrg	(gfc_conv_intrinsic_is_coniguous_expr): New function.
1934*ad640425Smrg
1935*ad640425Smrg2019-05-29  Jakub Jelinek  <jakub@redhat.com>
1936*ad640425Smrg
1937*ad640425Smrg	PR fortran/90329
1938*ad640425Smrg	* lang.opt (fbroken-callers): Remove.
1939*ad640425Smrg	(ftail-call-workaround, ftail-call-workaround=): New options.
1940*ad640425Smrg	* gfortran.h (struct gfc_namespace): Add implicit_interface_calls.
1941*ad640425Smrg	* interface.c (gfc_procedure_use): Set implicit_interface_calls
1942*ad640425Smrg	for calls to implicit interface procedures.
1943*ad640425Smrg	* trans-decl.c (create_function_arglist): Use flag_tail_call_workaround
1944*ad640425Smrg	instead of flag_broken_callers.  If it is not 2, also require
1945*ad640425Smrg	sym->ns->implicit_interface_calls.
1946*ad640425Smrg	* invoke.texi (fbroken-callers): Remove documentation.
1947*ad640425Smrg	(ftail-call-workaround, ftail-call-workaround=): Document.
1948*ad640425Smrg
1949*ad640425Smrg2019-05-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1950*ad640425Smrg
1951*ad640425Smrg	PR fortran/90539
1952*ad640425Smrg	* trans-types.c (get_formal_from_actual_arglist): Set rank
1953*ad640425Smrg	and lower bound for assumed size arguments.
1954*ad640425Smrg
1955*ad640425Smrg2019-05-22  Andrew Stubbs  <ams@codesourcery.com>
1956*ad640425Smrg
1957*ad640425Smrg	* trans-stmt.c (gfc_trans_critical): Use size_type_node for
1958*ad640425Smrg	gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls.
1959*ad640425Smrg	(gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all
1960*ad640425Smrg	call.
1961*ad640425Smrg
1962*ad640425Smrg2019-05-22  Jeff Law  <law@redhat.com>
1963*ad640425Smrg	    Mark Eggleston  <mark.eggleston@codethink.com>
1964*ad640425Smrg
1965*ad640425Smrg	PR fortran/89100
1966*ad640425Smrg	* gfortran.texi: Add Default widths for F, G and I format
1967*ad640425Smrg	descriptors to Extensions section.
1968*ad640425Smrg	* invoke.texi: Add -fdec-format-defaults
1969*ad640425Smrg	* io.c (check_format): Use default widths for i, f and g when
1970*ad640425Smrg	flag_dec_format_defaults is enabled.
1971*ad640425Smrg	* lang.opt: Add new option.
1972*ad640425Smrg	* options.c (set_dec_flags): Add SET_BITFLAG for
1973*ad640425Smrg	flag_dec_format_defaults.
1974*ad640425Smrg
1975*ad640425Smrg2019-05-21  Janne Blomqvist  <jb@gcc.gnu.org>
1976*ad640425Smrg
1977*ad640425Smrg	PR libfortran/90038
1978*ad640425Smrg	* intrinsic.texi (EXECUTE_COMMAND_LINE): Explain new
1979*ad640425Smrg	wait=.false. implementation.
1980*ad640425Smrg
1981*ad640425Smrg2019-05-20  Mark Eggleston  <markeggleston@codethink.com>
1982*ad640425Smrg
1983*ad640425Smrg	* gfortran.texi: Remove reference to the ASSIGN statement, capitalise
1984*ad640425Smrg	complex, state that padding is with spaces and modify the Hollerith
1985*ad640425Smrg	constant examples.
1986*ad640425Smrg
1987*ad640425Smrg2019-05-19  Paul Thomas  <pault@gcc.gnu.org>
1988*ad640425Smrg
1989*ad640425Smrg	PR fortran/90498
1990*ad640425Smrg	* trans-stmt.c (trans_associate_var) Do not use the saved
1991*ad640425Smrg	descriptor if the expression is a COMPONENT_REF.
1992*ad640425Smrg
1993*ad640425Smrg2019-05-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1994*ad640425Smrg
1995*ad640425Smrg	PR fortran/90329
1996*ad640425Smrg	* invoke.texi: Document -fbroken-callers.
1997*ad640425Smrg	* lang.opt: Add -fbroken-callers.
1998*ad640425Smrg	* trans-decl.c (create_function_arglist): Only set
1999*ad640425Smrg	DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set.
2000*ad640425Smrg
2001*ad640425Smrg2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
2002*ad640425Smrg
2003*ad640425Smrg	PR fortran/89433
2004*ad640425Smrg	* f95-lang.c (gfc_attribute_table): Set min_len to -1 for "omp
2005*ad640425Smrg	declare target".
2006*ad640425Smrg	* trans-decl.c (add_attributes_to_decl): Refer to OpenACC
2007*ad640425Smrg	'routine' clauses from "omp declare target" attribute.
2008*ad640425Smrg
2009*ad640425Smrg2019-05-16  Martin Sebor  <msebor@redhat.com>
2010*ad640425Smrg
2011*ad640425Smrg	* gfortranspec.c (append_arg): Spell out the word "argument."
2012*ad640425Smrg
2013*ad640425Smrg2019-05-16  Jakub Jelinek  <jakub@redhat.com>
2014*ad640425Smrg
2015*ad640425Smrg	PR fortran/90329
2016*ad640425Smrg	* trans-decl.c (create_function_arglist): Set
2017*ad640425Smrg	DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if
2018*ad640425Smrg	len is constant.
2019*ad640425Smrg
2020*ad640425Smrg2019-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
2021*ad640425Smrg
2022*ad640425Smrg	* parse.c (gfc_parse_file): Remove translation string markers.
2023*ad640425Smrg
2024*ad640425Smrg2019-05-12  Janne Blomqvist  <jb@gcc.gnu.org>
2025*ad640425Smrg
2026*ad640425Smrg	* dump-parse-tree.c (get_c_type_name): Use macros for complex type
2027*ad640425Smrg	names.
2028*ad640425Smrg	* parse.c (gfc_parse_file): Define complex macros, add CPP support
2029*ad640425Smrg	when printing C prototypes.
2030*ad640425Smrg
2031*ad640425Smrg2019-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
2032*ad640425Smrg
2033*ad640425Smrg	PR fortran/61968
2034*ad640425Smrg	* interface.c (compare_actual_formal): Do not create a vtab if
2035*ad640425Smrg	the actual argument is assumed type.
2036*ad640425Smrg
2037*ad640425Smrg2019-05-10  Paul Thomas  <pault@gcc.gnu.org>
2038*ad640425Smrg
2039*ad640425Smrg	PR fortran/90093
2040*ad640425Smrg	* trans-decl.c (convert_CFI_desc): Test that the dummy is
2041*ad640425Smrg	present before doing any of the conversions.
2042*ad640425Smrg
2043*ad640425Smrg	PR fortran/90352
2044*ad640425Smrg	* decl.c (gfc_verify_c_interop_param): Restore the error for
2045*ad640425Smrg	charlen > 1 actual arguments passed to bind(C) procs.
2046*ad640425Smrg	Clean up trailing white space.
2047*ad640425Smrg
2048*ad640425Smrg	PR fortran/90355
2049*ad640425Smrg	* trans-array.c (gfc_trans_create_temp_array): Set the 'span'
2050*ad640425Smrg	field to the element length for all types.
2051*ad640425Smrg	(gfc_conv_expr_descriptor): The force_no_tmp flag is used to
2052*ad640425Smrg	prevent temporary creation, especially for substrings.
2053*ad640425Smrg	* trans-decl.c (gfc_trans_deferred_vars): Rather than assert
2054*ad640425Smrg	that the backend decl for the string length is non-null, use it
2055*ad640425Smrg	as a condition before calling gfc_trans_vla_type_sizes.
2056*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): 'force_no_tmp'
2057*ad640425Smrg	is set before calling gfc_conv_expr_descriptor.
2058*ad640425Smrg	* trans.c (get_array_span): Move the code for extracting 'span'
2059*ad640425Smrg	from gfc_build_array_ref to this function. This is specific to
2060*ad640425Smrg	descriptors that are component and indirect references.
2061*ad640425Smrg	* trans.h : Add the force_no_tmp flag bitfield to gfc_se.
2062*ad640425Smrg
2063*ad640425Smrg2019-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
2064*ad640425Smrg
2065*ad640425Smrg	PR fortran/90351
2066*ad640425Smrg	PR fortran/90329
2067*ad640425Smrg	* dump-parse-tree.c: Include version.h.
2068*ad640425Smrg	(gfc_dump_external_c_prototypes): New function.
2069*ad640425Smrg	(get_c_type_name): Select "char" as a name for a simple char.
2070*ad640425Smrg	Adjust to handling external functions. Also handle complex.
2071*ad640425Smrg	(write_decl): Add argument bind_c. Adjust for dumping of external
2072*ad640425Smrg	procedures.
2073*ad640425Smrg	(write_proc): Likewise.
2074*ad640425Smrg	(write_interop_decl): Add bind_c argument to call of write_proc.
2075*ad640425Smrg	* gfortran.h: Add prototype for gfc_dump_external_c_prototypes.
2076*ad640425Smrg	* lang.opt: Add -fc-prototypes-external flag.
2077*ad640425Smrg	* parse.c (gfc_parse_file): Move dumping of BIND(C) prototypes.
2078*ad640425Smrg	Call gfc_dump_external_c_prototypes if option is set.
2079*ad640425Smrg	* invoke.texi: Document -fc-prototypes-external.
2080*ad640425Smrg
2081*ad640425Smrg2019-05-06  Steven G. Kargl  <kargl@gcc.gnu.org>
2082*ad640425Smrg
2083*ad640425Smrg	PR fortran/90290
2084*ad640425Smrg	* match.c (gfc_match_stopcode): Check F2008 condition on stop code.
2085*ad640425Smrg
2086*ad640425Smrg2019-05-01  Andrew Benson  <abensonca@gmail.com>
2087*ad640425Smrg
2088*ad640425Smrg	* module.c (write_module): Initialize module_column before writing
2089*ad640425Smrg	module to ensure line break occurs at correct column.
2090*ad640425Smrg
2091*ad640425Smrg2019-05-01  Dominique d'Humieres  <dominiq@gcc.gnu.org>
2092*ad640425Smrg
2093*ad640425Smrg	PR fortran/60144
2094*ad640425Smrg	* match.c (gfc_match_parens): Change the location for missing ')'.
2095*ad640425Smrg	(gfc_match_if): Detect a missing '('. Remove the spurious named
2096*ad640425Smrg	constant error. Change the wording of some errors.
2097*ad640425Smrg	(gfc_match_else): Change the wording of an error.
2098*ad640425Smrg	(gfc_match_elseif): Detect a missing '('. Improve the matching
2099*ad640425Smrg	process to get a better syntax analysis.
2100*ad640425Smrg
2101*ad640425Smrg2019-04-19  Steven G. Kargl  <kargl@gcc.gnu.org>
2102*ad640425Smrg
2103*ad640425Smrg	PR fortran/90166
2104*ad640425Smrg	* decl.c (in_module_or_interface): New function to check that the
2105*ad640425Smrg	current state is in a module, submodule, or interface.
2106*ad640425Smrg	(gfc_match_prefix): Use it.
2107*ad640425Smrg
2108*ad640425Smrg2019-04-22  Paul Thomas  <pault@gcc.gnu.org>
2109*ad640425Smrg
2110*ad640425Smrg	PR fortran/57284
2111*ad640425Smrg	* resolve.c (find_array_spec): If this is a class expression
2112*ad640425Smrg	and the symbol and component array specs are the same, this is
2113*ad640425Smrg	not an error.
2114*ad640425Smrg	*trans-intrinsic.c (gfc_conv_intrinsic_size): If a class symbol
2115*ad640425Smrg	argument, has no namespace, it has come from the interface
2116*ad640425Smrg	mapping and the _data component must be accessed directly.
2117*ad640425Smrg
2118*ad640425Smrg2019-04-17  Thomas Schwinge  <thomas@codesourcery.com>
2119*ad640425Smrg
2120*ad640425Smrg	PR fortran/90048
2121*ad640425Smrg	* openmp.c (gfc_resolve_do_iterator): Handle sharing_clauses for
2122*ad640425Smrg	OpenACC, too.
2123*ad640425Smrg	(gfc_resolve_oacc_blocks): Populate sharing_clauses with private
2124*ad640425Smrg	clauses.
2125*ad640425Smrg
2126*ad640425Smrg2019-04-14  Paul Thomas  <pault@gcc.gnu.org>
2127*ad640425Smrg
2128*ad640425Smrg	PR fortran/89843
2129*ad640425Smrg	* trans-decl.c (gfc_get_symbol_decl): Assumed shape and assumed
2130*ad640425Smrg	rank dummies of bind C procs require deferred initialization.
2131*ad640425Smrg	(convert_CFI_desc): New procedure to convert incoming CFI
2132*ad640425Smrg	descriptors to gfc types and back again.
2133*ad640425Smrg	(gfc_trans_deferred_vars): Call it.
2134*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Null the CFI
2135*ad640425Smrg	descriptor pointer. Free the descriptor in all cases.
2136*ad640425Smrg
2137*ad640425Smrg	PR fortran/89846
2138*ad640425Smrg	* expr.c (is_CFI_desc): New function.
2139*ad640425Smrg	(is_subref_array): Tidy up by referencing the symbol directly.
2140*ad640425Smrg	* gfortran.h : Prototype for is_CFI_desc.
2141*ad640425Smrg	* trans_array.c (get_CFI_desc): New function.
2142*ad640425Smrg	(gfc_get_array_span, gfc_conv_scalarized_array_ref,
2143*ad640425Smrg	gfc_conv_array_ref): Use it.
2144*ad640425Smrg	* trans.c (get_array_span): Extract the span from descriptors
2145*ad640425Smrg	that are indirect references.
2146*ad640425Smrg
2147*ad640425Smrg	PR fortran/90022
2148*ad640425Smrg	* trans-decl.c (gfc_get_symbol_decl): Make sure that the se
2149*ad640425Smrg	expression is a pointer type before converting it to the symbol
2150*ad640425Smrg	backend_decl type.
2151*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Eliminate
2152*ad640425Smrg	temporary creation for intent(in).
2153*ad640425Smrg
2154*ad640425Smrg2019-04-13  Dominique d'Humieres  <dominiq@gcc.gnu.org>
2155*ad640425Smrg
2156*ad640425Smrg	PR fortran/79842
2157*ad640425Smrg	* module.c (gfc_use_module): use complete sentences.
2158*ad640425Smrg
2159*ad640425Smrg2019-04-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
2160*ad640425Smrg
2161*ad640425Smrg	PR translation/89939
2162*ad640425Smrg	* frontend-passes.c (B_ERROR): Delete macro.
2163*ad640425Smrg	(C_ERROR): Delete macro.
2164*ad640425Smrg	(B_ERROR_1): New macro.
2165*ad640425Smrg	(C_ERROR_1): New macro.
2166*ad640425Smrg	(C_ERROR_2): New macro.
2167*ad640425Smrg	(inline_matmul_assign): Use new macros.
2168*ad640425Smrg	(call_external_blas): Likewise.
2169*ad640425Smrg
2170*ad640425Smrg2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2171*ad640425Smrg
2172*ad640425Smrg	PR fortran/87352
2173*ad640425Smrg	* gfortran.h (gfc_component): Add finalized field.
2174*ad640425Smrg	* class.c (finalize_component): If the component is already
2175*ad640425Smrg	finalized, return early.  Set component->finalized on exit.
2176*ad640425Smrg
2177*ad640425Smrg2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2178*ad640425Smrg
2179*ad640425Smrg	PR fortran/89981
2180*ad640425Smrg	* resolve.c (resolve_global_procedure): If the global symbol is an
2181*ad640425Smrg	ENTRY, also look up its name among the entries.
2182*ad640425Smrg
2183*ad640425Smrg2019-04-04  Harald Anlauf  <anlauf@gmx.de>
2184*ad640425Smrg
2185*ad640425Smrg	PR fortran/89904
2186*ad640425Smrg	* check.c (gfc_check_transfer): Reject procedures as actual
2187*ad640425Smrg	arguments for SOURCE and MOLD of TRANSFER intrinsic.
2188*ad640425Smrg
2189*ad640425Smrg2019-04-03  Steven G. Kargl  <kargl@gcc.gnu.org>
2190*ad640425Smrg
2191*ad640425Smrg	PR fortran/68567
2192*ad640425Smrg	* expr.c (gfc_reduce_init_expr): Add extra check to avoid
2193*ad640425Smrg	dereferencing a null pointer.
2194*ad640425Smrg
2195*ad640425Smrg2019-04-03  Dominique d'Humieres  <dominiq@gcc.gnu.org>
2196*ad640425Smrg
2197*ad640425Smrg	PR fortran/89375
2198*ad640425Smrg	* expr.c (comp_pointer): Remove redundant condition.
2199*ad640425Smrg
2200*ad640425Smrg2019-03-31  Harald Anlauf  <anlauf@gmx.de>
2201*ad640425Smrg
2202*ad640425Smrg	PR fortran/83515
2203*ad640425Smrg	PR fortran/85797
2204*ad640425Smrg	* trans-types.c (gfc_typenode_for_spec): Handle conversion for
2205*ad640425Smrg	procedure pointers.
2206*ad640425Smrg	* target-memory.c (gfc_element_size): Handle size determination
2207*ad640425Smrg	for procedure pointers.
2208*ad640425Smrg
2209*ad640425Smrg2019-03-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
2210*ad640425Smrg
2211*ad640425Smrg	* dump-parse-tree.c (debug): Add for symbol_attribute *,
2212*ad640425Smrg	symbol_attribute and gfc_ref * arguments.
2213*ad640425Smrg
2214*ad640425Smrg2019-03-30  Paul Thomas  <pault@gcc.gnu.org>
2215*ad640425Smrg
2216*ad640425Smrg	PR fortran/89841
2217*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Use the formal
2218*ad640425Smrg	argument attributes rather than those of the actual argument.
2219*ad640425Smrg
2220*ad640425Smrg	PR fortran/89842
2221*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Call
2222*ad640425Smrg	'set_dtype_for_unallocated' for any type of arrayspec.
2223*ad640425Smrg
2224*ad640425Smrg2019-03-27  Janus Weil  <janus@gcc.gnu.org>
2225*ad640425Smrg
2226*ad640425Smrg	PR fortran/85537
2227*ad640425Smrg	* expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures
2228*ad640425Smrg	in procedure pointer initialization.
2229*ad640425Smrg
2230*ad640425Smrg2019-03-27  Paul Thomas  <pault@gcc.gnu.org>
2231*ad640425Smrg
2232*ad640425Smrg	PR fortran/88247
2233*ad640425Smrg	* expr.c (is_subref_array): Permit substrings to be detected
2234*ad640425Smrg	as subref arrays.
2235*ad640425Smrg	* trans-array.c (get_array_ctor_var_strlen): Obtain the length
2236*ad640425Smrg	of deferred length strings. Handle substrings with a NULL end
2237*ad640425Smrg	expression.
2238*ad640425Smrg	(trans_array_constructor): Remove an unnecessary blank line.
2239*ad640425Smrg	(gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl'
2240*ad640425Smrg	is a pointer array.
2241*ad640425Smrg	(get_array_charlen): If the expression is an array, convert the
2242*ad640425Smrg	first element of the constructor and use its string length. Get
2243*ad640425Smrg	a new charlen if necessary.
2244*ad640425Smrg	(gfc_conv_expr_descriptor): Call 'get_array_charlen' for array
2245*ad640425Smrg	constructor expressions. If the ss_info string length is
2246*ad640425Smrg	available, use that to set the span of character arrays.
2247*ad640425Smrg	* trans-expr.c (gfc_get_expr_charlen): Handle substrings
2248*ad640425Smrg	* trans-stmt.c (trans_associate_var): Set the pointer array
2249*ad640425Smrg	flag for variable targets and constant array constructors. Take
2250*ad640425Smrg	care not to reset the string length or the span in the case of
2251*ad640425Smrg	expressions that are not converted as direct by reference.
2252*ad640425Smrg
2253*ad640425Smrg2019-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2254*ad640425Smrg
2255*ad640425Smrg	* intrinsic.texi (MINLOC): Fix typo in BACK argument documentation.
2256*ad640425Smrg	(MAXLOC): Likewise.
2257*ad640425Smrg
2258*ad640425Smrg2019-03-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
2259*ad640425Smrg
2260*ad640425Smrg	PR fortran/78865
2261*ad640425Smrg	* interface.c (compare_actual_formal): Change errors about
2262*ad640425Smrg	missing or extra to gfc_error_now to make sure they are issued.
2263*ad640425Smrg	Change "spec" to "specifier" in message.
2264*ad640425Smrg	* resolve.c (resolve_global_procedure): Also check for mismatching
2265*ad640425Smrg	interface with global symbols if the namespace has already been
2266*ad640425Smrg	resolved.
2267*ad640425Smrg
2268*ad640425Smrg2019-03-21  Thomas Schwinge  <thomas@codesourcery.com>
2269*ad640425Smrg
2270*ad640425Smrg	PR fortran/72741
2271*ad640425Smrg	* openmp.c (gfc_match_oacc_routine): Set the level of parallelism
2272*ad640425Smrg	for all variants.
2273*ad640425Smrg	(gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target.
2274*ad640425Smrg
2275*ad640425Smrg	PR fortran/89773
2276*ad640425Smrg	* gfortran.h (gfc_oacc_routine_name): Add loc member.
2277*ad640425Smrg	(gfc_resolve_oacc_routines): Declare.
2278*ad640425Smrg	* openmp.c (gfc_match_oacc_routine): Move some error checking
2279*ad640425Smrg	into...
2280*ad640425Smrg	(gfc_resolve_oacc_routines): ... this new function.
2281*ad640425Smrg	* resolve.c (resolve_codes): Call it.
2282*ad640425Smrg
2283*ad640425Smrg	PR fortran/72741
2284*ad640425Smrg	* openmp.c (gfc_match_oacc_routine): Clarify.
2285*ad640425Smrg
2286*ad640425Smrg	PR fortran/72741
2287*ad640425Smrg	* module.c (verify_OACC_ROUTINE_LOP_NONE): New function.
2288*ad640425Smrg	(enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG,
2289*ad640425Smrg	AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR,
2290*ad640425Smrg	AB_OACC_ROUTINE_LOP_SEQ.
2291*ad640425Smrg	(attr_bits): Add these.
2292*ad640425Smrg	(mio_symbol_attribute): Handle these.
2293*ad640425Smrg
2294*ad640425Smrg2019-03-20  Janus Weil  <janus@gcc.gnu.org>
2295*ad640425Smrg
2296*ad640425Smrg	PR fortran/71861
2297*ad640425Smrg	* symbol.c (check_conflict): ABSTRACT attribute conflicts with
2298*ad640425Smrg	INTRINSIC attribute.
2299*ad640425Smrg
2300*ad640425Smrg2019-03-18  Thomas Koenig  <tkoeng@gcc.gnu.org>
2301*ad640425Smrg
2302*ad640425Smrg	PR fortran/68009
2303*ad640425Smrg	* iresolve.c: Include trans.h.
2304*ad640425Smrg	(gfc_resolve_fe_runtine_error): Set backend_decl on
2305*ad640425Smrg	resolved_sym.
2306*ad640425Smrg
2307*ad640425Smrg2019-03-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
2308*ad640425Smrg
2309*ad640425Smrg	PR fortran/88008
2310*ad640425Smrg	* gfortran.h (expr_t): Add EXPR_UNKNOWN.
2311*ad640425Smrg	* expr.c (gfc_copy_expr): Add EXPR_UNKNOWN to switch statement.
2312*ad640425Smrg	(gfc_simplify_expr): Likewise.
2313*ad640425Smrg	* module.c (mio_expr): Likewise.
2314*ad640425Smrg	* resovle.c (extract_compcall_passed_object): Issue error on
2315*ad640425Smrg	unknown type.
2316*ad640425Smrg	(check_typebound_baseobject): Issue error on wrong type.
2317*ad640425Smrg	* trans-expr.c (gfc_apply_interface_mapping_to_expr): Add
2318*ad640425Smrg	EXPR_UNKNOWN to switch statement.
2319*ad640425Smrg
2320*ad640425Smrg2019-03-16  Jakub Jelinek  <jakub@redhat.com>
2321*ad640425Smrg
2322*ad640425Smrg	PR fortran/89724
2323*ad640425Smrg	* scanner.c (load_line): Remove linenum and current_line static
2324*ad640425Smrg	variables, add warned_tabs automatic variable.  Use current_file->line
2325*ad640425Smrg	instead of current_line and warned_tabs boolean to avoid diagnosing
2326*ad640425Smrg	tabs multiple times on the same line.
2327*ad640425Smrg
2328*ad640425Smrg2019-03-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
2329*ad640425Smrg
2330*ad640425Smrg	PR fortran/84394
2331*ad640425Smrg	* symbol.c (gfc_add_subroutine): If we are encountering a
2332*ad640425Smrg	subrtoutine within a BLOCK DATA and the name starts with an
2333*ad640425Smrg	underscore, do not check.
2334*ad640425Smrg
2335*ad640425Smrg2019-03-15  Harald Anlauf  <anlauf@gmx.de>
2336*ad640425Smrg
2337*ad640425Smrg	PR fortran/60091
2338*ad640425Smrg	* expr.c (gfc_check_pointer_assign): Correct and improve error
2339*ad640425Smrg	messages for invalid pointer assignments.
2340*ad640425Smrg
2341*ad640425Smrg2019-03-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
2342*ad640425Smrg
2343*ad640425Smrg	* gfortran.texi: Document Q edit descriptor under
2344*ad640425Smrg	"Extensions not implemented in GNU Fortran".
2345*ad640425Smrg
2346*ad640425Smrg2019-03-13  Harald Anlauf  <anlauf@gmx.de>
2347*ad640425Smrg
2348*ad640425Smrg	PR fortran/87045
2349*ad640425Smrg	* trans-expr.c (gfc_trans_pointer_assignment): Move check for same
2350*ad640425Smrg	string length so that we do not get false errors for deferred
2351*ad640425Smrg	length.
2352*ad640425Smrg
2353*ad640425Smrg2019-03-13  Janus Weil  <janus@gcc.gnu.org>
2354*ad640425Smrg
2355*ad640425Smrg	PR fortran/89601
2356*ad640425Smrg	* decl.c (gfc_match_formal_arglist): Reject empty type parameter lists.
2357*ad640425Smrg	(gfc_match_derived_decl): Mark as PDT only if type parameter list was
2358*ad640425Smrg	matched successfully.
2359*ad640425Smrg
2360*ad640425Smrg2019-03-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2361*ad640425Smrg
2362*ad640425Smrg	PR fortran/66695
2363*ad640425Smrg	PR fortran/77746
2364*ad640425Smrg	PR fortran/79485
2365*ad640425Smrg	* gfortran.h (gfc_symbol): Add bind_c component.
2366*ad640425Smrg	(gfc_get_gsymbol): Add argument bind_c.
2367*ad640425Smrg	* decl.c (add_global_entry): Add bind_c argument to
2368*ad640425Smrg	gfc_get_symbol.
2369*ad640425Smrg	* parse.c (parse_block_data): Likewise.
2370*ad640425Smrg	(parse_module): Likewise.
2371*ad640425Smrg	(add_global_procedure): Likewise.
2372*ad640425Smrg	(add_global_program): Likewise.
2373*ad640425Smrg	* resolve.c (resolve_common_blocks): Likewise.
2374*ad640425Smrg	(resolve_global_procedure): Likewise.
2375*ad640425Smrg	(gfc_verify_binding_labels): Likewise.
2376*ad640425Smrg	* symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c
2377*ad640425Smrg	in gsym.
2378*ad640425Smrg	* trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument
2379*ad640425Smrg	to gfc_get_symbol.
2380*ad640425Smrg	(gfc_get_extern_function_decl): If the sym has a binding label
2381*ad640425Smrg	and it cannot be found in the global symbol tabel, it is the wrong
2382*ad640425Smrg	one and vice versa.
2383*ad640425Smrg
2384*ad640425Smrg2019-03-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
2385*ad640425Smrg
2386*ad640425Smrg	PR fortran/87673
2387*ad640425Smrg	* match.c (gfc_match_type_spec): Remove call to
2388*ad640425Smrg	gfc_resolve_expr for character length.
2389*ad640425Smrg
2390*ad640425Smrg2019-03-12  Martin Liska  <mliska@suse.cz>
2391*ad640425Smrg
2392*ad640425Smrg	* decl.c (add_init_expr_to_sym): Replace usage of 'can't'
2393*ad640425Smrg	with 'cannot'.
2394*ad640425Smrg	(variable_decl): Likewise.
2395*ad640425Smrg	(cray_pointer_decl): Likewise.
2396*ad640425Smrg	(match_binding_attributes): Likewise.
2397*ad640425Smrg	* f95-lang.c (gfc_init): Likewise.
2398*ad640425Smrg	* interface.c (gfc_check_typebound_override): Likewise.
2399*ad640425Smrg	* intrinsic.c (make_generic): Likewise.
2400*ad640425Smrg	* module.c (dump_module): Likewise.
2401*ad640425Smrg	(gfc_use_module): Likewise.
2402*ad640425Smrg	* primary.c (gfc_convert_to_structure_constructor): Likewise.
2403*ad640425Smrg	* resolve.c (resolve_entries): Likewise.
2404*ad640425Smrg	(check_generic_tbp_ambiguity): Likewise.
2405*ad640425Smrg	(get_checked_tb_operator_target): Likewise.
2406*ad640425Smrg	* scanner.c (load_file): Likewise.
2407*ad640425Smrg	* trans-expr.c (gfc_conv_intrinsic_to_class): Likewise.
2408*ad640425Smrg
2409*ad640425Smrg2019-03-12  Paul Thomas  <pault@gcc.gnu.org>
2410*ad640425Smrg
2411*ad640425Smrg	PR fortran/89363
2412*ad640425Smrg	PR fortran/89364
2413*ad640425Smrg	* trans-expr.c (set_dtype_for_unallocated): New function.
2414*ad640425Smrg	(gfc_conv_gfc_desc_to_cfi_desc): Call it for allocatable and
2415*ad640425Smrg	pointer arguments.
2416*ad640425Smrg	(gfc_conv_procedure_call): Likewise. Also, set the ubound of
2417*ad640425Smrg	the final dimension to -1 for assumed rank formal args that are
2418*ad640425Smrg	associated with assumed size arrays.
2419*ad640425Smrg	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Return -1 for
2420*ad640425Smrg	the final dimension of assumed rank entities that are argument
2421*ad640425Smrg	associated with assumed size arrays.
2422*ad640425Smrg	(gfc_conv_intrinsic_shape): Likewise return -1 for the final
2423*ad640425Smrg	dimension of the shape intrinsic.
2424*ad640425Smrg
2425*ad640425Smrg2019-03-11  Jakub Jelinek  <jakub@redhat.com>
2426*ad640425Smrg
2427*ad640425Smrg	PR fortran/89651
2428*ad640425Smrg	* trans-openmp.c (gfc_omp_clause_default_ctor): Set TREE_NO_WARNING
2429*ad640425Smrg	on decl if adding COND_EXPR for allocatable.
2430*ad640425Smrg	(gfc_omp_clause_copy_ctor): Set TREE_NO_WARNING on dest.
2431*ad640425Smrg
2432*ad640425Smrg2019-03-11  Martin Liska  <mliska@suse.cz>
2433*ad640425Smrg
2434*ad640425Smrg	* decl.c (match_record_decl): Wrap an option name
2435*ad640425Smrg	in a string format message and fix GNU coding style.
2436*ad640425Smrg	(gfc_match_pointer): Likewise.
2437*ad640425Smrg	* expr.c (find_array_section): Likewise.
2438*ad640425Smrg	* intrinsic.c (gfc_is_intrinsic): Likewise.
2439*ad640425Smrg	* options.c (gfc_post_options): Likewise.
2440*ad640425Smrg	* primary.c (match_integer_constant): Likewise.
2441*ad640425Smrg	* trans-common.c (translate_common): Likewise.
2442*ad640425Smrg
2443*ad640425Smrg2019-03-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
2444*ad640425Smrg
2445*ad640425Smrg	PR fortran/66089
2446*ad640425Smrg	* trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
2447*ad640425Smrg	Return false if a scalar tempoary is needed.
2448*ad640425Smrg	(gfc_walk_variable_expr): Fix up class refs.
2449*ad640425Smrg
2450*ad640425Smrg2019-03-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
2451*ad640425Smrg
2452*ad640425Smrg	PR fortran/87734
2453*ad640425Smrg	* symbol.c (gfc_add_procedure): Only throw an error if the
2454*ad640425Smrg	procedure has not been declared either PUBLIC or PRIVATE.
2455*ad640425Smrg
2456*ad640425Smrg2019-03-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2457*ad640425Smrg
2458*ad640425Smrg	PR fortran/71544
2459*ad640425Smrg	* trans-types.c (gfc_typenode_for_spec) Set ts->is_c_interop of
2460*ad640425Smrg	C_PTR and C_FUNPTR.
2461*ad640425Smrg	(create_fn_spec): Mark argument as escaping if ts->is_c_interop is set.
2462*ad640425Smrg
2463*ad640425Smrg2019-03-09  Janus Weil  <janus@gcc.gnu.org>
2464*ad640425Smrg
2465*ad640425Smrg	PR fortran/84504
2466*ad640425Smrg	* expr.c (gfc_check_assign_symbol): Deal with procedure pointers to
2467*ad640425Smrg	pointer-valued functions.
2468*ad640425Smrg
2469*ad640425Smrg2019-03-09  Thomas König  <tkoenig@gcc.gnu.org>
2470*ad640425Smrg
2471*ad640425Smrg	PR fortran/71203
2472*ad640425Smrg	* decl.c (add_init_expr_to_sym): Add shape if init has none.  Add
2473*ad640425Smrg	asserts that it has to be an EXPR_ARRAY in this case.
2474*ad640425Smrg
2475*ad640425Smrg2019-03-08  Jakub Jelinek  <jakub@redhat.com>
2476*ad640425Smrg
2477*ad640425Smrg	PR other/80058
2478*ad640425Smrg	* arith.c (gfc_complex2complex): Avoid two spaces in the middle of
2479*ad640425Smrg	diagnostics.
2480*ad640425Smrg	* resolve.c (resolve_allocate_expr): Likewise.
2481*ad640425Smrg
2482*ad640425Smrg2019-03-06  Harald Anlauf  <anlauf@gmx.de>
2483*ad640425Smrg
2484*ad640425Smrg	PR fortran/71203
2485*ad640425Smrg	* expr.c (simplify_const_ref): Avoid null pointer dereference.
2486*ad640425Smrg
2487*ad640425Smrg2019-03-03  Harald Anlauf  <anlauf@gmx.de>
2488*ad640425Smrg	    Steven G. Kargl  <kargl@gcc.gnu.org>
2489*ad640425Smrg
2490*ad640425Smrg	PR fortran/77583
2491*ad640425Smrg	* symbol.c (check_conflict): Check for valid procedure name
2492*ad640425Smrg	passed to error reporting routine.
2493*ad640425Smrg
2494*ad640425Smrg2019-03-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2495*ad640425Smrg
2496*ad640425Smrg	PR fortran/72714
2497*ad640425Smrg	* resolve.c (resolve_allocate_expr): Add some tests for coarrays.
2498*ad640425Smrg
2499*ad640425Smrg2019-03-02  Harald Anlauf  <anlauf@gmx.de>
2500*ad640425Smrg
2501*ad640425Smrg	PR fortran/89516
2502*ad640425Smrg	* check.c (gfc_calculate_transfer_sizes): Correct checks for cases
2503*ad640425Smrg	where storage size of elements of MOLD is 0.
2504*ad640425Smrg
2505*ad640425Smrg2019-02-28  Thomas Schwinge  <thomas@codesourcery.com>
2506*ad640425Smrg	    Cesar Philippidis  <cesar@codesourcery.com>
2507*ad640425Smrg
2508*ad640425Smrg	PR fortran/72741
2509*ad640425Smrg	PR fortran/89433
2510*ad640425Smrg	* openmp.c (gfc_match_oacc_routine): Handle repeated use of the
2511*ad640425Smrg	Fortran OpenACC 'routine' directive.
2512*ad640425Smrg
2513*ad640425Smrg	PR fortran/72741
2514*ad640425Smrg	* gfortran.h (enum oacc_routine_lop): Add OACC_ROUTINE_LOP_ERROR.
2515*ad640425Smrg	* openmp.c (gfc_oacc_routine_lop, gfc_match_oacc_routine): Use it.
2516*ad640425Smrg	* trans-decl.c (add_attributes_to_decl): Likewise.
2517*ad640425Smrg
2518*ad640425Smrg	PR fortran/72741
2519*ad640425Smrg	PR fortran/89433
2520*ad640425Smrg	* openmp.c (gfc_match_oacc_routine): Accept intrinsic symbols.
2521*ad640425Smrg
2522*ad640425Smrg2019-02-26  Harald Anlauf  <anlauf@gmx.de>
2523*ad640425Smrg
2524*ad640425Smrg	PR fortran/89492
2525*ad640425Smrg	* check.c (gfc_calculate_transfer_sizes): Handle cases where
2526*ad640425Smrg	storage size of elements of MOLD is 0.
2527*ad640425Smrg
2528*ad640425Smrg2019-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
2529*ad640425Smrg
2530*ad640425Smrg	PR fortran/89496
2531*ad640425Smrg	* trans-types.c (get_formal_from_actual_arglist): If
2532*ad640425Smrg	the actual arglist has no expression, the corresponding
2533*ad640425Smrg	formal arglist is an alternate return.
2534*ad640425Smrg
2535*ad640425Smrg2019-02-26  Uroš Bizjak  <ubizjak@gmail.com>
2536*ad640425Smrg
2537*ad640425Smrg	* invoke.texi (-ffpe-trap): Use @var for every item in the list.
2538*ad640425Smrg
2539*ad640425Smrg2019-02-26  Jakub Jelinek  <jakub@redhat.com>
2540*ad640425Smrg
2541*ad640425Smrg	PR fortran/43210
2542*ad640425Smrg	* trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead
2543*ad640425Smrg	of duplicating the initializer possibly many times.
2544*ad640425Smrg
2545*ad640425Smrg2019-02-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
2546*ad640425Smrg
2547*ad640425Smrg	PR fortran/89174
2548*ad640425Smrg	* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold
2549*ad640425Smrg	to arguments. If we are dealing with a MOLD, call
2550*ad640425Smrg	gfc_expr_to_initialize().
2551*ad640425Smrg	* trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true
2552*ad640425Smrg	to gfc_find_and_cut_at_last_class_ref.
2553*ad640425Smrg	* trans.h (gfc_find_and_cut_at_last_class_ref): Add optional
2554*ad640425Smrg	argument is_mold with default false.
2555*ad640425Smrg
2556*ad640425Smrg2019-02-24  Harald Anlauf  <anlauf@gmx.de>
2557*ad640425Smrg
2558*ad640425Smrg	PR fortran/89266
2559*ad640425Smrg	PR fortran/88326
2560*ad640425Smrg	* target-memory.c (gfc_element_size): Return false if element size
2561*ad640425Smrg	cannot be determined; element size is returned separately.
2562*ad640425Smrg	(gfc_target_expr_size): Return false if expression size cannot be
2563*ad640425Smrg	determined; expression size is returned separately.
2564*ad640425Smrg	* target-memory.h: Adjust prototypes.
2565*ad640425Smrg	* check.c (gfc_calculate_transfer_sizes): Adjust references to
2566*ad640425Smrg	gfc_target_expr_size, gfc_element_size.
2567*ad640425Smrg	* arith.c (hollerith2representation): Likewise.
2568*ad640425Smrg	* class.c (find_intrinsic_vtab): Likewise.
2569*ad640425Smrg	* simplify.c (gfc_simplify_sizeof): Likewise.
2570*ad640425Smrg
2571*ad640425Smrg2019-02-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2572*ad640425Smrg
2573*ad640425Smrg	PR fortran/84387
2574*ad640425Smrg	* trans-io.c (transfer_expr): Do not return if there are no
2575*ad640425Smrg	components to the derived type or class.
2576*ad640425Smrg
2577*ad640425Smrg2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
2578*ad640425Smrg
2579*ad640425Smrg	PR fortran/88117
2580*ad640425Smrg	* resolve.c (deferred_op_assign): Return if the lhs expression
2581*ad640425Smrg	has the pointer attribute.
2582*ad640425Smrg	* trans-expr.c (gfc_trans_assignment_1): Do not fix the string
2583*ad640425Smrg	length if the lhs expression has the pointer attribute.
2584*ad640425Smrg
2585*ad640425Smrg2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
2586*ad640425Smrg
2587*ad640425Smrg	PR fortran/89385
2588*ad640425Smrg	PR fortran/89366
2589*ad640425Smrg	* decl.c (gfc_verify_c_interop_param): Restriction on string
2590*ad640425Smrg	length being one is lifted for F2018.
2591*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar
2592*ad640425Smrg	characters with intent in, make a temporary and copy the result
2593*ad640425Smrg	of the expression evaluation into it.
2594*ad640425Smrg	(gfc_conv_procedure_call): Set a flag for character formal args
2595*ad640425Smrg	having a character length that is not unity. If the procedure
2596*ad640425Smrg	is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case.
2597*ad640425Smrg	Also, extend bind C calls to unconditionally convert both
2598*ad640425Smrg	pointers and allocatable expressions.
2599*ad640425Smrg
2600*ad640425Smrg2019-02-23  David Malcolm  <dmalcolm@redhat.com>
2601*ad640425Smrg	    Jakub Jelinek  <jakub@redhat.com>
2602*ad640425Smrg
2603*ad640425Smrg	PR middle-end/88074
2604*ad640425Smrg	* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
2605*ad640425Smrg	mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
2606*ad640425Smrg	(norm2_add_squared): Likewise.  Use mp_exp_t rather than mpfr_exp_t.
2607*ad640425Smrg
2608*ad640425Smrg2019-02-22  Harald Anlauf  <anlauf@gmx.de>
2609*ad640425Smrg
2610*ad640425Smrg	PR fortran/83057
2611*ad640425Smrg	* io.c (gfc_match_open): Fix logic in checks of OPEN statement
2612*ad640425Smrg	when NEWUNIT= is specified.
2613*ad640425Smrg
2614*ad640425Smrg2019-02-22  Steven G. Kargl  <kargl@gcc.gnu.org>
2615*ad640425Smrg
2616*ad640425Smrg	PR fortran/89431
2617*ad640425Smrg	* gfortran.texi: Fix documentation to match the implementation.
2618*ad640425Smrg
2619*ad640425Smrg2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>
2620*ad640425Smrg	    Cesar Philippidis  <cesar@codesourcery.com>
2621*ad640425Smrg
2622*ad640425Smrg	PR fortran/72741
2623*ad640425Smrg	* gfortran.h (oacc_routine_lop): New enum.
2624*ad640425Smrg	(symbol_attribute): Use it.
2625*ad640425Smrg	* openmp.c (gfc_oacc_routine_dims): Replace with...
2626*ad640425Smrg	(gfc_oacc_routine_lop): ... this new function.
2627*ad640425Smrg	(gfc_match_oacc_routine): Adjust.
2628*ad640425Smrg	* trans-decl.c (add_attributes_to_decl): Likewise.
2629*ad640425Smrg
2630*ad640425Smrg2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>
2631*ad640425Smrg
2632*ad640425Smrg	* openmp.c (gfc_match_oacc_declare): Revert earlier changes.
2633*ad640425Smrg
2634*ad640425Smrg2019-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2635*ad640425Smrg
2636*ad640425Smrg	* dump-parse-tree.c (debug): Implement for gfc_expr *,
2637*ad640425Smrg	gfc_typespec *, gfc_typespec and gfc_symbol *.
2638*ad640425Smrg
2639*ad640425Smrg2019-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2640*ad640425Smrg
2641*ad640425Smrg	PR fortran/86119
2642*ad640425Smrg	* class.c (gfc_get_len_component): Add argument k for kind.
2643*ad640425Smrg	If the kind of the resulting expression is not equal to k,
2644*ad640425Smrg	convert it.
2645*ad640425Smrg	* gfortran.h (gfc_len_component): Adjust prototype.
2646*ad640425Smrg	* simplify.c (gfc_simplify_len): Pass kind to
2647*ad640425Smrg	gfc_get_len_component.
2648*ad640425Smrg
2649*ad640425Smrg2019-02-20  Martin Liska  <mliska@suse.cz>
2650*ad640425Smrg
2651*ad640425Smrg	* gfortran.texi: Change singular to plural.
2652*ad640425Smrg
2653*ad640425Smrg2019-02-20  Martin Liska  <mliska@suse.cz>
2654*ad640425Smrg
2655*ad640425Smrg	* gfortran.texi: Document Fortran header directive.
2656*ad640425Smrg
2657*ad640425Smrg2019-02-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
2658*ad640425Smrg
2659*ad640425Smrg	PR fortran/89384
2660*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): If the dummy
2661*ad640425Smrg	argument is contiguous and the actual argument may not be,
2662*ad640425Smrg	use gfc_conv_subref_array_arg.
2663*ad640425Smrg
2664*ad640425Smrg2019-02-19  Thomas Schwinge  <thomas@codesourcery.com>
2665*ad640425Smrg
2666*ad640425Smrg	PR c/87924
2667*ad640425Smrg	* openmp.c (gfc_match_omp_clauses): Add representation of wait clause
2668*ad640425Smrg	without argument as 'wait (GOMP_ASYNC_NOVAL)'.
2669*ad640425Smrg
2670*ad640425Smrg2019-02-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
2671*ad640425Smrg
2672*ad640425Smrg	PR fortran/87689
2673*ad640425Smrg	* trans-decl.c (gfc_get_extern_function_decl): Add argument
2674*ad640425Smrg	actual_args and pass it through to gfc_get_function_type.
2675*ad640425Smrg	* trans-expr.c (conv_function_val): Add argument actual_args
2676*ad640425Smrg	and pass it on to gfc_get_extern_function_decl.
2677*ad640425Smrg	(conv_procedure_call): Pass actual arguments to conv_function_val.
2678*ad640425Smrg	* trans-types.c (get_formal_from_actual_arglist): New function.
2679*ad640425Smrg	(gfc_get_function_type): Add argument actual_args.  Generate
2680*ad640425Smrg	formal args from actual args if necessary.
2681*ad640425Smrg	* trans-types.h (gfc_get_function_type): Add optional argument.
2682*ad640425Smrg	* trans.h (gfc_get_extern_function_decl): Add optional argument.
2683*ad640425Smrg
2684*ad640425Smrg2019-02-18  Martin Liska  <mliska@suse.cz>
2685*ad640425Smrg
2686*ad640425Smrg	* decl.c (gfc_match_gcc_builtin): Add support for filtering
2687*ad640425Smrg	of builtin directive based on multilib ABI name.
2688*ad640425Smrg
2689*ad640425Smrg2019-02-17  Harald Anlauf  <anlauf@gmx.de>
2690*ad640425Smrg
2691*ad640425Smrg	PR fortran/88299
2692*ad640425Smrg	* resolve.c (resolve_common_blocks,resolve_common_vars): Move
2693*ad640425Smrg	check for obsolent COMMON feature in F2018 to better place.
2694*ad640425Smrg
2695*ad640425Smrg2019-02-17  Harald Anlauf  <anlauf@gmx.de>
2696*ad640425Smrg
2697*ad640425Smrg	PR fortran/89077
2698*ad640425Smrg	* decl.c (gfc_set_constant_character_len): Clear original string
2699*ad640425Smrg	representation after padding has been performed to target length.
2700*ad640425Smrg
2701*ad640425Smrg2019-02-16  Jakub Jelinek  <jakub@redhat.com>
2702*ad640425Smrg
2703*ad640425Smrg	PR middle-end/88074
2704*ad640425Smrg	* simplify.c (simplify_transformation_to_array): Run post_op
2705*ad640425Smrg	immediately after processing corresponding row, rather than at the
2706*ad640425Smrg	end.
2707*ad640425Smrg	(norm2_scale): New variable.
2708*ad640425Smrg	(add_squared): Rename to ...
2709*ad640425Smrg	(norm2_add_squared): ... this.  Scale down operand and/or result
2710*ad640425Smrg	if needed.
2711*ad640425Smrg	(do_sqrt): Rename to ...
2712*ad640425Smrg	(norm2_do_sqrt): ... this.  Handle the result == e case.  Scale up
2713*ad640425Smrg	result and clear norm2_scale.
2714*ad640425Smrg	(gfc_simplify_norm2): Clear norm2_scale.  Change add_squared to
2715*ad640425Smrg	norm2_add_squared and &do_sqrt to norm2_do_sqrt.  Scale up result
2716*ad640425Smrg	and clear norm2_scale again.
2717*ad640425Smrg
2718*ad640425Smrg2019-02-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
2719*ad640425Smrg
2720*ad640425Smrg	PR fortran/71066
2721*ad640425Smrg	* trans-decl.c (generate_coarray_sym_init): For an array
2722*ad640425Smrg	constructor in a DATA statement of a coarray variable, set the
2723*ad640425Smrg	rank to 1 to avoid confusion later on.  If the constructor
2724*ad640425Smrg	contains only one value, use that for initiailizig.
2725*ad640425Smrg
2726*ad640425Smrg2019-02-14  Janne Blomqvist  <jb@gcc.gnu.org>
2727*ad640425Smrg
2728*ad640425Smrg	PR fortran/81552
2729*ad640425Smrg	* gfortran.h (gfc_option_t): Make flag_init_integer_value a long.
2730*ad640425Smrg	* options.c (gfc_handle_option): Use strtol instead of atoi.
2731*ad640425Smrg	* invoke.texi: Document -finit-integer behavior in more detail.
2732*ad640425Smrg
2733*ad640425Smrg2019-02-14  Harald Anlauf  <anlauf@gmx.de>
2734*ad640425Smrg
2735*ad640425Smrg	PR fortran/88248
2736*ad640425Smrg	* symbol.c: Move check for labeled DO statement from
2737*ad640425Smrg	gfc_define_st_label to gfc_reference_st_label.
2738*ad640425Smrg
2739*ad640425Smrg2019-02-14  Cesar Philippidis  <cesar@codesourcery.com>
2740*ad640425Smrg
2741*ad640425Smrg	PR fortran/72715
2742*ad640425Smrg	* openmp.c (resolve_oacc_nested_loops): Error on do concurrent
2743*ad640425Smrg	loops.
2744*ad640425Smrg
2745*ad640425Smrg2019-02-13  Martin Liska  <mliska@suse.cz>
2746*ad640425Smrg
2747*ad640425Smrg	PR fortran/88649
2748*ad640425Smrg	* resolve.c (resolve_operator): Initialize 't' right
2749*ad640425Smrg	after function entry.  Skip switch (e->value.op.op)
2750*ad640425Smrg	for -fdec operands that become function calls.
2751*ad640425Smrg
2752*ad640425Smrg2019-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
2753*ad640425Smrg
2754*ad640425Smrg	PR fortran/71723
2755*ad640425Smrg	* expr.c (gfc_check_assign): Add argument is_init_expr.  If we are
2756*ad640425Smrg	looking at an init expression, issue error if the target is not a
2757*ad640425Smrg	TARGET and we are not looking at a procedure pointer.
2758*ad640425Smrg	* gfortran.h (gfc_check_assign): Add optional argument
2759*ad640425Smrg	is_init_expr.
2760*ad640425Smrg
2761*ad640425Smrg2019-02-09  Harald Anlauf  <anlauf@gmx.de>
2762*ad640425Smrg
2763*ad640425Smrg	PR fortran/89077
2764*ad640425Smrg	* resolve.c (gfc_resolve_substring_charlen): Check substring
2765*ad640425Smrg	length for constantness prior to general calculation of length.
2766*ad640425Smrg
2767*ad640425Smrg2019-02-09  Paul Thomas  <pault@gcc.gnu.org>
2768*ad640425Smrg
2769*ad640425Smrg	PR fortran/89200
2770*ad640425Smrg	* trans-array.c (gfc_trans_create_temp_array): Set the 'span'
2771*ad640425Smrg	field for derived types.
2772*ad640425Smrg
2773*ad640425Smrg2019-02-04  Harald Anlauf  <anlauf@gmx.de>
2774*ad640425Smrg
2775*ad640425Smrg	PR fortran/89077
2776*ad640425Smrg	* decl.c (add_init_expr_to_sym): Copy length of string initializer
2777*ad640425Smrg	to declared symbol.
2778*ad640425Smrg
2779*ad640425Smrg2019-02-04  Martin Liska  <mliska@suse.cz>
2780*ad640425Smrg
2781*ad640425Smrg	PR fortran/89185
2782*ad640425Smrg	* resolve.c (resolve_ref): Remove breakout variable as
2783*ad640425Smrg	we need to prevent prev = &(*prev)->next to happen
2784*ad640425Smrg	with *prev == NULL.
2785*ad640425Smrg
2786*ad640425Smrg2019-02-04  Martin Liska  <mliska@suse.cz>
2787*ad640425Smrg
2788*ad640425Smrg	PR fortran/88912
2789*ad640425Smrg	* scanner.c (load_file): Report error for -fpre-include
2790*ad640425Smrg	file and do not ICE.
2791*ad640425Smrg
2792*ad640425Smrg2019-02-02  Dominique d'Humieres  <dominiq@gcc.gnu.org>
2793*ad640425Smrg
2794*ad640425Smrg	PR fortran/81344
2795*ad640425Smrg	* invoke.texi: Document the behavior of repeated -ffpe-trap
2796*ad640425Smrg	and -ffpe-summary.
2797*ad640425Smrg
2798*ad640425Smrg2019-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2799*ad640425Smrg
2800*ad640425Smrg	PR fortran/88298
2801*ad640425Smrg	* arith.c (gfc_int2int): Do not warn if src->do_not_warn is set.
2802*ad640425Smrg	* gfortran.h (gfc_expr): Add flag do_not_warn.
2803*ad640425Smrg	* intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if
2804*ad640425Smrg	no warning is desired.
2805*ad640425Smrg
2806*ad640425Smrg2019-02-02  Paul Thomas  <pault@gcc.gnu.org>
2807*ad640425Smrg
2808*ad640425Smrg	PR fortran/88393
2809*ad640425Smrg	* trans-expr.c (gfc_conv_procedure_call): For derived entities,
2810*ad640425Smrg	passed in parentheses to class formals, invert the order of
2811*ad640425Smrg	copying allocatable components to taking the _data of the
2812*ad640425Smrg	class expression.
2813*ad640425Smrg
2814*ad640425Smrg2019-02-02  Paul Thomas  <pault@gcc.gnu.org>
2815*ad640425Smrg
2816*ad640425Smrg	PR fortran/88980
2817*ad640425Smrg	* trans-array.c (gfc_array_init_size): Add element_size to the
2818*ad640425Smrg	arguments.
2819*ad640425Smrg	(gfc_array_allocate): Remove the recalculation of the size of
2820*ad640425Smrg	the element and use element_size from the call to the above.
2821*ad640425Smrg	Unconditionally set the span field of the descriptor.
2822*ad640425Smrg
2823*ad640425Smrg2019-02-02  Paul Thomas  <pault@gcc.gnu.org>
2824*ad640425Smrg
2825*ad640425Smrg	PR fortran/88685
2826*ad640425Smrg	* expr.c (is_subref_array): Move the check for class pointer
2827*ad640425Smrg	dummy arrays to after the reference check. If we haven't seen
2828*ad640425Smrg	an array reference other than an element and a component is not
2829*ad640425Smrg	class or derived, return false.
2830*ad640425Smrg
2831*ad640425Smrg2019-02-01  Jakub Jelinek  <jakub@redhat.com>
2832*ad640425Smrg
2833*ad640425Smrg	PR fortran/83246
2834*ad640425Smrg	PR fortran/89084
2835*ad640425Smrg	* trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs
2836*ad640425Smrg	if sym->ns->construct_entities rather than if
2837*ad640425Smrg	sym->ns->parent->code->op == EXEC_BLOCK.
2838*ad640425Smrg
2839*ad640425Smrg2019-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
2840*ad640425Smrg
2841*ad640425Smrg	PR fortran/88669
2842*ad640425Smrg	* resolve.c (resolve_component): If the reference is a BT_CLASS,
2843*ad640425Smrg	copy the contiguous attribute from the reference and use the
2844*ad640425Smrg	correct attributes.
2845*ad640425Smrg
2846*ad640425Smrg2019-01-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2847*ad640425Smrg
2848*ad640425Smrg	PR fortran/52564
2849*ad640425Smrg	* io.c (match_io): Add check for comma after '*' without subsequent
2850*ad640425Smrg	IO list.
2851*ad640425Smrg
2852*ad640425Smrg2019-01-30  Dominique d'Humieres  <dominiq@gcc.gnu.org>
2853*ad640425Smrg
2854*ad640425Smrg	PR fortran/52884
2855*ad640425Smrg	* invoke.texi: Document the promotion of double precision
2856*ad640425Smrg	constants.
2857*ad640425Smrg
2858*ad640425Smrg2019-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
2859*ad640425Smrg
2860*ad640425Smrg	PR fortran/57048
2861*ad640425Smrg	* interface.c (gfc_compare_types): If a derived type and an
2862*ad640425Smrg	integer both have a derived type, and they are identical,
2863*ad640425Smrg	this is a C binding type and compares equal.
2864*ad640425Smrg
2865*ad640425Smrg2019-01-26  Harald Anlauf  <anlauf@gmx.de>
2866*ad640425Smrg
2867*ad640425Smrg	PR fortran/57553
2868*ad640425Smrg	* expr.c (check_inquiry): Add list of inquiry functions allowed in
2869*ad640425Smrg	constant expressions for F2008+.
2870*ad640425Smrg
2871*ad640425Smrg2019-01-25  Steven G. Kargl  <kargl@gcc.gnu.org>
2872*ad640425Smrg
2873*ad640425Smrg	PR fortran/85780
2874*ad640425Smrg	* decl.c (gfc_match_subroutine): Check for conflict between BIND(C)
2875*ad640425Smrg	and alternative return.
2876*ad640425Smrg
2877*ad640425Smrg2019-01-24  Paul Thomas  <pault@gcc.gnu.org>
2878*ad640425Smrg
2879*ad640425Smrg	PR fortran/88929
2880*ad640425Smrg	* trans-array.c (gfc_conv_descriptor_elem_len): New function.
2881*ad640425Smrg	* trans-array.h : Add prototype for above.
2882*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Take account of
2883*ad640425Smrg	assumed rank arrays being flagged by rank = -1 in expressions.
2884*ad640425Smrg	Intent in arrays need a pointer to a copy of the data to be
2885*ad640425Smrg	assigned to the descriptor passed for conversion. This should
2886*ad640425Smrg	then be freed, together with the CFI descriptor on return from
2887*ad640425Smrg	the C call.
2888*ad640425Smrg
2889*ad640425Smrg2019-01-22  Harald Anlauf  <anlauf@gmx.de>
2890*ad640425Smrg
2891*ad640425Smrg	PR fortran/88579
2892*ad640425Smrg	* trans-expr.c (gfc_conv_power_op): Handle cases of (2**e) ** integer
2893*ad640425Smrg	and (- 2**e) ** integer.
2894*ad640425Smrg
2895*ad640425Smrg2019-01-19  Dominique d'Humieres  <dominiq@gcc.gnu.org>
2896*ad640425Smrg
2897*ad640425Smrg	PR fortran/37835
2898*ad640425Smrg	* resolve.c (resolve_types): Add !flag_automatic.
2899*ad640425Smrg	* symbol.c (gfc_add_save): Silence warnings.
2900*ad640425Smrg
2901*ad640425Smrg2019-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
2902*ad640425Smrg
2903*ad640425Smrg	PR fortran/77960
2904*ad640425Smrg	* io.c (match_io_element): input-item cannot be an external function.
2905*ad640425Smrg
2906*ad640425Smrg2018-01-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
2907*ad640425Smrg	    Paul Thomas  <pault@gcc.gnu.org>
2908*ad640425Smrg
2909*ad640425Smrg	PR fortran/56789
2910*ad640425Smrg	* trans-expr.c (gfc_conv_procedure_call): Call
2911*ad640425Smrg	gfc_conv_subref_array_arg if the formal arg is contiguous
2912*ad640425Smrg	and the actual arg may not be.
2913*ad640425Smrg
2914*ad640425Smrg2019-01-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
2915*ad640425Smrg
2916*ad640425Smrg	PR fortran/88871
2917*ad640425Smrg	* resolve.c (resolve_ref): Fix logic for removal of
2918*ad640425Smrg	reference.
2919*ad640425Smrg
2920*ad640425Smrg2019-01-19  Jakub Jelinek  <jakub@redhat.com>
2921*ad640425Smrg
2922*ad640425Smrg	PR fortran/88902
2923*ad640425Smrg	* trans-decl.c (gfc_get_symbol_decl): Don't add length to function
2924*ad640425Smrg	or parent function if it has been added there already.
2925*ad640425Smrg
2926*ad640425Smrg2019-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2927*ad640425Smrg
2928*ad640425Smrg	PR fortran/43136
2929*ad640425Smrg	* resolve.c (resolve_array_ref): Add equal_length argument; set it
2930*ad640425Smrg	if the length of the substring equals that of the orignal
2931*ad640425Smrg	variable.
2932*ad640425Smrg	(resolve_ref): Remove the substring if it is equal in length to
2933*ad640425Smrg	the original variable, unless it is an EXPR_SUBSTRING).
2934*ad640425Smrg
2935*ad640425Smrg2019-01-15  Steven G. Kargl  <kargl@gcc.gnu.org>
2936*ad640425Smrg
2937*ad640425Smrg	PR fortran/81849
2938*ad640425Smrg	* resolve.c (resolve_symbol): Host associated varaibles can appear
2939*ad640425Smrg	in the specification statement of a RESULT array.
2940*ad640425Smrg
2941*ad640425Smrg2019-01-15  Paul Thomas  <pault@gcc.gnu.org>
2942*ad640425Smrg
2943*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs
2944*ad640425Smrg	that are indirect references; ie. dummy arguments.
2945*ad640425Smrg
2946*ad640425Smrg2019-01-13  Dominique d'Humieres  <dominiq@gcc.gnu.org>
2947*ad640425Smrg
2948*ad640425Smrg	PR fortran/88803
2949*ad640425Smrg	* gfortran.texi: Replace @xref with @ref and adjust the sentence.
2950*ad640425Smrg
2951*ad640425Smrg2019-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2952*ad640425Smrg
2953*ad640425Smrg	PR fortran/57992
2954*ad640425Smrg	* trans-array.c (gfc_conv_array_parameter): Do not pack/unpack
2955*ad640425Smrg	functions with contiguous results.
2956*ad640425Smrg
2957*ad640425Smrg2019-01-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2958*ad640425Smrg
2959*ad640425Smrg	PR fortran/59345
2960*ad640425Smrg	* trans-array.c (gfc_conv_array_parameter): Remove TODO.  Do not
2961*ad640425Smrg	pack/unpack results of functions which return an explicit-shaped
2962*ad640425Smrg	or allocatable array.
2963*ad640425Smrg
2964*ad640425Smrg2019-01-12  Steven G. Kargl  <kargl@gcc.gnu.org>
2965*ad640425Smrg
2966*ad640425Smrg	PR fortran/61765
2967*ad640425Smrg	* resolve.c (gfc_verify_binding_labels): Break if-elseif-elseif
2968*ad640425Smrg	structure into independent if's with a return to simplify logic.
2969*ad640425Smrg	Avoid a check for ENTRY name with bind(c).
2970*ad640425Smrg
2971*ad640425Smrg2019-01-12  Paul Thomas  <pault@gcc.gnu.org>
2972*ad640425Smrg
2973*ad640425Smrg	* gfortran.texi: Add description in sections on TS 29113 and
2974*ad640425Smrg	further interoperability with C.
2975*ad640425Smrg	* trans-array.c (gfc_conv_descriptor_attribute): New function.
2976*ad640425Smrg	(gfc_get_dataptr_offset): Remove static function attribute.
2977*ad640425Smrg	* trans-array.h: Add prototypes for above functions.
2978*ad640425Smrg	* trans-decl.c: Add declarations for the library functions
2979*ad640425Smrg	cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc.
2980*ad640425Smrg	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function.
2981*ad640425Smrg	(gfc_conv_procedure_call): Call it for scalar and array actual
2982*ad640425Smrg	arguments, when the formal arguments are bind_c with assumed
2983*ad640425Smrg	shape or assumed rank.
2984*ad640425Smrg	* trans.h: External declarations for gfor_fndecl_cfi_to_gfc
2985*ad640425Smrg	and gfor_fndecl_gfc_to_cfi.
2986*ad640425Smrg
2987*ad640425Smrg2019-01-11  Steven G. Kargl  <kargl@gcc.gnu.org>
2988*ad640425Smrg
2989*ad640425Smrg	PR fortran/35031
2990*ad640425Smrg	* decl.c (gfc_match_entry): Check for F2018:C1546.  Fix nearby
2991*ad640425Smrg	mis-indentation.
2992*ad640425Smrg
2993*ad640425Smrg2019-01-11  Jakub Jelinek  <jakub@redhat.com>
2994*ad640425Smrg
2995*ad640425Smrg	PR middle-end/85956
2996*ad640425Smrg	PR lto/88733
2997*ad640425Smrg	* trans-openmp.c: Include attribs.h.
2998*ad640425Smrg	(gfc_walk_alloc_comps, gfc_omp_clause_linear_ctor): Handle
2999*ad640425Smrg	VAR_DECL max bound with "omp dummy var" attribute like NULL or
3000*ad640425Smrg	error_mark_node - recompute number of elts independently.
3001*ad640425Smrg
3002*ad640425Smrg2019-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
3003*ad640425Smrg
3004*ad640425Smrg	PR fortran/59345
3005*ad640425Smrg	* trans-array.c (gfc_conv_parameter_array): Temporary
3006*ad640425Smrg	arrays generated for expressions do not need to be repacked.
3007*ad640425Smrg
3008*ad640425Smrg2019-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
3009*ad640425Smrg
3010*ad640425Smrg	PR fortran/86322
3011*ad640425Smrg	* decl.c (top_var_list): Set locus of expr.
3012*ad640425Smrg	(gfc_match_data): Detect pointer on non-rightmost part-refs.
3013*ad640425Smrg
3014*ad640425Smrg2019-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
3015*ad640425Smrg
3016*ad640425Smrg	PR fortran/88376
3017*ad640425Smrg	* resolve.c (is_illegal_recursion): Remove an assert().
3018*ad640425Smrg
3019*ad640425Smrg2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
3020*ad640425Smrg
3021*ad640425Smrg	PR other/16615
3022*ad640425Smrg	* expr.c: Change "can not" to "cannot".
3023*ad640425Smrg
3024*ad640425Smrg2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
3025*ad640425Smrg
3026*ad640425Smrg	PR other/16615
3027*ad640425Smrg	* class.c: Mechanically replace "can not" with "cannot".
3028*ad640425Smrg	* decl.c: Likewise.
3029*ad640425Smrg	* expr.c: Likewise.
3030*ad640425Smrg	* gfc-internals.texi: Likewise.
3031*ad640425Smrg	* intrinsic.texi: Likewise.
3032*ad640425Smrg	* invoke.texi: Likewise.
3033*ad640425Smrg	* io.c: Likewise.
3034*ad640425Smrg	* match.c: Likewise.
3035*ad640425Smrg	* parse.c: Likewise.
3036*ad640425Smrg	* primary.c: Likewise.
3037*ad640425Smrg	* resolve.c: Likewise.
3038*ad640425Smrg	* symbol.c: Likewise.
3039*ad640425Smrg	* trans-array.c: Likewise.
3040*ad640425Smrg	* trans-decl.c: Likewise.
3041*ad640425Smrg	* trans-intrinsic.c: Likewise.
3042*ad640425Smrg	* trans-stmt.c: Likewise.
3043*ad640425Smrg
3044*ad640425Smrg2019-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
3045*ad640425Smrg
3046*ad640425Smrg	PR fortran/68426
3047*ad640425Smrg	* simplify.c (gfc_simplify_spread): Also simplify if the
3048*ad640425Smrg	type of source is an EXPR_STRUCTURE.
3049*ad640425Smrg
3050*ad640425Smrg2019-01-08  Janus Weil  <janus@gcc.gnu.org>
3051*ad640425Smrg
3052*ad640425Smrg	PR fortran/88047
3053*ad640425Smrg	* class.c (gfc_find_vtab): For polymorphic typespecs, the components of
3054*ad640425Smrg	the class container may not be available (in case of invalid code).
3055*ad640425Smrg
3056*ad640425Smrg2019-01-08  Richard Biener  <rguenther@suse.de>
3057*ad640425Smrg
3058*ad640425Smrg	PR fortran/88611
3059*ad640425Smrg	* trans-expr.c (gfc_conv_initializer): For ISOCBINDING_NULL_*
3060*ad640425Smrg	directly build the expected GENERIC tree.
3061*ad640425Smrg
3062*ad640425Smrg2019-01-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
3063*ad640425Smrg	    Harald Anlauf  <anlauf@gmx.de>
3064*ad640425Smrg	    Tobias Burnus  <burnus@gcc.gnu.org>
3065*ad640425Smrg
3066*ad640425Smrg	PR fortran/45424
3067*ad640425Smrg	* check.c (gfc_check_is_contiguous): New function.
3068*ad640425Smrg	* expr.c (gfc_is_not_contiguous): New function.
3069*ad640425Smrg	* gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_CONTIGUOUS.
3070*ad640425Smrg	Add prototype for gfc_is_not_contiguous.
3071*ad640425Smrg	* intrinsic.c (do_ts29113_check): Add GFC_ISYM_IS_CONTIGUOUS.
3072*ad640425Smrg	(add_function): Add is_contiguous.
3073*ad640425Smrg	* intrinsic.h: Add prototypes for gfc_check_is_contiguous,
3074*ad640425Smrg	gfc_simplify_is_contiguous and gfc_resolve_is_contiguous.
3075*ad640425Smrg	* intrinsic.texi: Add IS_CONTIGUOUS.
3076*ad640425Smrg	* iresolve.c (gfc_resolve_is_contiguous): New function.
3077*ad640425Smrg	* simplify.c (gfc_simplify_is_contiguous): New function.
3078*ad640425Smrg	* trans-decl.c (gfor_fncecl_is_contiguous0): New variable.
3079*ad640425Smrg	(gfc_build_intrinsic_function_decl): Add it.
3080*ad640425Smrg	* trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): New
3081*ad640425Smrg	function.
3082*ad640425Smrg	(gfc_conv_intrinsic_function): Handle GFC_ISYM_IS_CONTIGUOUS.
3083*ad640425Smrg
3084*ad640425Smrg2019-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
3085*ad640425Smrg
3086*ad640425Smrg	PR fortran/88658
3087*ad640425Smrg	* gfortran.h: Add macro gfc_real_4_kind
3088*ad640425Smrg	* simplify.c (simplify_min_max): Special case for the types of
3089*ad640425Smrg	AMAX0, AMIN0, MAX1 and MIN1, which actually change the types of
3090*ad640425Smrg	their arguments.
3091*ad640425Smrg
3092*ad640425Smrg2019-01-05  Janus Weil  <janus@gcc.gnu.org>
3093*ad640425Smrg
3094*ad640425Smrg	PR fortran/88009
3095*ad640425Smrg	* class.c (gfc_find_derived_vtab): Mark the _final component as
3096*ad640425Smrg	artificial.
3097*ad640425Smrg	(find_intrinsic_vtab): Ditto. Also add an extra check to avoid
3098*ad640425Smrg	dereferencing a null pointer and adjust indentation.
3099*ad640425Smrg	* resolve.c (resolve_fl_variable): Add extra check to avoid
3100*ad640425Smrg	dereferencing a null pointer. Move variable declarations to local scope.
3101*ad640425Smrg	(resolve_fl_procedure): Add extra check to avoid dereferencing a null
3102*ad640425Smrg	pointer.
3103*ad640425Smrg	* symbol.c (check_conflict): Suppress errors for artificial symbols.
3104*ad640425Smrg
3105*ad640425Smrg2019-01-01  Steven G. Kargl  <kargl@gcc.gnu.org>
3106*ad640425Smrg
3107*ad640425Smrg	* parse.c (decode_statement): Suppress "Unclassifiable statement"
3108*ad640425Smrg	error if previous error messages were emittes.
3109*ad640425Smrg
3110*ad640425Smrg2019-01-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
3111*ad640425Smrg
3112*ad640425Smrg	PR fortran/82743
3113*ad640425Smrg	* primary.c (gfc_convert_to_structure_constructor): If a character
3114*ad640425Smrg	in a constructor is too long, add a  warning with
3115*ad640425Smrg	-Wcharacter-truncation.
3116*ad640425Smrg
3117*ad640425Smrg2019-01-01  Jakub Jelinek  <jakub@redhat.com>
3118*ad640425Smrg
3119*ad640425Smrg	Update copyright years.
3120*ad640425Smrg
3121*ad640425Smrg	* gfortranspec.c (lang_specific_driver): Update copyright notice
3122*ad640425Smrg	dates.
3123*ad640425Smrg	* gfc-internals.texi: Bump @copying's copyright year.
3124*ad640425Smrg	* gfortran.texi: Ditto.
3125*ad640425Smrg	* intrinsic.texi: Ditto.
3126*ad640425Smrg	* invoke.texi: Ditto.
3127*ad640425Smrg
3128*ad640425SmrgCopyright (C) 2019 Free Software Foundation, Inc.
3129*ad640425Smrg
3130*ad640425SmrgCopying and distribution of this file, with or without modification,
3131*ad640425Smrgare permitted in any medium without royalty provided the copyright
3132*ad640425Smrgnotice and this notice are preserved.
3133