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