1 2020-09-09 Tobias Burnus <tobias@codesourcery.com>
5 * resolve.c (gfc_resolve_code): Also call
6 gfc_resolve_omp_parallel_blocks for 'distribute parallel do (simd)'.
7 * openmp.c (gfc_resolve_omp_parallel_blocks): Handle it.
8 (gfc_resolve_do_iterator): Remove special code for SIMD, which is
10 * trans-openmp.c (gfc_trans_omp_target): For TARGET_PARALLEL_DO_SIMD,
11 call simd not do processing function.
13 2020-09-08 Thomas Koenig <tkoenig@gcc.gnu.org>
15 * intrinsic.texi: Fix description of FINDLOC result.
17 2020-09-07 Harald Anlauf <anlauf@gmx.de>
19 * trans-intrinsic.c (build_round_expr): Use temporary with
20 appropriate kind for conversion before rounding to nearest
21 integer when the result precision is 128 bits.
23 2020-09-07 Tobias Burnus <tobias@codesourcery.com>
26 * resolve.c (get_temp_from_expr): Also reset proc_pointer +
28 (resolve_ptr_fcn_assign): Use information from the LHS.
30 2020-09-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
32 * trans-types.c (gfc_get_derived_type): Fix argument types.
34 2020-09-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
36 * resolve.c (resolve_select_type): Provide a formal arg list.
38 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
40 * trans-types.c (gfc_get_ppc_type): Add comment.
42 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
44 * trans-types.c (gfc_get_ppc_type): Fix function arg types.
46 2020-09-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
49 * trans-stmt.c (gfc_trans_fail_image): caf_fail_image
52 2020-09-02 Jakub Jelinek <jakub@redhat.com>
55 * check.c (gfc_boz2real, gfc_boz2int): When clearing first two bits,
56 change also '2' to '0' and '3' to '1' rather than just handling '4'
59 2020-09-01 Steven G. Kargl <kargl@gcc.gnu.org>
60 Mark Eggleston <markeggleston@gcc.gnu.org>
63 * resolve.c (resolve_select_type): Add check for BT_CLASS
64 type before using the CLASS_DATA macro which will have a
65 NULL pointer to derive components if it isn't BT_CLASS.
67 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
70 * module.c (module_peek_char): Peek ahead function.
71 (parse_integer): Add code for parsing signed integers.
72 (parse_atom): Add code to handle signed integers.
73 (peek_atom): Add code to handle signed integers.
75 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
78 * expr.c (gfc_check_init_expr): Add default error message for the AS_ASSUMED_RANK case.
80 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
83 * expr.c (check_references): Change different relational operator
84 to less-than operator to avoid infinite loop.
86 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
89 * simplify.c (simplify_bound_dim): Add check for NULL pointer
90 before trying to access structure member.
92 2020-08-30 José Rui Faustino de Sousa <jrfsousa@gmail.com>
95 * interface.c (gfc_compare_actual_formal): Add code to also raise
96 the actual argument cannot be an assumed-size array error when the
97 dummy arguments are deferred-shape or assumed-rank pointer.
99 2020-08-28 Tobias Burnus <tobias@codesourcery.com>
102 * trans-array.c (gfc_trans_g77_array): Check against the parm decl and
103 set the nonparm decl used for the is-present check to NULL if absent.
105 2020-08-28 Paul Thomas <pault@gcc.gnu.org>
108 * simplify.c (gfc_simplify_reshape): Detect zero shape and
109 clear index if found.
111 2020-08-27 Mark Eggleston <markeggleston@gcc.gnu.org>
114 * decl.c (char_len_param_value): Check gfc_seen_div0 and
115 if it is set return MATCH_ERROR.
117 2020-08-27 Martin Liska <mliska@suse.cz>
119 * trans-openmp.c (gfc_trans_omp_do): Set exact argument of a vector
120 growth function to true.
122 2020-08-26 Tobias Burnus <tobias@codesourcery.com>
124 * gfortran.h (enum gfc_omp_device_type): New.
125 (symbol_attribute, gfc_omp_clauses, gfc_common_head): Use it.
126 * module.c (enum ab_attribute): Add AB_OMP_DEVICE_TYPE_HOST,
127 AB_OMP_DEVICE_TYPE_NOHOST and AB_OMP_DEVICE_TYPE_ANY.
128 (attr_bits, mio_symbol_attribute): Handle it.
129 (load_commons, write_common_0): Handle omp_device_type flag.
130 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_DEVICE_TYPE
131 (OMP_DECLARE_TARGET_CLAUSES): Likewise.
132 (gfc_match_omp_clauses): Match 'device_type'.
133 (gfc_match_omp_declare_target): Handle it.
134 * trans-common.c (build_common_decl): Write device-type clause.
135 * trans-decl.c (add_attributes_to_decl): Likewise.
137 2020-08-23 Paul Thomas <pault@gcc.gnu.org>
140 * trans-types.c (gfc_get_derived_type): Derived types that are
141 used in submodules are not compatible with TYPE_CANONICAL from
142 any of the global namespaces.
144 2020-08-20 Paul Thomas <pault@gcc.gnu.org>
148 * trans-array.c (get_array_charlen): Tidy up the evaluation of
149 the string length for array constructors. Avoid trailing array
150 references. Ensure string lengths of deferred length components
151 are set. For parentheses operator apply string length to both
152 the primary expression and the enclosed expression.
154 2020-08-20 Andre Vehreschild <vehre@gcc.gnu.org>
157 * trans-array.c (gfc_bcast_alloc_comp): Use the correct variable.
159 2020-08-20 Tobias Burnus <tobias@codesourcery.com>
161 * openmp.c (gfc_match_omp_clauses): Re-order 'if' clause pasing
162 to avoid creating spurious symbols.
164 2020-08-18 Harald Anlauf <anlauf@gmx.de>
166 * check.c (check_rest): Reject MIN/MAX character arguments of
168 * simplify.c (min_max_choose): The simplification result shall
169 have the highest kind value of the arguments.
170 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Choose type and
171 kind of intermediate by looking at all arguments, not the result.
173 2020-08-17 Martin Liska <mliska@suse.cz>
175 * openmp.c (resolve_omp_clauses): Add static assert
176 for OMP_LIST_NUM and size of clause_names array.
177 Remove check that is always true.
179 2020-08-17 Martin Liska <mliska@suse.cz>
181 * openmp.c (resolve_omp_clauses): Add NONTEMPORAL to clause
184 2020-08-13 Andre Vehreschild <vehre@gcc.gnu.org>
187 * trans-array.c (structure_alloc_comps): Keep caf-mode when applying to
188 components; get the caf_token correctly for allocated scalar components.
190 2020-08-13 Matthew Krupcale <mkrupcale@matthewkrupcale.com>
193 * invoke.texi: Fix typos.
195 2020-08-12 Tobias Burnus <tobias@codesourcery.com>
197 * gfortran.h: Add OMP_LIST_NONTEMPORAL.
198 * dump-parse-tree.c (show_omp_clauses): Dump it
199 * openmp.c (enum omp_mask1): Add OMP_CLAUSE_NOTEMPORAL.
200 (OMP_SIMD_CLAUSES): Add it.
201 (gfc_match_omp_clauses): Match nontemporal clause.
202 * trans-openmp.c (gfc_trans_omp_clauses): Process
205 2020-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
208 * frontend-passes.c (doloop_contained_function_call):
209 Do not dereference a NULL pointer for value.function.esym.
211 2020-08-10 Paul Thomas <pault@gcc.gnu.org>
214 * trans-expr.c (fcncall_realloc_result): Only compare shapes if
217 2020-08-10 Paul Thomas <pault@gcc.gnu.org>
220 * resolve.c (check_host_association): Replace the gcc_assert
221 with an error for internal procedures.
223 2020-08-05 Thomas Koenig <tkoenig@gcc.gnu.org>
226 * frontend-passes.c (doloop_contained_function_call): New
228 (doloop_contained_procedure_code): New function.
229 (CHECK_INQ): Macro for inquire checks.
230 (doloop_code): Invoke doloop_contained_procedure_code and
231 doloop_contained_function_call if appropriate.
232 (do_intent): Likewise.
234 2020-08-04 Tobias Burnus <tobias@codesourcery.com>
236 * openmp.c (resolve_omp_do): Detect not perfectly
237 nested loop with innermost collapse.
239 2020-08-04 Tobias Burnus <tobias@codesourcery.com>
241 * trans-openmp.c (gfc_trans_omp_do): Fix 'lastprivate(conditional:'.
243 2020-08-03 Julian Brown <julian@codesourcery.com>
244 Thomas Schwinge <thomas@codesourcery.com>
246 * trans-openmp.c (gfc_trans_omp_clauses): Don't create present/release
247 mappings for array descriptors.
249 2020-08-03 Martin Jambor <mjambor@suse.cz>
251 * f95-lang.c (gfc_init_builtin_functions): Remove processing of
254 2020-08-03 Tobias Burnus <tobias@codesourcery.com>
256 * gfc-internals.texi: Fix typos.
257 * gfortran.texi: Likewise.
258 * intrinsic.texi: Likewise.
259 * invoke.texi: Likewise.
261 2020-08-02 Paul Thomas <pault@gcc.gnu.org>
264 * interface.c (gfc_check_dummy_characteristics): If a module
265 procedure arrives with assumed shape in the interface and
266 deferred shape in the procedure itself, update the latter and
267 copy the lower bounds.
269 2020-08-02 Paul Thomas <pault@gcc.gnu.org>
272 * primary.c (gfc_match_varspec): In the case that a component
273 reference is added to an intrinsic type component, emit the
274 error message in this function.
276 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
278 * dump-parse-tree.c (show_omp_clauses): Handle order(concurrent).
279 * gfortran.h (struct gfc_omp_clauses): Add order_concurrent.
280 * openmp.c (enum omp_mask1, OMP_DO_CLAUSES, OMP_SIMD_CLAUSES):
281 Add OMP_CLAUSE_ORDER.
282 * trans-openmp.c (gfc_trans_omp_clauses, gfc_split_omp_clauses):
283 Handle order(concurrent) clause.
285 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
287 * openmp.c (resolve_omp_clauses): Permit 'omp target data' without
288 map if use_device_{addr,ptr} is present.
290 2020-07-29 Mark Eggleston <markeggleston@gcc.gnu.org>
293 * intrinsic.c (gfc_convert_type_warn): Add check for
294 LOGICAL type so that warnings are not output.
296 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
298 * module.c (mio_symbol_attribute): Fix indent of previous
301 2020-07-29 Mark Eggleston <markeggleston@gcc.gnu.org>
304 * trans-array.c (gfc_walk_array_ref): If ref->ss.end is set
305 call gfc_get_scalar_ss.
307 2020-07-29 Tobias Burnus <tobias@codesourcery.com>
309 * gfortran.h (enum gfc_statement): Add ST_OMP_REQUIRES.
310 (enum gfc_omp_requires_kind): New.
311 (enum gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_ACQ_REL.
312 (struct gfc_namespace): Add omp_requires and omp_target_seen.
313 (gfc_omp_requires_add_clause,
314 (gfc_check_omp_requires): New.
315 * match.h (gfc_match_omp_requires): New.
316 * module.c (enum ab_attribute, attr_bits): Add omp requires clauses.
317 (mio_symbol_attribute): Read/write them.
318 * openmp.c (gfc_check_omp_requires, (gfc_omp_requires_add_clause,
319 gfc_match_omp_requires): New.
320 (gfc_match_omp_oacc_atomic): Use requires's default mem-order.
321 * parse.c (decode_omp_directive): Match requires, set omp_target_seen.
322 (gfc_ascii_statement): Handle ST_OMP_REQUIRES.
323 * trans-openmp.c (gfc_trans_omp_atomic): Handle GFC_OMP_ATOMIC_ACQ_REL.
325 2020-07-27 Tobias Burnus <tobias@codesourcery.com>
327 * openmp.c (gfc_resolve_omp_directive): Remove NULL check
328 for clauses in EXEC_OMP_CRITICAL as it no longer can be NULL.
330 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
332 * gfortran.h (gfc_omp_namelist): Add lastprivate_conditional.
333 * openmp.c (gfc_match_omp_clauses): Handle 'conditional:'
334 modifier of 'lastprivate'.
335 * trans-openmp.c (gfc_omp_clause_default_ctor): Don't assert
336 on OMP_CLAUSE__CONDTEMP_ and other OMP_*TEMP_.
337 (gfc_trans_omp_variable_list): Handle lastprivate_conditional.
339 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
341 * intrinsic.texi (OMP_LIB_KINDS): Add omp_depend_kind.
343 2020-07-23 Tobias Burnus <tobias@codesourcery.com>
345 * gfortran.texi (Standards): Update URL; state that OpenMP 4.5
346 is supported and 5.0 is partially.
347 * intrinsic.texi (OpenMP Modules): Refer also to OpenMP 5.0;
348 (OMP_LIB): Add missing derived type and new named constants.
350 2020-07-22 Tobias Burnus <tobias@codesourcery.com>
352 * gfortran.h (enum gfc_omp_if_kind): Add OMP_IF_CANCEL and OMP_IF_SIMD.
353 * openmp.c (OMP_SIMD_CLAUSES): Add OMP_CLAUSE_IF.
354 (gfc_match_omp_clauses, resolve_omp_clauses): Handle 'if (simd/cancel:'.
355 * dump-parse-tree.c (show_omp_clauses): Likewise.
356 * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_cancel,
357 (gfc_split_omp_clauses): Likewise.
359 2020-07-22 Tobias Burnus <tobias@codesourcery.com>
361 * openmp.c (gfc_match_omp_critical): Fix handling hints; permit
362 hint clause without named critical.
363 (resolve_omp_clauses): Require nonnegative constant integer
365 (gfc_resolve_omp_directive): Check for no name but
366 nonzero value for hint clause.
367 * parse.c (parse_omp_structured_block): Fix same-name check
369 * trans-openmp.c (gfc_trans_omp_critical): Handle hint clause properly.
371 2020-07-21 Harald Anlauf <anlauf@gmx.de>
374 * trans-decl.c (gfc_get_extern_function_decl): Check whether a
375 symbol belongs to a different module.
377 2020-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
380 * dump-parse-tree.c (get_c_type_name): Always use the entries from
381 c_interop_kinds_table to find the correct C type.
383 2020-07-19 Thomas Koenig <tkoenig@gcc.gnu.org>
386 * frontend-passes.c (gfc_check_externals): Adjust formatting.
387 (implicit_pure_call): New function.
388 (implicit_pure_expr): New function.
389 (gfc_fix_implicit_pure): New function.
390 * gfortran.h (gfc_fix_implicit_pure): New prototype.
391 * parse.c (translate_all_program_units): Call gfc_fix_implicit_pure.
393 2020-07-18 David Edelsohn <dje.gcc@gmail.com>
395 * check.c (gfc_invalid_boz): Mark hint for translation using _().
397 2020-07-16 Julian Brown <julian@codesourcery.com>
398 Thomas Schwinge <thomas@codesourcery.com>
400 * trans-openmp.c (gfc_trans_omp_clauses): Rework OpenACC
401 attach/detach handling for arrays with descriptors.
403 2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
404 Mark Eggleston <markeggleston@gcc.gnu.org>
407 * expr.c (gfc_check_pointer_assigb): Output an error if
408 rvalue is a zero sized array or output an error if rvalue
409 doesn't have a symbol tree.
411 2020-07-14 Tobias Burnus <tobias@codesourcery.com>
413 * openmp.c (gfc_match_omp_clauses): Match also derived-type
414 component refs in OMP_CLAUSE_MAP.
415 (resolve_omp_clauses): Resolve those.
416 * trans-openmp.c (gfc_trans_omp_array_section, gfc_trans_omp_clauses):
417 Handle OpenMP structure-element mapping.
418 (gfc_trans_oacc_construct, gfc_trans_oacc_executable_directive,
419 (gfc_trans_oacc_combined_directive, gfc_trans_oacc_declare): Update
420 add openacc=true in gfc_trans_omp_clauses call.
422 2020-07-14 Tobias Burnus <tobias@codesourcery.com>
425 * trans-openmp.c (gfc_has_alloc_comps): Return false also for
428 2020-07-14 Steven G. Kargl <kargl@gcc.gnu.org>
429 Mark Eggleston <markeggleston@gcc.gnu.org>
432 * decl.c (add_init_expr_sym): For a symbol that is a
433 parameter accept an initialisation if it does not have a
434 value otherwise output a error and reject.
436 2020-07-13 Mark Eggleston <markeggleston@gcc.gnu.org>
439 * resolve.c (resolve_fl_variable): Remove type and intent
440 checks from the check for dummy.
442 2020-07-13 Steven G. Kargl <kargl@gcc.gnu.org>
443 Mark Eggleston <markeggleston@gcc.gnu.org>
446 * check.c (dim_rank_check): Allow NULL references in call to
447 gfc_find_array_ref and return false if no reference is found.
449 2020-07-11 Thomas Koenig <tkoenig@gcc.gnu.org>
452 * frontend-passes.c (check_externals_procedure): Add locus
453 information for new_sym.
454 * interface.c (gfc_check_dummy_characteristics): Do not warn
455 about INTENT for artificially generated variables.
457 2020-07-10 Harald Anlauf <anlauf@gmx.de>
460 * class.c (gfc_add_component_ref, gfc_build_class_symbol):
461 Add checks for NULL pointer dereference.
462 * primary.c (gfc_variable_attr): Likewise.
463 * resolve.c (resolve_variable, resolve_assoc_var)
464 (resolve_fl_var_and_proc, resolve_fl_variable_derived)
465 (resolve_symbol): Likewise.
467 2020-07-10 Harald Anlauf <anlauf@gmx.de>
470 * match.c (gfc_match_select_rank): Catch NULL pointer
472 * resolve.c (resolve_assoc_var): Catch NULL pointer dereference
473 that may occur after an illegal declaration.
475 2020-07-09 Julian Brown <julian@codesourcery.com>
477 * trans-openmp.c (gfc_trans_omp_clauses): Use 'inner' not 'decl' for
478 derived type members which themselves have derived types.
480 2020-07-08 Harald Anlauf <anlauf@gmx.de>
483 * resolve.c (gfc_resolve_code): Check whether assign target is a
486 2020-07-06 Harald Anlauf <anlauf@gmx.de>
489 * match.c (copy_ts_from_selector_to_associate, build_class_sym):
490 Distinguish between unlimited polymorphic and ordinary variables
491 to avoid NULL pointer dereference.
492 * resolve.c (resolve_select_type):
493 Distinguish between unlimited polymorphic and ordinary variables
494 to avoid NULL pointer dereference.
496 2020-07-06 Harald Anlauf <anlauf@gmx.de>
499 * resolve.c (gfc_resolve_code): Check for valid arguments to
502 2020-07-05 Thomas Koenig <tkoenig@gcc.gnu.org>
505 * frontend-passes.c (check_against_globals): New function.
506 (gfc_check_externals): Split; also invoke check_against_globals
508 (gfc_check_externals0): Recursive part formerly in
510 * resolve.c (resolve_global_procedure): Set sym->error on
512 * symbol.c (ambiguous_symbol): Check for, and set sym->error.
514 2020-07-02 Harald Anlauf <anlauf@gmx.de>
517 * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
519 2020-07-02 Harald Anlauf <anlauf@gmx.de>
522 * class.c (gfc_find_derived_vtab): Punt if name is not set.
524 2020-07-02 Mark Eggleston <markeggleston@gcc.gnu.org>
527 * check.c (gfc_invalid_boz): Change array declaration for
530 2020-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
531 Mark Eggleston <markeggleston@gcc.gnu.org>
534 * interface.c (generic_correspondence): Only use the pointer
535 to a symbol if exists.
537 2020-07-01 David Edelsohn <dje.gcc@gmail.com>
539 * check.c (gfc_invalid_boz): Fix bootstrap. Revert
540 Mark hint for translation using _().
542 2020-07-01 Mark Eggleston <markeggleston@gcc.gnu.org>
545 * arith.c (reduce_binary_aa): Mark for translation the string
546 parameter to gfc_check_conformance with G_().
547 * check.c (gfc_invalid_boz): Mark hint for translation using
548 _(). (gfc_check_achar): Mark for translation the message
549 parameter to gfc_invalid_boz using G_(). (gfc_check_char):
550 Mark for translation the message parameter to gfc_invalid_boz
551 using G_(). (gfc_check_complex): Mark for translation the
552 message parameter to gfc_invalid_boz using G_().
553 (gfc_check_float): Mark for translation the message
554 parameter to gfc_invalid_boz using G_(). (check_rest): Mark
555 for translation the string parameter to gfc_check_conformance
556 with _(). (gfc_check_minloc_maxloc): Mark for translation
557 the string parameter to gfc_check_conformance with _().
558 (gfc_check_findloc): Mark for translation the string parameter
559 to gfc_check_conformance with _(). (check_reduction): Mark
560 for translation the string parameter to gfc_check_conformance
561 with _(). (gfc_check_pack): Mark for translation the string
562 parameter to gfc_check_conformance with _().
563 * decl.c (match_old_style_init): Mark for translation the
564 message parameter to gfc_invalid_boz using G_().
565 * expr.c (gfc_check_assign): Mark for translation the string
566 parameter to gfc_check_conformance with _().
567 * intrinsic.c (check_specific): Mark for translation the string
568 parameter to gfc_check_conformance with _().
569 (gfc_check_intrinsic_standard): Mark symstd_msg strings for
570 translation using G_(). No need to mark symstd_msg for
571 translation in call to gfc_warning or when setting symstd.
572 * io.c (check_open_constraints): Mark strings for translation
573 using G_() in all calls to warn_or_error. (match_io_element):
574 Mark for translation the message parameter to gfc_invalid_boz
576 * primary.c (match_boz_constant): Mark for translation the
577 message parameter to gfc_invalid_boz using G_().
578 * resolve.c (resolve_elemental_actual): Mark for translation
579 the string parameter to gfc_check_conformance with _().
580 (resolve_operator): Mark for translation the string parameter
581 to gfc_check_conformance with _(). Mark translation strings
582 assigned to msg using G_() for use in a call to cfg_warning.
584 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org>
585 Mark Eggleston <markeggleston@gcc.gnu.org>
588 * resolve.c (resolve_elemental_actual): Add code to check for
589 non-optional argument of the same rank. Revise warning message
590 to refer to the Fortran 2018 standard.
592 2020-07-01 Steven G. Kargl <kargl@gcc.gnu.org>
593 Mark Eggleston <markeggleston@gcc.gnu.org>
596 * decl.c (gfc_match_decl_type_spec): Compare with "* ) " instead
599 2020-06-30 Harald Anlauf <anlauf@gmx.de>
602 * resolve.c (resolve_assoc_var): Avoid NULL pointer dereference.
604 2020-06-30 Thomas Koenig <tkoenig@gcc.gnu.org>
607 * gfortran.h (gfc_typename): Add optional argument for_hash.
608 * misc.c (gfc_typename): When for_hash is true, just retur
610 * class.c (gfc_intrinsic_hash_value): Call gfc_typename with
613 2020-06-29 Harald Anlauf <anlauf@gmx.de>
616 * decl.c (gfc_match_data): Avoid NULL pointer dereference.
618 2020-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
621 * trans-decl.c (gfc_generate_function_code): Do not generate
622 recursion check for compiler-generated procedures.
624 2020-06-29 Harald Anlauf <anlauf@gmx.de>
627 * trans-stmt.c (gfc_trans_sync): Do proper kind conversion in
628 bounds-checking code.
630 2020-06-28 Harald Anlauf <anlauf@gmx.de>
633 * match.c (gfc_match_select_rank): Do not dereference NULL pointer.
635 2020-06-28 Harald Anlauf <anlauf@gmx.de>
638 * symbol.c (gfc_add_type): If sym->ns->proc_name is set, use it,
639 otherwise fall back to sym->name.
641 2020-06-27 Harald Anlauf <anlauf@gmx.de>
644 * resolve.c (resolve_symbol): Avoid NULL pointer dereference.
646 2020-06-25 Harald Anlauf <anlauf@gmx.de>
649 * match.c (select_rank_set_tmp): Enlarge internal buffer used in
650 generating a mangled name.
651 * resolve.c (resolve_select_rank): Likewise.
653 2020-06-25 Harald Anlauf <anlauf@gmx.de>
656 * decl.c (gfc_match_decl_type_spec): Replace a fixed size
657 buffer by a pointer and reallocate if necessary.
659 2020-06-25 Tobias Burnus <tobias@codesourcery.com>
662 * resolve.c (gfc_resolve_substring_charlen): Remove
663 bogus ts.kind setting for the expression.
665 2020-06-25 Tobias Burnus <tobias@codesourcery.com>
666 Kwok Cheung Yeung <kcy@codesourery.com>
669 * trans-openmp.c (gfc_trans_omp_target): Use correct scoping block.
671 2020-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
673 * trans-openmp.c (gfc_split_omp_clauses): Add if clause
674 to target and simd sub-constructs.
676 2020-06-24 Harald Anlauf <anlauf@gmx.de>
679 * iresolve.c (gfc_get_string): Enlarge internal buffer used in
680 generating the mangled name.
682 2020-06-23 Thomas Koenig <tkoenig@gcc.gnu.org>
685 * dependency.c (ref_same_as_full_array): Handle case of AR_FULL
688 2020-06-23 Steven G. Kargl <kargl@gcc.gnu.org>
689 Mark Eggleston <markeggleston@gcc.gnu.org>
692 * decl.c (gfc_match_implicit): Only perform else branch if
693 the type spect is not BT_DERIVED.
695 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org>
696 Mark Eggleston <markeggleston@gcc.gnu.org>
699 * intrinsic.c (add_functions): Replace CLASS_INQUIRY with
700 CLASS_TRANSFORMATIONAL for intrinsic num_images.
701 (make_generic): Replace ACTUAL_NO with ACTUAL_YES for
702 intrinsic team_number.
703 * resolve.c (resolve_fl_procedure): Check pointer ts.u.derived
704 exists before using it.
706 2020-06-22 Steven G. Kargl <kargl@gcc.gnu.org>
707 Mark Eggleston <markeggleston@gcc.gnu.org>
710 * check.c (gfc_check_reshape): Add check for a value when
711 the symbol has an attribute flavor FL_PARAMETER.
713 2020-06-22 Mark Eggleston <markeggleston@gcc.gnu.org>
716 * arith.c (gfc_arith_error): Enclose strings in G_() instead
719 2020-06-20 Harald Anlauf <anlauf@gmx.de>
722 * gfortran.h (gfc_common_head): Enlarge buffer.
723 * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporary
724 buffers, and add check on length on mangled name to prevent
727 2020-06-20 Harald Anlauf <anlauf@gmx.de>
730 * iresolve.c (gfc_get_string): Enlarge static buffer size.
732 2020-06-20 Harald Anlauf <anlauf@gmx.de>
735 * class.c (get_unique_type_string): Return a string with dynamic
737 (get_unique_hashed_string, gfc_hash_value): Use dynamic result
738 from get_unique_type_string instead of static buffer.
740 2020-06-20 Harald Anlauf <anlauf@gmx.de>
743 * interface.c (check_sym_interfaces): Enlarge temporary buffer,
744 and add check on length on mangled name to prevent overflow.
746 2020-06-20 Harald Anlauf <anlauf@gmx.de>
749 * match.c (gfc_match_equivalence): Check constraints on
750 EQUIVALENCE objects also for CLASS variables.
752 2020-06-18 Tobias Burnus <tobias@codesourcery.com>
754 * openmp.c (resolve_omp_clauses): Reject vars with
755 allocatable components in OpenMP map clauses.
757 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
759 * parse.c (decode_oacc_directive): Permit 'acc routine' also
760 inside pure procedures.
761 * openmp.c (gfc_match_oacc_routine): Inside pure procedures
762 do not permit gang, worker or vector clauses.
764 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
766 * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
767 from "in PURE" error message also for -fopenmp-simd.
769 2020-06-16 Tobias Burnus <tobias@codesourcery.com>
771 * parse.c (decode_omp_directive): Remove "or ELEMENTAL"
772 from "in PURE" error message.
774 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
777 * dump-parse-tree.c (gfc_dump_global_symbols): If the symroot is
778 empty, just output "empty".
780 2020-06-14 Harald Anlauf <anlauf@gmx.de>
783 * class.c (get_unique_type_string): Replace use of fixed size
784 buffer by internally passing a pointer to strings.
786 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
788 * check.c (gfc_check_random_seed): Always use locations
789 from get and put arguments for error messages.
791 2020-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
794 * class.c (finalize_component): Return early if finalization has
795 already happened for expression and component within namespace.
796 * gfortran.h (gfc_was_finalized): New type.
797 (gfc_namespace): Add member was_finalzed.
798 (gfc_expr): Remove finalized.
799 * symbol.c (gfc_free_namespace): Free was_finalized.
801 2020-06-11 Harald Anlauf <anlauf@gmx.de>
802 Steven G. Kargl <kargl@gcc.gnu.org>
805 * decl.c (access_attr_decl): Use correct symbol in error message.
807 2020-06-11 Steven G. Kargl <kargl@gcc.gnu.org>
808 Harald Anlauf <anlauf@gmx.de>
811 * check.c (invalid_null_arg): Rename to gfc_invalid_null_arg.
812 (gfc_check_associated, gfc_check_kind, gfc_check_merge)
813 (gfc_check_shape, gfc_check_size, gfc_check_spread)
814 (gfc_check_transfer): Adjust.
815 (gfc_check_len_lentrim, gfc_check_trim): Check for NULL() argument.
816 * gfortran.h: Declare gfc_invalid_null_arg ().
817 * intrinsic.c (check_arglist): Check for NULL() argument.
819 2020-06-11 Harald Anlauf <anlauf@gmx.de>
822 * expr.c (gfc_check_pointer_assign): Skip contiguity check of rhs
823 of pointer assignment if lhs cannot be simply contiguous.
825 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
828 * trans-array.c (gfc_conv_array_ref): For class array dummy
829 arguments use the transformed descriptor in sym->backend_decl
830 instead of the original descriptor.
832 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
836 * trans-array.c (gfc_conv_expr_descriptor): Enable the
837 creation of a new descriptor with the correct one based
838 indexing for array sections. Rework array descriptor
839 indexing offset calculation.
841 2020-06-11 José Rui Faustino de Sousa <jrfsousa@gmail.com>
844 * trans-expr.c (gfc_conv_procedure_call): In the case of
845 assumed-size arrays ensure that the reference is to a full array.
847 2020-06-07 Harald Anlauf <anlauf@gmx.de>
850 * class.c (gfc_hash_value): Add cast.
852 2020-06-07 Harald Anlauf <anlauf@gmx.de>
855 * class.c (get_unique_type_string, gfc_hash_value): Enlarge
856 buffers, and check whether the strings returned by
857 get_unique_type_string() fit.
859 2020-06-05 Harald Anlauf <anlauf@gmx.de>
863 * decl.c (gfc_match_decl_type_spec): Enlarge buffer, and enhance
864 string copy to detect buffer overflow.
865 * gfortran.h (gfc_common_head): Enlarge buffer.
866 * trans-common.c (finish_equivalences): Enhance string copy to
867 detect buffer overflow.
869 2020-06-05 Tom Tromey <tromey@adacore.com>
872 * misc.c (gfc_closest_fuzzy_match): Update cutoff value
875 2020-06-04 Steven G. Kargl <kargl@gcc.gnu.org>
876 Harald Anlauf <anlauf@gmx.de>
879 * trans-expr.c (gfc_conv_expr_reference): Do not dereference NULL
882 2020-06-03 José Rui Faustino de Sousa <jrfsousa@gmail.com>
887 * trans-expr.c (gfc_maybe_dereference_var): Add assumed-rank to
888 character dummy arguments list of possible attributes.
890 2020-06-03 Tobias Burnus <tobias@codesourcery.com>
892 * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Redefine.
893 * trans-openmp.c (gfc_omp_predetermined_mapping): New.
894 * trans.h (gfc_omp_predetermined_mapping): Declare.
896 2020-05-31 Thomas Koenig <tkoenig@gcc.gnu.org>
899 * class.c (finalize_component): Use expr->finalized instead of
901 * gfortran.h (gfc_component): Remove finalized member.
902 (gfc_expr): Add it here instead.
904 2020-05-30 Harald Anlauf <anlauf@gmx.de>
907 * primary.c (is_inquiry_ref): Move validity check of inquiry
908 references against selected Fortran standard from here...
909 (gfc_match_varspec) ...to here.
911 2020-05-30 Harald Anlauf <anlauf@gmx.de>
914 * class.c (get_unique_type_string): Use buffer overrun check.
916 2020-05-29 Harald Anlauf <anlauf@gmx.de>
919 * class.c (get_unique_type_string): Enlarge temporary for
920 name-mangling. Use strncpy to prevent buffer overrun.
921 (get_unique_hashed_string): Enlarge temporary.
922 (gfc_hash_value): Enlarge temporary for name-mangling.
924 2020-05-28 Harald Anlauf <anlauf@gmx.de>
927 * primary.c (is_inquiry_ref): Check validity of inquiry
928 references against selected Fortran standard.
930 2020-05-28 Steven G. Kargl <kargl@gcc.gnu.org>
931 Mark Eggleston <markeggleston@gcc.gnu.org>
932 Mark Eggleston <markeggleston@gcc.gnu.org>
935 * match.c (gfc_match_type_spec): New variable ok initialised
936 to true. Set ok with the return value of gfc_reduce_init_expr
937 called only if the expression is not EXPR_CONSTANT and is not
938 EXPR_VARIABLE. Add !ok to the check for type not being integer
939 or the rank being greater than zero.
941 2020-05-27 Harald Anlauf <anlauf@gmx.de>
944 * iresolve.c (gfc_get_string): Enlarge temporary for
947 2020-05-27 Tobias Burnus <tobias@codesourcery.com>
948 Mark Eggleston <markeggleston@gnu.gcc.org>
951 * trans-decl.c (gfc_get_symbol_decl): Remove unnecessary block
952 delimiters. Add auxiliary variables if a label is assigned to
953 a return variable. (gfc_gat_fake_result): If the symbol has an
954 assign attribute set declaration from the symbol's backend
957 2020-05-26 Harald Anlauf <anlauf@gmx.de>
960 * trans-types.c (gfc_get_derived_type): Enlarge temporary to hold
961 mangled name "_caf_symbol".
963 2020-05-26 Alexandre Oliva <oliva@adacore.com>
965 * options.c (gfc_get_option_string): Drop auxbase, add
968 2020-05-24 Harald Anlauf <anlauf@gmx.de>
971 * trans-common.c (gfc_sym_mangled_common_id): Enlarge temporaries
974 2020-05-23 Thomas Koenig <tkoenig@gcc.gnu.org>
977 * libgfortran.h (libgfortran_error_codes): Add
978 LIBERROR_BAD_WAIT_ID.
980 2020-05-20 Mark Eggleston <markeggleston@gcc.gnu.org>
983 * resolve.c (resolve_fl_procedure): Set name depending on
984 whether the result attribute is set. For PROCEDURE/RESULT
985 conflict use the name in sym->ns->proc_name->name.
986 * symbol.c (gfc_add_type): Add check for function and result
987 attributes use sym->ns->proc_name->name if both are set.
988 Where the symbol cannot have a type use the name in
989 sym->ns->proc_name->name.
991 2020-05-18 Harald Anlauf <anlauf@gmx.de>
994 * arith.c (gfc_divide): Revert hunk introduced by patch for
996 * decl.c (variable_decl): Generate error for array shape not being
998 (gfc_get_pdt_instance): Generate error if KIND or LEN expressions
999 in declaration of a PDT instance do not simplify to INTEGER
1002 2020-05-15 Tobias Burnus <tobias@codesourcery.com>
1005 * openmp.c (resolve_omp_do): Permit more clauses for SIMD
1006 iteration variables.
1008 2020-05-14 Jakub Jelinek <jakub@redhat.com>
1010 * trans-openmp.c: Include function.h.
1011 (gfc_trans_omp_target): Set cfun->has_omp_target.
1013 2020-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
1016 * decl.c (char_len_param_value): Check whether character
1017 length expression is of type EXPR_OP and if so simplify it.
1018 * resolve.c (resolve_charlen): Reject length if it has a
1021 2020-05-13 Tobias Burnus <tobias@codesourcery.com>
1024 * openmp.c (OMP_DISTRIBUTE_CLAUSES): Add OMP_CLAUSE_LASTPRIVATE.
1025 (gfc_resolve_do_iterator): Skip the private handling for SIMD as
1026 that is handled by ME code.
1027 * trans-openmp.c (gfc_trans_omp_do): Don't add private/lastprivate
1028 for dovar_found == 0, unless !simple.
1030 2020-05-11 Harald Anlauf <anlauf@gmx.de>
1033 * arith.c (gfc_divide): Do not error out if operand 2 is
1034 non-numeric. Defer checks to later stage.
1036 2020-05-11 Tobias Burnus <tobias@codesourcery.com>
1039 * trans.h (gfc_conv_expr_present): Add use_saved_decl=false argument.
1040 * trans-expr.c (gfc_conv_expr_present): Likewise; use DECL directly
1041 and only if use_saved_decl is true, use the actual PARAM_DECL arg (saved
1043 * trans-array.c (gfc_trans_dummy_array_bias): Set local 'arg.0'
1044 variable to NULL if 'arg' is not present.
1045 * trans-openmp.c (gfc_omp_check_optional_argument): Simplify by checking
1046 'arg.0' instead of the true PARM_DECL.
1047 (gfc_omp_finish_clause): Remove setting 'arg.0' to NULL.
1049 2020-05-11 Janus Weil <janus@gcc.gnu.org>
1050 Dominique d'Humieres <dominiq@lps.ens.fr>
1053 * gfortran.h: Rename field resolved as resolve_symbol_called
1054 and assign two 2 bits instead of 1.
1055 * interface.c (check_dtio_interface1): Use new field name.
1056 (gfc_find_typebound_dtio_proc): Use new field name.
1057 * resolve.c (gfc_resolve_intrinsic): Replace check of the formal
1058 field with resolve_symbol_called is at least 2, if it is not
1059 set the field to 2. (resolve_typebound_procedure): Use new field
1060 name. (resolve_symbol): Use new field name and check whether it
1061 is at least 1, if it is not set the field to 1.
1063 2020-05-10 Harald Anlauf <anlauf@gmx.de>
1066 * arith.c (gfc_divide): Catch division by zero.
1067 (eval_intrinsic_f3): Safeguard for NULL operands.
1069 2020-05-05 Steve Kargl <kargl@gcc.gnu.org>
1070 Harald Anlauf <anlauf@gmx.de>
1073 * check.c (gfc_check_associated, invalid_null_arg): Factorize
1074 check for presence of invalid NULL() argument.
1075 (gfc_check_kind, gfc_check_merge, gfc_check_shape)
1076 (gfc_check_sizeof, gfc_check_spread, gfc_check_transfer): Use this
1077 check for presence of invalid NULL() arguments.
1079 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1082 * io.c (check_io_constraints): Initialize local variable num to
1083 -1 and assert that it receives a meaningful value by function
1084 compare_to_allowed_values.
1086 2020-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1090 * expr.c (gfc_check_pointer_assign): Revert patch for PR 93956.
1091 * interface.c: Likewise.
1093 2020-04-25 Thomas Koenig <tkoenig@gcc.gnu.org>
1096 * trans-expr.c (arrayfunc_assign_needs_temporary): If the
1097 LHS is a subref pointer, we also need a temporary.
1099 2020-04-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1102 * expr.c (gfc_check_pointer_assign): Also set subref_array_pointer
1103 when a function returns a pointer.
1104 * interface.c (gfc_set_subref_array_pointer_arg): New function.
1105 (gfc_procedure_use): Call it.
1107 2020-04-22 Fritz Reese <foreese@gcc.gnu.org>
1109 * trigd_fe.inc: Use mpfr to compute cosd(30) rather than a host-
1110 precision floating point literal based on an invalid macro.
1112 2020-04-22 José Rui Faustino de Sousa <jrfsousa@gmail.com>
1115 * simplify.c (simplify_bound): In the case of assumed-size arrays
1116 check if the reference is to a full array.
1118 2020-04-22 Tobias Burnus <tobias@codesourcery.com>
1121 * scanner.c (load_line): In fixed form, also treat 'C' as comment and
1122 'D'/'d' only with -fd-lines-as-comments. Treat '!$' with -fopenmp,
1123 '!$acc' with -fopenacc and '!GCC$' as non-comment to permit <tab>
1124 and truncation warnings.
1126 2020-04-20 Thomas Koenig <tkoenig@gcc.gnu.org>
1128 * dump-parse-tree.c (show_attr): Add numerous flags, some cleanup.
1130 2020-04-20 Harald Anlauf <anlauf@gmx.de>
1133 * array.c (gfc_set_array_spec): Check for sum of rank and corank
1134 not exceeding GFC_MAX_DIMENSIONS.
1136 2020-04-20 Steve Kargl <kargl@gcc.gnu.org>
1137 Thomas Koenig <tkoenig@gcc.gnu.org>
1140 * decl.c (variable_decl): Reject Hollerith constants as type
1143 2020-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1146 * resolve.c (resolve_operator): If both operands are
1148 * simplify.c (simplify_bound): If a division by zero
1149 was seen during bound simplification, free the
1150 corresponcing expression and return &gfc_bad_expr.
1152 2020-04-17 Thomas Koenig <tkoenig@gcc.gnu.org>
1155 * gfortran.dg (gfc_compare_interfaces): Add
1156 optional argument bad_result_characteristics.
1157 * interface.c (gfc_check_result_characteristics): Fix
1159 (gfc_compare_interfaces): Handle new argument; return
1160 true if function return values are wrong.
1161 * resolve.c (resolve_global_procedure): Hard error if
1162 the return value of a function is wrong.
1164 2020-04-15 Fritz Reese <foreese@gcc.gnu.org>
1165 Linus Koenig <link@sig-st.de>
1168 * simplify.c (simplify_bound): Simplify condition for error check.
1170 2020-04-14 Tobias Burnus <tobias@codesourcery.com>
1172 * module.c (gfc_match_use): Fix name-conflict check for use-associating
1173 the same symbol again in a submodule.
1175 2020-04-13 Linus Koenig <link@sig-st.de>
1178 * resolve.c (resolve_fl_var_and_proc): Set flag "error" to 1 if
1179 pointer is found to not have an assumed rank or a deferred shape.
1180 * simplify.c (simplify_bound): If an error has been issued for a
1181 given pointer, one should not attempt to find its bounds.
1183 2020-04-09 Fritz Reese <foreese@gcc.gnu.org>
1186 * gfortran.h (gfc_resolve_open, gfc_resolve_close): Add
1188 (gfc_resolve_dt): Add code parameter.
1189 * io.c (async_io_dt, check_char_variable, is_char_type): Removed.
1190 (resolve_tag_format): Add locus to error message regarding
1191 zero-sized array in FORMAT tag.
1192 (check_open_constraints, check_close_constraints): New functions
1193 called at resolution time.
1194 (gfc_match_open, gfc_match_close, match_io): Move checks which don't
1195 affect the match result to new functions check_open_constraints,
1196 check_close_constraints, check_io_constraints.
1197 (gfc_resolve_open, gfc_resolve_close): Call new functions
1198 check_open_constraints, check_close_constraints after all tags have
1199 been independently resolved. Remove duplicate constraints which are
1200 already verified by resolve_tag. Explicitly pass locus to all error
1202 (compare_to_allowed_values): Add locus parameter and provide
1203 explicit locus all error reports.
1204 (match_open_element, match_close_element, match_file_element,
1205 match_dt_element, match_inquire_element): Remove redundant special
1206 cases for ASYNCHRONOUS and IOMSG tags.
1207 (gfc_resolve_dt): Remove redundant special case for format
1208 expression. Call check_io_constraints, forwarding an I/O list as
1209 the io_code parameter if present.
1210 (check_io_constraints): Change return type to bool. Pass explicit
1211 locus to error reports. Move generic checks after tag-specific
1212 checks, since errors are no longer buffered. Move simplification of
1213 format string to match_io. Remove redundant checks which are
1214 verified by resolve_tag. Remove usage of async_io_dt flag and
1215 explicitly mark symbols used in asynchronous I/O with the
1216 asynchronous attribute.
1217 * resolve.c (resolve_transfer, resolve_fl_namelist): Remove checks
1218 for async_io_dt flag. This is now done in io.c.
1219 (check_io_constraints).
1220 (gfc_resolve_code): Pass code locus to gfc_resolve_open,
1221 gfc_resolve_close, gfc_resolve_dt.
1223 2020-04-07 Fritz Reese <foreese@gcc.gnu.org>
1224 Steven G. Kargl <kargl@gcc.gnu.org>
1227 * gfortran.h (GFC_ISYM_ACOSD, GFC_ISYM_ASIND, GFC_ISYM_ATAN2D,
1228 GFC_ISYM_ATAND, GFC_ISYM_COSD, GFC_ISYM_COTAND, GFC_ISYM_SIND,
1229 GFC_ISYM_TAND): New.
1230 * intrinsic.c (add_functions): Remove check for flag_dec_math.
1231 Give degree trig functions simplification and name resolution
1232 functions (e.g, gfc_simplify_atrigd () and gfc_resolve_atrigd ()).
1233 (do_simplify): Remove special casing of degree trig functions.
1234 * intrinsic.h (gfc_simplify_acosd, gfc_simplify_asind,
1235 gfc_simplify_atand, gfc_simplify_cosd, gfc_simplify_cotand,
1236 gfc_simplify_sind, gfc_simplify_tand, gfc_resolve_trigd2): Add new
1238 (gfc_simplify_atrigd, gfc_simplify_trigd, gfc_resolve_cotan,
1239 resolve_atrigd): Remove prototypes of deleted functions.
1240 * iresolve.c (is_trig_resolved, copy_replace_function_shallow,
1241 gfc_resolve_cotan, get_radians, get_degrees, resolve_trig_call,
1242 gfc_resolve_atrigd, gfc_resolve_atan2d): Delete functions.
1243 (gfc_resolve_trigd, gfc_resolve_trigd2): Resolve to library functions.
1244 * simplify.c (rad2deg, deg2rad, gfc_simplify_acosd, gfc_simplify_asind,
1245 gfc_simplify_atand, gfc_simplify_atan2d, gfc_simplify_cosd,
1246 gfc_simplify_sind, gfc_simplify_tand, gfc_simplify_cotand): New
1248 (gfc_simplify_atan2): Fix error message.
1249 (simplify_trig_call, gfc_simplify_trigd, gfc_simplify_atrigd,
1250 radians_f): Delete functions.
1251 * trans-intrinsic.c: Add LIB_FUNCTION decls for sind, cosd, tand.
1252 (rad2deg, gfc_conv_intrinsic_atrigd, gfc_conv_intrinsic_cotan,
1253 gfc_conv_intrinsic_cotand, gfc_conv_intrinsic_atan2d): New functions.
1254 (gfc_conv_intrinsic_function): Handle ACOSD, ASIND, ATAND, COTAN,
1256 * trigd_fe.inc: New file. Included by simplify.c to implement
1257 simplify_sind, simplify_cosd, simplify_tand with code common to the
1258 libgfortran implementation.
1260 2020-04-06 Steven G. Kargl <kargl@gcc.gnu.org>
1263 * decl.c (gfc_match_data): Handle data matching for derived type
1266 2020-04-02 Tobias Burnus <tobias@codesourcery.com>
1268 * gfortran.h (gfc_resolve_formal_arglist): Add prototype.
1269 * interface.c (check_dtio_interface1): Call it.
1270 * resolve.c (gfc_resolve_formal_arglist): Renamed from
1271 resolve_formal_arglist, removed static.
1272 (find_arglists, resolve_types): Update calls.
1274 2020-04-02 Tobias Burnus <tobias@codesourcery.com>
1277 * match.c (gfc_match_select_rank): Fix error cleanup.
1279 2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
1282 * check.c (gfc_check_findloc): If the kinds of the arguments
1283 differ goto label "incompat".
1285 2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
1288 * resolve.c (resolve_equivalence): Correct formatting
1289 around the label "identical_types". Instead of using
1290 gfc_resolve_array_spec use is_non_constants_shape_array
1291 to determine whether the array can be used in a in an
1292 equivalence statement.
1294 2020-04-01 Mark Eggleston <mark.eggleston@codethink.com>
1297 expr.c (simplify_parameter_variable): Restore code deleted
1300 2020-03-28 Paul Thomas <pault@gcc.gnu.org>
1303 * arith.c : Remove trailing white space.
1304 * expr.c (scalarize_intrinsic_call): Remove the error checking.
1305 Make a copy of the expression to be simplified and only replace
1306 the original if the simplification succeeds.
1308 2020-03-28 Tobias Burnus <tobias@codesourcery.com>
1311 * decl.c (gfc_match_submod_proc): Add result var to the
1314 2020-03-27 Tobias Burnus <tobias@codesourcery.com>
1317 * trans-array.c (gfc_alloc_allocatable_for_assignment): Accept
1318 nonallocatable, nonpointer deferred-rank arrays.
1320 2020-03-27 Tobias Burnus <tobias@codesourcery.com>
1323 * resolve.c (resolve_assoc_var): Reject association to DT and
1326 2020-03-25 Steven G. Kargl <kargl@gcc.gnu.org>
1329 * match.c (gfc_match_type_spec): Replace gfc_match_init_expr with
1330 gfc_match_expr. Return m if m is MATCH_NO or MATCH_ERROR.
1332 2020-03-23 Mark Eggleston <mark.eggleston@codethink.com>
1333 Steven G. Kargl <kargl@gcc.gnu.org>
1336 * expr.c (simplify_parameter_variable): Check whether the ref
1337 chain contains INQUIRY_LEN or INQUIRY_KIND and set inquiry
1338 boolean. When an empty array has been identified and a new
1339 new EXPR_ARRAY expression has been created only return that
1340 expression if inquiry is not set. This allows the new
1341 expression to drop through to be simplified into a
1342 EXPR_CONSTANT representing %kind or %len.
1343 * matc.c (gfc_match_assignment): If lvalue doesn't have a
1344 symtree free both lvalue and rvalue expressions and return
1346 * resolv.c (gfc_resolve_ref): Ensure that code to handle
1347 INQUIRY_LEN is only performed for arrays with deferred types.
1349 2020-03-18 Jakub Jelinek <jakub@redhat.com>
1351 * class.c (generate_finalization_wrapper): Fix up duplicated word
1353 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
1355 2020-03-17 Jakub Jelinek <jakub@redhat.com>
1357 * array.c (gfc_check_iter_variable): Fix up duplicated word issue
1359 * arith.c (gfc_arith_concat): Likewise.
1360 * resolve.c (gfc_resolve_ref): Likewise.
1361 * frontend-passes.c (matmul_lhs_realloc): Likewise.
1362 * module.c (gfc_match_submodule, load_needed): Likewise.
1363 * trans-expr.c (gfc_init_se): Likewise.
1365 2020-03-15 Lewis Hyatt <lhyatt@gmail.com>
1367 * lang.opt: Avoid redundancy in the help text.
1369 2020-03-12 Tobias Burnus <tobias@codesourcery.com>
1372 * openmp.c (gfc_match_oacc_declare): Accept function-result
1373 variables; reject variables declared in a different scoping unit.
1375 2020-03-08 Paul Thomas <pault@gcc.gnu.org>
1378 * resolve.c (gfc_resolve_ref): Modify array refs to be elements
1379 if the ref chain ends in INQUIRY_LEN.
1380 * trans-array.c (gfc_get_dataptr_offset): Provide the offsets
1381 for INQUIRY_RE and INQUIRY_IM.
1383 2020-03-05 Steven G. Kargl <kargl@gcc.gnu.org>
1386 * decl.c (variable_decl): If param and initializer check
1387 for BOZ, if found, output an error, set m to MATCH_ERROR
1390 2020-03-02 Andrew Benson <abensonca@gmail.com>
1393 * module.c: Increase size of variables used to read module names
1394 when loading interfaces from module files to permit cases where
1395 the name is the concatenation of a module and submodule name.
1396 * gfortran.dg/pr93486.f90: New test.
1398 2020-03-01 Paul Thomas <pault@gcc.gnu.org>
1401 * match.c (select_type_set_tmp): If the selector array spec has
1402 explicit bounds, make the temporary's bounds deferred.
1404 2020-03-01 Paul Thomas <pault@gcc.gnu.org>
1407 * trans-intrinsic.c (gfc_conv_associated): Eliminate
1408 'nonzero_charlen' and move the chunk to evaluate zero character
1409 length until after the argument evaluation so that the string
1412 2020-02-28 Paul Thomas <pault@gcc.gnu.org>
1415 * trans-expr.c (gfc_conv_intrinsic_to_class): Renormalise non-
1416 variable expressions to be unity lbound based.
1418 2020-02-25 Steven G. Kargl <kargl@gcc.gnu.org>
1420 * simplify.c (degrees_f): Remove unused code.
1422 2020-02-25 Jakub Jelinek <jakub@redhat.com>
1424 PR translation/93864
1425 * intrinsic.texi (CO_BROADCAST): Fix typo, paramter -> parameter.
1426 * trans-array.c (gfc_allocate_pdt_comp, gfc_deallocate_pdt_comp,
1427 gfc_check_pdt_dummy): Fix comment typo paramter -> parameter.
1429 2020-02-24 Mark Eggleston <mark.eggleston@codethink.com>
1430 Steven G. Kargl <kargl@gcc.gnu.org>
1433 * decl.c (gfc_match_data) : Check whether the data expression
1434 is a derived type and is a constructor. If a BOZ constant
1435 is encountered in the constructor output an error and return
1438 2020-02-24 Steven G. Kargl <kargl@gcc.gnu.org>
1441 * decl.c (gfc_match_data) : Check whether the data expression
1442 is a derived type and is a constructor. If a BOZ constant
1443 is encountered in the constructor output an error and return
1446 2020-02-24 Tobias Burnus <tobias@codesourcery.com>
1449 * match.c (match_exit_cycle): With OpenACC, check the kernels loop
1450 directive and tile clause as well.
1452 2020-02-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1455 * interface.c (compare_parameter): Fix error message.
1457 2020-02-23 Thomas Koenig <tkoenig@gcc.gnu.org>
1460 * interface.c: Replace "can not" by "cannot" and remove trailing
1463 2020-02-20 Tobias Burnus <tobias@codesourcery.com>
1466 * openmp.c (resolve_oacc_loop_blocks): Move call to
1467 resolve_oacc_nested_loops from here ...
1468 (resolve_oacc_loop): ... to here.
1470 2020-02-18 Mark Eggleston <markeggleston@gcc.gnu.org>
1473 * expr.c (gfc_check_pointer_assign): Move check for
1474 matching character length to after checking the lvalue
1475 attributes for target or pointer.
1477 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1480 * match.c (gfc_match_assignment) : Reject assignment if
1481 the lhs stype is BT_CLASS and the rhs type is BT_BOZ.
1483 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1486 * match.c (gfc_match_associate) : If target expression
1487 has the type BT_BOZ output an error and goto
1490 2020-02-18 Steven G. Kargl <kargl@gcc.gnu.org>
1491 Mark Eggleston <markeggleston@gcc.gnu.org>
1494 * primary.c (gfc_match_varspec): If the symbol following %
1495 is re or im and the primary expression type is not BT_COMPLEX
1496 issue an error. If the symbol is len and the primary
1497 expression type is not BT_CHARACTER is an error.
1499 2020-02-10 Andrew Benson <abensonca@gmail.com>
1502 * array.c: Do not attempt to set the array spec for a submodule
1503 function symbol (as it has already been set in the corresponding
1504 module procedure interface).
1505 * symbol.c: Do not reject duplicate POINTER, ALLOCATABLE, or
1506 DIMENSION attributes in declarations of a submodule function.
1507 * gfortran.h: Add a macro that tests for a module procedure in a
1509 * gfortran.dg/pr83113.f90: New test.
1511 2020-02-03 Julian Brown <julian@codesourcery.com>
1512 Tobias Burnus <tobias@codesourcery.com>
1514 * cpp.c (cpp_define_builtins): Update _OPENACC define to 201711.
1515 * intrinsic.texi: Update mentions of OpenACC version to 2.6.
1516 * gfortran.texi: Likewise. Remove experimental disclamer for OpenACC.
1517 * invoke.texi: Remove experimental disclamer for OpenACC.
1519 2020-02-03 Tobias Burnus <tobias@codesourcery.com>
1522 * intrinisic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS):
1523 Add undocumented parameters from omp_lib.f90.in.
1525 2020-02-03 Tobias Burnus <tobias@codesourcery.com>
1528 * resolve.c (resolve_assoc_var): Remove too strict check.
1529 * gfortran.dg/associate_51.f90: Update test case.
1531 2020-02-01 Jakub Jelinek <jakub@redhat.com>
1534 * trans-types.c (gfc_get_function_type): Also push boolean_type_node
1535 types for non-character scalar VALUE optional dummy arguments.
1536 * trans-decl.c (create_function_arglist): Skip those in
1537 hidden_typelist. Formatting fix.
1539 2020-01-31 Tobias Burnus <tobias@codesourcery.com>
1542 * frontend-passes.c (gfc_code_walker): For EXEC_OACC_ATOMIC, set
1543 in_omp_atomic to true prevent front-end optimization.
1545 2020-01-30 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1548 * expr.c (gfc_check_conformance): Check vsnprintf for truncation.
1549 * iresolve.c (gfc_get_string): Likewise.
1550 * symbol.c (gfc_new_symbol): Remove check for maximum symbol
1551 name length. Remove redundant 0 setting of new calloc()ed
1554 2020-01-30 Paul Thomas <pault@gcc.gnu.org>
1555 Jakub Jelinek <jakub@redhat.com>
1558 * trans-decl.c (gfc_get_symbol_decl): Call gfc_defer_symbol_init for
1560 (gfc_build_builtin_function_decls): Use ".w." instead of ".ww" or ".wR"
1561 for gfor_fndecl_{cfi_to_gfc,gfc_to_cfi}.
1562 (convert_CFI_desc): Handle references to CFI descriptors.
1564 2020-01-29 Jakub Jelinek <jakub@redhat.com>
1567 * openmp.c (oacc_code_to_statement): Handle
1568 EXEC_OACC_{ROUTINE,UPDATE,WAIT,CACHE,{ENTER,EXIT}_DATA,DECLARE}.
1570 2020-01-28 Andrew Benson <abensonca@gmail.com>
1573 * trans.h: Increase GFC_MAX_MANGLED_SYMBOL_LEN to
1574 GFC_MAX_SYMBOL_LEN*3+5 to allow for inclusion of submodule name,
1575 plus the "." between module and submodule names.
1576 * gfortran.dg/pr93461.f90: New test.
1578 2020-01-28 Andrew Benson <abensonca@gmail.com>
1581 * parse.c: Increase length of char variables to allow them to hold
1582 a concatenated module + submodule name.
1583 * gfortran.dg/pr93473.f90: New test.
1585 2020-01-28 Julian Brown <julian@codesourcery.com>
1588 * openmp.c (resolve_omp_clauses): Check array references for contiguity.
1590 2020-01-28 Julian Brown <julian@codesourcery.com>
1592 * gfortran.h (gfc_symbol): Add comp_mark bitfield.
1593 * openmp.c (resolve_omp_clauses): Disallow mixed component and
1594 full-derived-type accesses to the same variable within a single
1597 2020-01-28 Tobias Burnus <tobias@codesourcery.com>
1600 * openmp.c (gfc_omp_check_optional_argument): Avoid ICE when
1601 DECL_LANG_SPECIFIC and GFC_DESCRIPTOR_TYPE_P but not
1602 GFC_DECL_SAVED_DESCRIPTOR as for local allocatable character vars.
1604 2020-01-28 Tobias Burnus <tobias@codesourcery.com>
1606 * gfortran.texi (Runtime): Remove tailing '.' in @menu.
1608 2020-01-27 Tobias Burnus <tobias@codesourcery.com>
1611 * trans-expr.c (gfc_conv_substring): Handle non-ARRAY_TYPE strings
1612 of Bind(C) procedures.
1614 2020-01-22 Jakub Jelinek <jakub@redhat.com>
1616 * parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL.
1617 * trans-openmp.c (gfc_trans_omp_target)
1618 <case EXEC_OMP_TARGET_PARALLEL>: Call pushlevel first.
1621 * openmp.c (omp_code_to_statement): Handle remaining EXEC_OMP_*
1624 2020-01-21 Tobias Burnus <tobias@codesourcery.com>
1627 * interface.c (gfc_procedure_use): Also check parent namespace for
1628 'implict none (external)'.
1629 * symbol.c (gfc_get_namespace): Don't set has_implicit_none_export
1630 to parent namespace's setting.
1632 2020-01-19 Thomas König <tkoenig@gcc.gnu.org>
1635 * primary.c (gfc_match_rvalue): Break after setting MATCH_ERROR.
1636 * resolve.c (resolve_function): Issue error when a
1637 function call contains a reference.
1639 2020-01-17 Mark Eggleston <mark.eggleston@codethink.com>
1642 * resolve.c (resolve_types): Declare boolean recursive and set with the
1643 value of the recursive attribute of namespace proc_name symbol
1644 structure if it exists. Call gfc_save_all if both flag_automatic and
1645 recursive are false or ns->save_all is true.
1647 2020-01-16 Tobias Burnus <tobias@codesourcery.com>
1650 * check.c (gfc_invalid_boz): Mention -fallow-invalid-boz
1651 in the error message.
1652 * gfortran.texi (BOZ literal constants): List another missing
1653 extension and refer to -fallow-invalid-boz.
1654 * lang.opt (fallow-invalid-boz): Also mention 'X' in the help text
1655 as it is not covered by the previous wording.
1656 * primary.c (match_boz_constant): Tweak wording such that it is
1657 clear how to fix the nonstandard use.
1659 2020-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
1662 * array.c (empty_constructor): New variable.
1663 (empty_ts): New variable.
1664 (expand_constructor): Save typespec in empty_ts.
1665 Unset empty_constructor if there is an element.
1666 (gfc_expand_constructor): Initialize empty_constructor
1667 and empty_ts. If there was no explicit constructor
1668 type and the constructor is empty, take the type from
1671 2020-01-09 Tobias Burnus <tobias@codesourcery.com>
1674 * array.c (gfc_set_array_spec): Fix shifting of codimensions
1675 when adding a dimension.
1676 * decl.c (merge_array_spec): Ditto. Fix using correct codimensions.
1678 2020-01-07 Jakub Jelinek <jakub@redhat.com>
1681 * trans-openmp.c (gfc_trans_omp_clauses): Check for REF_ARRAY type
1682 before testing u.ar.type == AR_FULL.
1684 2020-01-04 Tobias Burnus <tobias@codesourcery.com>
1687 * trans-expr.c (gfc_conv_procedure_call): Avoid copy-out for nonvariable
1688 arguments to contiguous dummy args. Avoid re-checking whether fsym is
1691 2020-01-03 Tobias Burnus <tobias@codesourcery.com>
1693 * trans-openmp.c (gfc_omp_check_optional_argument): Always return a
1694 Boolean expression; handle unallocated/disassociated actual arguments
1695 as absent if passed to nonallocatable/nonpointer dummy array arguments.
1696 (gfc_build_cond_assign): Change to assume a Boolean expr not a pointer.
1697 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Assign NULL to generated
1698 array-data variable if the argument is absent. Simplify code as
1699 'present' is now a Boolean expression.
1701 2020-01-03 Tobias Burnus <tobias@codesourcery.com>
1704 * primary.c (gfc_match_rvalue): Add some flavor checks
1705 gfc_matching_procptr_assignment.
1706 * resolve.c (resolve_assoc_var): Add more checks for invalid targets.
1708 2020-01-02 Tobias Burnus <tobias@codesourcery.com>
1711 * array.c (gfc_match_array_spec): Fix implied-type matching
1714 2020-01-01 Thomas Koenig <tkoenig@gcc.gnu.org>
1717 * dependency.c (gfc_dep_resolver): Handle REF_INQUIRY in switch
1720 2020-01-01 Jakub Jelinek <jakub@redhat.com>
1722 Update copyright years.
1724 * gfortranspec.c (lang_specific_driver): Update copyright notice
1726 * gfc-internals.texi: Bump @copying's copyright year.
1727 * gfortran.texi: Ditto.
1728 * intrinsic.texi: Ditto.
1729 * invoke.texi: Ditto.
1731 Copyright (C) 2020 Free Software Foundation, Inc.
1733 Copying and distribution of this file, with or without modification,
1734 are permitted in any medium without royalty provided the copyright
1735 notice and this notice are preserved.