1 2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org>
4 * resolve.c (is_dt_name): New function to compare symbol name against
6 (resolve_actual_arglist): Use it to find wrong code.
8 2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org>
11 * expr.c (gfc_check_vardef_context): Check for INTENT(IN) variable
12 in SELECT TYPE construct.
14 2019-06-13 Steven G. Kargl <kargl@gcc.gnu.org>
17 * dependency.c (gfc_dep_resolver): Re-arrange code to make the logic
18 a bit more transparent. Fix 2 nearby formatting issues.
20 2019-06-13 Jakub Jelinek <jakub@redhat.com>
22 * io.c (check_format): Use G_(...) instead of _(...) for error values,
23 append " in format string at %L" to all strings but unexpected_element,
24 use error as gfc_error formating string instead of
25 "%s in format string at %L". Formatting fixes.
27 2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org>
29 * gfortran.h (gfc_free_dt_list): Remove prototype.
31 2019-06-12 Steven G. Kargl <kargl@gcc.gnu.org>
34 * array.c (gfc_free_array_spec): When freeing an array-spec, avoid
35 an ICE for assumed-shape coarrays
37 2019-06-08 Paul Thomas <pault@gcc.gnu.org>
40 * trans-expr.c (pointer_assignment_is_proc_pointer) Remove as
41 it is very simple and only called from one place.
42 (gfc_trans_pointer_assignment): Rename non_proc_pointer_assign
43 as non_proc_ptr_assign. Assign to it directly, rather than call
44 to above, deleted function and use gfc_expr_attr instead of
45 only checking the reference chain.
47 2019-06-08 Thomas Koenig <tkoenig@gcc.gnu.org>
48 Tomáš Trnka <trnka@scm.com>
51 * trans-types.c (get_formal_from_actual_arglist): Unset typespec
52 flags which make no sense for procedures without explicit
55 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
58 * trans-expr.c (gfc_conv_subref_array_arg): If the size of the
59 expression can be determined to be one, treat it as contiguous.
60 Set likelyhood of presence of an actual argument according to
61 PRED_FORTRAN_ABSENT_DUMMY and likelyhood of being contiguous
62 according to PRED_FORTRAN_CONTIGUOUS.
64 2019-05-30 Thomas Koenig <tkoenig@gcc.gnu.org>
66 * gfc-internals.texi (Translating to GENERIC): New chapter.
68 2019-05-30 Marek Polacek <polacek@redhat.com>
70 * lang.opt (ftail-call-workaround): Fix a typo.
72 2019-05-30 Jakub Jelinek <jakub@redhat.com>
74 * lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths.
76 2019-05-29 Thomas Koenig <tkoenig@gcc.gnu.org>
79 * gfortran.h (gfc_has_dimen_vector_ref): Add prototype.
80 * trans.h (gfc_conv_subref_array_arg): Add argument check_contiguous.
81 (gfc_conv_is_contiguous_expr): Add prototype.
82 * frontend-passes.c (has_dimen_vector_ref): Remove prototype,
84 (gfc_has_dimen_vector_ref): New function name.
85 (matmul_temp_args): Use gfc_has_dimen_vector_ref.
86 (inline_matmul_assign): Likewise.
87 * trans-array.c (gfc_conv_array_parameter): Also check for absence
88 of a vector subscript before calling gfc_conv_subref_array_arg.
89 Pass additional argument to gfc_conv_subref_array_arg.
90 * trans-expr.c (gfc_conv_subref_array_arg): Add argument
91 check_contiguous. If that is true, check if the argument
92 is contiguous and do not repack in that case.
93 * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): Split
94 away most of the work into, and call
95 (gfc_conv_intrinsic_is_coniguous_expr): New function.
97 2019-05-29 Jakub Jelinek <jakub@redhat.com>
100 * lang.opt (fbroken-callers): Remove.
101 (ftail-call-workaround, ftail-call-workaround=): New options.
102 * gfortran.h (struct gfc_namespace): Add implicit_interface_calls.
103 * interface.c (gfc_procedure_use): Set implicit_interface_calls
104 for calls to implicit interface procedures.
105 * trans-decl.c (create_function_arglist): Use flag_tail_call_workaround
106 instead of flag_broken_callers. If it is not 2, also require
107 sym->ns->implicit_interface_calls.
108 * invoke.texi (fbroken-callers): Remove documentation.
109 (ftail-call-workaround, ftail-call-workaround=): Document.
111 2019-05-26 Thomas Koenig <tkoenig@gcc.gnu.org>
114 * trans-types.c (get_formal_from_actual_arglist): Set rank
115 and lower bound for assumed size arguments.
117 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
119 * trans-stmt.c (gfc_trans_critical): Use size_type_node for
120 gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls.
121 (gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all
124 2019-05-22 Jeff Law <law@redhat.com>
125 Mark Eggleston <mark.eggleston@codethink.com>
128 * gfortran.texi: Add Default widths for F, G and I format
129 descriptors to Extensions section.
130 * invoke.texi: Add -fdec-format-defaults
131 * io.c (check_format): Use default widths for i, f and g when
132 flag_dec_format_defaults is enabled.
133 * lang.opt: Add new option.
134 * options.c (set_dec_flags): Add SET_BITFLAG for
135 flag_dec_format_defaults.
137 2019-05-21 Janne Blomqvist <jb@gcc.gnu.org>
140 * intrinsic.texi (EXECUTE_COMMAND_LINE): Explain new
141 wait=.false. implementation.
143 2019-05-20 Mark Eggleston <markeggleston@codethink.com>
145 * gfortran.texi: Remove reference to the ASSIGN statement, capitalise
146 complex, state that padding is with spaces and modify the Hollerith
149 2019-05-19 Paul Thomas <pault@gcc.gnu.org>
152 * trans-stmt.c (trans_associate_var) Do not use the saved
153 descriptor if the expression is a COMPONENT_REF.
155 2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
158 * invoke.texi: Document -fbroken-callers.
159 * lang.opt: Add -fbroken-callers.
160 * trans-decl.c (create_function_arglist): Only set
161 DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set.
163 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
166 * f95-lang.c (gfc_attribute_table): Set min_len to -1 for "omp
168 * trans-decl.c (add_attributes_to_decl): Refer to OpenACC
169 'routine' clauses from "omp declare target" attribute.
171 2019-05-16 Martin Sebor <msebor@redhat.com>
173 * gfortranspec.c (append_arg): Spell out the word "argument."
175 2019-05-16 Jakub Jelinek <jakub@redhat.com>
178 * trans-decl.c (create_function_arglist): Set
179 DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if
182 2019-05-15 Janne Blomqvist <jb@gcc.gnu.org>
184 * parse.c (gfc_parse_file): Remove translation string markers.
186 2019-05-12 Janne Blomqvist <jb@gcc.gnu.org>
188 * dump-parse-tree.c (get_c_type_name): Use macros for complex type
190 * parse.c (gfc_parse_file): Define complex macros, add CPP support
191 when printing C prototypes.
193 2019-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
196 * interface.c (compare_actual_formal): Do not create a vtab if
197 the actual argument is assumed type.
199 2019-05-10 Paul Thomas <pault@gcc.gnu.org>
202 * trans-decl.c (convert_CFI_desc): Test that the dummy is
203 present before doing any of the conversions.
206 * decl.c (gfc_verify_c_interop_param): Restore the error for
207 charlen > 1 actual arguments passed to bind(C) procs.
208 Clean up trailing white space.
211 * trans-array.c (gfc_trans_create_temp_array): Set the 'span'
212 field to the element length for all types.
213 (gfc_conv_expr_descriptor): The force_no_tmp flag is used to
214 prevent temporary creation, especially for substrings.
215 * trans-decl.c (gfc_trans_deferred_vars): Rather than assert
216 that the backend decl for the string length is non-null, use it
217 as a condition before calling gfc_trans_vla_type_sizes.
218 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): 'force_no_tmp'
219 is set before calling gfc_conv_expr_descriptor.
220 * trans.c (get_array_span): Move the code for extracting 'span'
221 from gfc_build_array_ref to this function. This is specific to
222 descriptors that are component and indirect references.
223 * trans.h : Add the force_no_tmp flag bitfield to gfc_se.
225 2019-05-08 Thomas Koenig <tkoenig@gcc.gnu.org>
229 * dump-parse-tree.c: Include version.h.
230 (gfc_dump_external_c_prototypes): New function.
231 (get_c_type_name): Select "char" as a name for a simple char.
232 Adjust to handling external functions. Also handle complex.
233 (write_decl): Add argument bind_c. Adjust for dumping of external
235 (write_proc): Likewise.
236 (write_interop_decl): Add bind_c argument to call of write_proc.
237 * gfortran.h: Add prototype for gfc_dump_external_c_prototypes.
238 * lang.opt: Add -fc-prototypes-external flag.
239 * parse.c (gfc_parse_file): Move dumping of BIND(C) prototypes.
240 Call gfc_dump_external_c_prototypes if option is set.
241 * invoke.texi: Document -fc-prototypes-external.
243 2019-05-06 Steven G. Kargl <kargl@gcc.gnu.org>
246 * match.c (gfc_match_stopcode): Check F2008 condition on stop code.
248 2019-05-01 Andrew Benson <abensonca@gmail.com>
250 * module.c (write_module): Initialize module_column before writing
251 module to ensure line break occurs at correct column.
253 2019-05-01 Dominique d'Humieres <dominiq@gcc.gnu.org>
256 * match.c (gfc_match_parens): Change the location for missing ')'.
257 (gfc_match_if): Detect a missing '('. Remove the spurious named
258 constant error. Change the wording of some errors.
259 (gfc_match_else): Change the wording of an error.
260 (gfc_match_elseif): Detect a missing '('. Improve the matching
261 process to get a better syntax analysis.
263 2019-04-19 Steven G. Kargl <kargl@gcc.gnu.org>
266 * decl.c (in_module_or_interface): New function to check that the
267 current state is in a module, submodule, or interface.
268 (gfc_match_prefix): Use it.
270 2019-04-22 Paul Thomas <pault@gcc.gnu.org>
273 * resolve.c (find_array_spec): If this is a class expression
274 and the symbol and component array specs are the same, this is
276 *trans-intrinsic.c (gfc_conv_intrinsic_size): If a class symbol
277 argument, has no namespace, it has come from the interface
278 mapping and the _data component must be accessed directly.
280 2019-04-17 Thomas Schwinge <thomas@codesourcery.com>
283 * openmp.c (gfc_resolve_do_iterator): Handle sharing_clauses for
285 (gfc_resolve_oacc_blocks): Populate sharing_clauses with private
288 2019-04-14 Paul Thomas <pault@gcc.gnu.org>
291 * trans-decl.c (gfc_get_symbol_decl): Assumed shape and assumed
292 rank dummies of bind C procs require deferred initialization.
293 (convert_CFI_desc): New procedure to convert incoming CFI
294 descriptors to gfc types and back again.
295 (gfc_trans_deferred_vars): Call it.
296 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Null the CFI
297 descriptor pointer. Free the descriptor in all cases.
300 * expr.c (is_CFI_desc): New function.
301 (is_subref_array): Tidy up by referencing the symbol directly.
302 * gfortran.h : Prototype for is_CFI_desc.
303 * trans_array.c (get_CFI_desc): New function.
304 (gfc_get_array_span, gfc_conv_scalarized_array_ref,
305 gfc_conv_array_ref): Use it.
306 * trans.c (get_array_span): Extract the span from descriptors
307 that are indirect references.
310 * trans-decl.c (gfc_get_symbol_decl): Make sure that the se
311 expression is a pointer type before converting it to the symbol
313 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Eliminate
314 temporary creation for intent(in).
316 2019-04-13 Dominique d'Humieres <dominiq@gcc.gnu.org>
319 * module.c (gfc_use_module): use complete sentences.
321 2019-04-11 Thomas Koenig <tkoenig@gcc.gnu.org>
324 * frontend-passes.c (B_ERROR): Delete macro.
325 (C_ERROR): Delete macro.
326 (B_ERROR_1): New macro.
327 (C_ERROR_1): New macro.
328 (C_ERROR_2): New macro.
329 (inline_matmul_assign): Use new macros.
330 (call_external_blas): Likewise.
332 2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
335 * gfortran.h (gfc_component): Add finalized field.
336 * class.c (finalize_component): If the component is already
337 finalized, return early. Set component->finalized on exit.
339 2019-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
342 * resolve.c (resolve_global_procedure): If the global symbol is an
343 ENTRY, also look up its name among the entries.
345 2019-04-04 Harald Anlauf <anlauf@gmx.de>
348 * check.c (gfc_check_transfer): Reject procedures as actual
349 arguments for SOURCE and MOLD of TRANSFER intrinsic.
351 2019-04-03 Steven G. Kargl <kargl@gcc.gnu.org>
354 * expr.c (gfc_reduce_init_expr): Add extra check to avoid
355 dereferencing a null pointer.
357 2019-04-03 Dominique d'Humieres <dominiq@gcc.gnu.org>
360 * expr.c (comp_pointer): Remove redundant condition.
362 2019-03-31 Harald Anlauf <anlauf@gmx.de>
366 * trans-types.c (gfc_typenode_for_spec): Handle conversion for
368 * target-memory.c (gfc_element_size): Handle size determination
369 for procedure pointers.
371 2019-03-31 Thomas Koenig <tkoenig@gcc.gnu.org>
373 * dump-parse-tree.c (debug): Add for symbol_attribute *,
374 symbol_attribute and gfc_ref * arguments.
376 2019-03-30 Paul Thomas <pault@gcc.gnu.org>
379 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Use the formal
380 argument attributes rather than those of the actual argument.
383 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Call
384 'set_dtype_for_unallocated' for any type of arrayspec.
386 2019-03-27 Janus Weil <janus@gcc.gnu.org>
389 * expr.c (gfc_check_assign_symbol): Reject internal and dummy procedures
390 in procedure pointer initialization.
392 2019-03-27 Paul Thomas <pault@gcc.gnu.org>
395 * expr.c (is_subref_array): Permit substrings to be detected
397 * trans-array.c (get_array_ctor_var_strlen): Obtain the length
398 of deferred length strings. Handle substrings with a NULL end
400 (trans_array_constructor): Remove an unnecessary blank line.
401 (gfc_conv_scalarized_array_ref): Skip to label 'done' if 'decl'
403 (get_array_charlen): If the expression is an array, convert the
404 first element of the constructor and use its string length. Get
405 a new charlen if necessary.
406 (gfc_conv_expr_descriptor): Call 'get_array_charlen' for array
407 constructor expressions. If the ss_info string length is
408 available, use that to set the span of character arrays.
409 * trans-expr.c (gfc_get_expr_charlen): Handle substrings
410 * trans-stmt.c (trans_associate_var): Set the pointer array
411 flag for variable targets and constant array constructors. Take
412 care not to reset the string length or the span in the case of
413 expressions that are not converted as direct by reference.
415 2019-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
417 * intrinsic.texi (MINLOC): Fix typo in BACK argument documentation.
420 2019-03-24 Thomas Koenig <tkoenig@gcc.gnu.org>
423 * interface.c (compare_actual_formal): Change errors about
424 missing or extra to gfc_error_now to make sure they are issued.
425 Change "spec" to "specifier" in message.
426 * resolve.c (resolve_global_procedure): Also check for mismatching
427 interface with global symbols if the namespace has already been
430 2019-03-21 Thomas Schwinge <thomas@codesourcery.com>
433 * openmp.c (gfc_match_oacc_routine): Set the level of parallelism
435 (gfc_resolve_oacc_routines): Call gfc_add_omp_declare_target.
438 * gfortran.h (gfc_oacc_routine_name): Add loc member.
439 (gfc_resolve_oacc_routines): Declare.
440 * openmp.c (gfc_match_oacc_routine): Move some error checking
442 (gfc_resolve_oacc_routines): ... this new function.
443 * resolve.c (resolve_codes): Call it.
446 * openmp.c (gfc_match_oacc_routine): Clarify.
449 * module.c (verify_OACC_ROUTINE_LOP_NONE): New function.
450 (enum ab_attribute): Add AB_OACC_ROUTINE_LOP_GANG,
451 AB_OACC_ROUTINE_LOP_WORKER, AB_OACC_ROUTINE_LOP_VECTOR,
452 AB_OACC_ROUTINE_LOP_SEQ.
453 (attr_bits): Add these.
454 (mio_symbol_attribute): Handle these.
456 2019-03-20 Janus Weil <janus@gcc.gnu.org>
459 * symbol.c (check_conflict): ABSTRACT attribute conflicts with
462 2019-03-18 Thomas Koenig <tkoeng@gcc.gnu.org>
465 * iresolve.c: Include trans.h.
466 (gfc_resolve_fe_runtine_error): Set backend_decl on
469 2019-03-17 Thomas Koenig <tkoenig@gcc.gnu.org>
472 * gfortran.h (expr_t): Add EXPR_UNKNOWN.
473 * expr.c (gfc_copy_expr): Add EXPR_UNKNOWN to switch statement.
474 (gfc_simplify_expr): Likewise.
475 * module.c (mio_expr): Likewise.
476 * resovle.c (extract_compcall_passed_object): Issue error on
478 (check_typebound_baseobject): Issue error on wrong type.
479 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Add
480 EXPR_UNKNOWN to switch statement.
482 2019-03-16 Jakub Jelinek <jakub@redhat.com>
485 * scanner.c (load_line): Remove linenum and current_line static
486 variables, add warned_tabs automatic variable. Use current_file->line
487 instead of current_line and warned_tabs boolean to avoid diagnosing
488 tabs multiple times on the same line.
490 2019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org>
493 * symbol.c (gfc_add_subroutine): If we are encountering a
494 subrtoutine within a BLOCK DATA and the name starts with an
495 underscore, do not check.
497 2019-03-15 Harald Anlauf <anlauf@gmx.de>
500 * expr.c (gfc_check_pointer_assign): Correct and improve error
501 messages for invalid pointer assignments.
503 2019-03-14 Thomas Koenig <tkoenig@gcc.gnu.org>
505 * gfortran.texi: Document Q edit descriptor under
506 "Extensions not implemented in GNU Fortran".
508 2019-03-13 Harald Anlauf <anlauf@gmx.de>
511 * trans-expr.c (gfc_trans_pointer_assignment): Move check for same
512 string length so that we do not get false errors for deferred
515 2019-03-13 Janus Weil <janus@gcc.gnu.org>
518 * decl.c (gfc_match_formal_arglist): Reject empty type parameter lists.
519 (gfc_match_derived_decl): Mark as PDT only if type parameter list was
520 matched successfully.
522 2019-03-13 Thomas Koenig <tkoenig@gcc.gnu.org>
527 * gfortran.h (gfc_symbol): Add bind_c component.
528 (gfc_get_gsymbol): Add argument bind_c.
529 * decl.c (add_global_entry): Add bind_c argument to
531 * parse.c (parse_block_data): Likewise.
532 (parse_module): Likewise.
533 (add_global_procedure): Likewise.
534 (add_global_program): Likewise.
535 * resolve.c (resolve_common_blocks): Likewise.
536 (resolve_global_procedure): Likewise.
537 (gfc_verify_binding_labels): Likewise.
538 * symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c
540 * trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument
542 (gfc_get_extern_function_decl): If the sym has a binding label
543 and it cannot be found in the global symbol tabel, it is the wrong
546 2019-03-12 Thomas Koenig <tkoenig@gcc.gnu.org>
549 * match.c (gfc_match_type_spec): Remove call to
550 gfc_resolve_expr for character length.
552 2019-03-12 Martin Liska <mliska@suse.cz>
554 * decl.c (add_init_expr_to_sym): Replace usage of 'can't'
556 (variable_decl): Likewise.
557 (cray_pointer_decl): Likewise.
558 (match_binding_attributes): Likewise.
559 * f95-lang.c (gfc_init): Likewise.
560 * interface.c (gfc_check_typebound_override): Likewise.
561 * intrinsic.c (make_generic): Likewise.
562 * module.c (dump_module): Likewise.
563 (gfc_use_module): Likewise.
564 * primary.c (gfc_convert_to_structure_constructor): Likewise.
565 * resolve.c (resolve_entries): Likewise.
566 (check_generic_tbp_ambiguity): Likewise.
567 (get_checked_tb_operator_target): Likewise.
568 * scanner.c (load_file): Likewise.
569 * trans-expr.c (gfc_conv_intrinsic_to_class): Likewise.
571 2019-03-12 Paul Thomas <pault@gcc.gnu.org>
575 * trans-expr.c (set_dtype_for_unallocated): New function.
576 (gfc_conv_gfc_desc_to_cfi_desc): Call it for allocatable and
578 (gfc_conv_procedure_call): Likewise. Also, set the ubound of
579 the final dimension to -1 for assumed rank formal args that are
580 associated with assumed size arrays.
581 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Return -1 for
582 the final dimension of assumed rank entities that are argument
583 associated with assumed size arrays.
584 (gfc_conv_intrinsic_shape): Likewise return -1 for the final
585 dimension of the shape intrinsic.
587 2019-03-11 Jakub Jelinek <jakub@redhat.com>
590 * trans-openmp.c (gfc_omp_clause_default_ctor): Set TREE_NO_WARNING
591 on decl if adding COND_EXPR for allocatable.
592 (gfc_omp_clause_copy_ctor): Set TREE_NO_WARNING on dest.
594 2019-03-11 Martin Liska <mliska@suse.cz>
596 * decl.c (match_record_decl): Wrap an option name
597 in a string format message and fix GNU coding style.
598 (gfc_match_pointer): Likewise.
599 * expr.c (find_array_section): Likewise.
600 * intrinsic.c (gfc_is_intrinsic): Likewise.
601 * options.c (gfc_post_options): Likewise.
602 * primary.c (match_integer_constant): Likewise.
603 * trans-common.c (translate_common): Likewise.
605 2019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org>
608 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
609 Return false if a scalar tempoary is needed.
610 (gfc_walk_variable_expr): Fix up class refs.
612 2019-03-10 Thomas Koenig <tkoenig@gcc.gnu.org>
615 * symbol.c (gfc_add_procedure): Only throw an error if the
616 procedure has not been declared either PUBLIC or PRIVATE.
618 2019-03-09 Thomas Koenig <tkoenig@gcc.gnu.org>
621 * trans-types.c (gfc_typenode_for_spec) Set ts->is_c_interop of
623 (create_fn_spec): Mark argument as escaping if ts->is_c_interop is set.
625 2019-03-09 Janus Weil <janus@gcc.gnu.org>
628 * expr.c (gfc_check_assign_symbol): Deal with procedure pointers to
629 pointer-valued functions.
631 2019-03-09 Thomas König <tkoenig@gcc.gnu.org>
634 * decl.c (add_init_expr_to_sym): Add shape if init has none. Add
635 asserts that it has to be an EXPR_ARRAY in this case.
637 2019-03-08 Jakub Jelinek <jakub@redhat.com>
640 * arith.c (gfc_complex2complex): Avoid two spaces in the middle of
642 * resolve.c (resolve_allocate_expr): Likewise.
644 2019-03-06 Harald Anlauf <anlauf@gmx.de>
647 * expr.c (simplify_const_ref): Avoid null pointer dereference.
649 2019-03-03 Harald Anlauf <anlauf@gmx.de>
650 Steven G. Kargl <kargl@gcc.gnu.org>
653 * symbol.c (check_conflict): Check for valid procedure name
654 passed to error reporting routine.
656 2019-03-03 Thomas Koenig <tkoenig@gcc.gnu.org>
659 * resolve.c (resolve_allocate_expr): Add some tests for coarrays.
661 2019-03-02 Harald Anlauf <anlauf@gmx.de>
664 * check.c (gfc_calculate_transfer_sizes): Correct checks for cases
665 where storage size of elements of MOLD is 0.
667 2019-02-28 Thomas Schwinge <thomas@codesourcery.com>
668 Cesar Philippidis <cesar@codesourcery.com>
672 * openmp.c (gfc_match_oacc_routine): Handle repeated use of the
673 Fortran OpenACC 'routine' directive.
676 * gfortran.h (enum oacc_routine_lop): Add OACC_ROUTINE_LOP_ERROR.
677 * openmp.c (gfc_oacc_routine_lop, gfc_match_oacc_routine): Use it.
678 * trans-decl.c (add_attributes_to_decl): Likewise.
682 * openmp.c (gfc_match_oacc_routine): Accept intrinsic symbols.
684 2019-02-26 Harald Anlauf <anlauf@gmx.de>
687 * check.c (gfc_calculate_transfer_sizes): Handle cases where
688 storage size of elements of MOLD is 0.
690 2019-02-26 Thomas Koenig <tkoenig@gcc.gnu.org>
693 * trans-types.c (get_formal_from_actual_arglist): If
694 the actual arglist has no expression, the corresponding
695 formal arglist is an alternate return.
697 2019-02-26 Jakub Jelinek <jakub@redhat.com>
700 * trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead
701 of duplicating the initializer possibly many times.
703 2019-02-24 Thomas Koenig <tkoenig@gcc.gnu.org>
706 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold
707 to arguments. If we are dealing with a MOLD, call
708 gfc_expr_to_initialize().
709 * trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true
710 to gfc_find_and_cut_at_last_class_ref.
711 * trans.h (gfc_find_and_cut_at_last_class_ref): Add optional
712 argument is_mold with default false.
714 2019-02-24 Harald Anlauf <anlauf@gmx.de>
718 * target-memory.c (gfc_element_size): Return false if element size
719 cannot be determined; element size is returned separately.
720 (gfc_target_expr_size): Return false if expression size cannot be
721 determined; expression size is returned separately.
722 * target-memory.h: Adjust prototypes.
723 * check.c (gfc_calculate_transfer_sizes): Adjust references to
724 gfc_target_expr_size, gfc_element_size.
725 * arith.c (hollerith2representation): Likewise.
726 * class.c (find_intrinsic_vtab): Likewise.
727 * simplify.c (gfc_simplify_sizeof): Likewise.
729 2019-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
732 * trans-io.c (transfer_expr): Do not return if there are no
733 components to the derived type or class.
735 2019-02-23 Paul Thomas <pault@gcc.gnu.org>
738 * resolve.c (deferred_op_assign): Return if the lhs expression
739 has the pointer attribute.
740 * trans-expr.c (gfc_trans_assignment_1): Do not fix the string
741 length if the lhs expression has the pointer attribute.
743 2019-02-23 Paul Thomas <pault@gcc.gnu.org>
747 * decl.c (gfc_verify_c_interop_param): Restriction on string
748 length being one is lifted for F2018.
749 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar
750 characters with intent in, make a temporary and copy the result
751 of the expression evaluation into it.
752 (gfc_conv_procedure_call): Set a flag for character formal args
753 having a character length that is not unity. If the procedure
754 is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case.
755 Also, extend bind C calls to unconditionally convert both
756 pointers and allocatable expressions.
758 2019-02-23 David Malcolm <dmalcolm@redhat.com>
759 Jakub Jelinek <jakub@redhat.com>
762 * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
763 mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
764 (norm2_add_squared): Likewise. Use mp_exp_t rather than mpfr_exp_t.
766 2019-02-22 Harald Anlauf <anlauf@gmx.de>
769 * io.c (gfc_match_open): Fix logic in checks of OPEN statement
770 when NEWUNIT= is specified.
772 2019-02-22 Steven G. Kargl <kargl@gcc.gnu.org>
775 * gfortran.texi: Fix documentation to match the implementation.
777 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
778 Cesar Philippidis <cesar@codesourcery.com>
781 * gfortran.h (oacc_routine_lop): New enum.
782 (symbol_attribute): Use it.
783 * openmp.c (gfc_oacc_routine_dims): Replace with...
784 (gfc_oacc_routine_lop): ... this new function.
785 (gfc_match_oacc_routine): Adjust.
786 * trans-decl.c (add_attributes_to_decl): Likewise.
788 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
790 * openmp.c (gfc_match_oacc_declare): Revert earlier changes.
792 2019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
794 * dump-parse-tree.c (debug): Implement for gfc_expr *,
795 gfc_typespec *, gfc_typespec and gfc_symbol *.
797 2019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
800 * class.c (gfc_get_len_component): Add argument k for kind.
801 If the kind of the resulting expression is not equal to k,
803 * gfortran.h (gfc_len_component): Adjust prototype.
804 * simplify.c (gfc_simplify_len): Pass kind to
805 gfc_get_len_component.
807 2019-02-20 Martin Liska <mliska@suse.cz>
809 * gfortran.texi: Change singular to plural.
811 2019-02-20 Martin Liska <mliska@suse.cz>
813 * gfortran.texi: Document Fortran header directive.
815 2019-02-19 Thomas Koenig <tkoenig@gcc.gnu.org>
818 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): If the dummy
819 argument is contiguous and the actual argument may not be,
820 use gfc_conv_subref_array_arg.
822 2019-02-19 Thomas Schwinge <thomas@codesourcery.com>
825 * openmp.c (gfc_match_omp_clauses): Add representation of wait clause
826 without argument as 'wait (GOMP_ASYNC_NOVAL)'.
828 2019-02-18 Thomas Koenig <tkoenig@gcc.gnu.org>
831 * trans-decl.c (gfc_get_extern_function_decl): Add argument
832 actual_args and pass it through to gfc_get_function_type.
833 * trans-expr.c (conv_function_val): Add argument actual_args
834 and pass it on to gfc_get_extern_function_decl.
835 (conv_procedure_call): Pass actual arguments to conv_function_val.
836 * trans-types.c (get_formal_from_actual_arglist): New function.
837 (gfc_get_function_type): Add argument actual_args. Generate
838 formal args from actual args if necessary.
839 * trans-types.h (gfc_get_function_type): Add optional argument.
840 * trans.h (gfc_get_extern_function_decl): Add optional argument.
842 2019-02-18 Martin Liska <mliska@suse.cz>
844 * decl.c (gfc_match_gcc_builtin): Add support for filtering
845 of builtin directive based on multilib ABI name.
847 2019-02-17 Harald Anlauf <anlauf@gmx.de>
850 * resolve.c (resolve_common_blocks,resolve_common_vars): Move
851 check for obsolent COMMON feature in F2018 to better place.
853 2019-02-17 Harald Anlauf <anlauf@gmx.de>
856 * decl.c (gfc_set_constant_character_len): Clear original string
857 representation after padding has been performed to target length.
859 2019-02-16 Jakub Jelinek <jakub@redhat.com>
862 * simplify.c (simplify_transformation_to_array): Run post_op
863 immediately after processing corresponding row, rather than at the
865 (norm2_scale): New variable.
866 (add_squared): Rename to ...
867 (norm2_add_squared): ... this. Scale down operand and/or result
869 (do_sqrt): Rename to ...
870 (norm2_do_sqrt): ... this. Handle the result == e case. Scale up
871 result and clear norm2_scale.
872 (gfc_simplify_norm2): Clear norm2_scale. Change add_squared to
873 norm2_add_squared and &do_sqrt to norm2_do_sqrt. Scale up result
874 and clear norm2_scale again.
876 2019-02-17 Thomas Koenig <tkoenig@gcc.gnu.org>
879 * trans-decl.c (generate_coarray_sym_init): For an array
880 constructor in a DATA statement of a coarray variable, set the
881 rank to 1 to avoid confusion later on. If the constructor
882 contains only one value, use that for initiailizig.
884 2019-02-14 Janne Blomqvist <jb@gcc.gnu.org>
887 * gfortran.h (gfc_option_t): Make flag_init_integer_value a long.
888 * options.c (gfc_handle_option): Use strtol instead of atoi.
889 * invoke.texi: Document -finit-integer behavior in more detail.
891 2019-02-14 Harald Anlauf <anlauf@gmx.de>
894 * symbol.c: Move check for labeled DO statement from
895 gfc_define_st_label to gfc_reference_st_label.
897 2019-02-14 Cesar Philippidis <cesar@codesourcery.com>
900 * openmp.c (resolve_oacc_nested_loops): Error on do concurrent
903 2019-02-13 Martin Liska <mliska@suse.cz>
906 * resolve.c (resolve_operator): Initialize 't' right
907 after function entry. Skip switch (e->value.op.op)
908 for -fdec operands that become function calls.
910 2019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org>
913 * expr.c (gfc_check_assign): Add argument is_init_expr. If we are
914 looking at an init expression, issue error if the target is not a
915 TARGET and we are not looking at a procedure pointer.
916 * gfortran.h (gfc_check_assign): Add optional argument
919 2019-02-09 Harald Anlauf <anlauf@gmx.de>
922 * resolve.c (gfc_resolve_substring_charlen): Check substring
923 length for constantness prior to general calculation of length.
925 2019-02-09 Paul Thomas <pault@gcc.gnu.org>
928 * trans-array.c (gfc_trans_create_temp_array): Set the 'span'
929 field for derived types.
931 2019-02-04 Harald Anlauf <anlauf@gmx.de>
934 * decl.c (add_init_expr_to_sym): Copy length of string initializer
937 2019-02-04 Martin Liska <mliska@suse.cz>
940 * resolve.c (resolve_ref): Remove breakout variable as
941 we need to prevent prev = &(*prev)->next to happen
944 2019-02-04 Martin Liska <mliska@suse.cz>
947 * scanner.c (load_file): Report error for -fpre-include
950 2019-02-02 Dominique d'Humieres <dominiq@gcc.gnu.org>
953 * invoke.texi: Document the behavior of repeated -ffpe-trap
956 2019-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
959 * arith.c (gfc_int2int): Do not warn if src->do_not_warn is set.
960 * gfortran.h (gfc_expr): Add flag do_not_warn.
961 * intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if
962 no warning is desired.
964 2019-02-02 Paul Thomas <pault@gcc.gnu.org>
967 * trans-expr.c (gfc_conv_procedure_call): For derived entities,
968 passed in parentheses to class formals, invert the order of
969 copying allocatable components to taking the _data of the
972 2019-02-02 Paul Thomas <pault@gcc.gnu.org>
975 * trans-array.c (gfc_array_init_size): Add element_size to the
977 (gfc_array_allocate): Remove the recalculation of the size of
978 the element and use element_size from the call to the above.
979 Unconditionally set the span field of the descriptor.
981 2019-02-02 Paul Thomas <pault@gcc.gnu.org>
984 * expr.c (is_subref_array): Move the check for class pointer
985 dummy arrays to after the reference check. If we haven't seen
986 an array reference other than an element and a component is not
987 class or derived, return false.
989 2019-02-01 Jakub Jelinek <jakub@redhat.com>
993 * trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs
994 if sym->ns->construct_entities rather than if
995 sym->ns->parent->code->op == EXEC_BLOCK.
997 2019-01-31 Thomas Koenig <tkoenig@gcc.gnu.org>
1000 * resolve.c (resolve_component): If the reference is a BT_CLASS,
1001 copy the contiguous attribute from the reference and use the
1004 2019-01-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1007 * io.c (match_io): Add check for comma after '*' without subsequent
1010 2019-01-30 Dominique d'Humieres <dominiq@gcc.gnu.org>
1013 * invoke.texi: Document the promotion of double precision
1016 2019-01-29 Thomas Koenig <tkoenig@gcc.gnu.org>
1019 * interface.c (gfc_compare_types): If a derived type and an
1020 integer both have a derived type, and they are identical,
1021 this is a C binding type and compares equal.
1023 2019-01-26 Harald Anlauf <anlauf@gmx.de>
1026 * expr.c (check_inquiry): Add list of inquiry functions allowed in
1027 constant expressions for F2008+.
1029 2019-01-25 Steven G. Kargl <kargl@gcc.gnu.org>
1032 * decl.c (gfc_match_subroutine): Check for conflict between BIND(C)
1033 and alternative return.
1035 2019-01-24 Paul Thomas <pault@gcc.gnu.org>
1038 * trans-array.c (gfc_conv_descriptor_elem_len): New function.
1039 * trans-array.h : Add prototype for above.
1040 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Take account of
1041 assumed rank arrays being flagged by rank = -1 in expressions.
1042 Intent in arrays need a pointer to a copy of the data to be
1043 assigned to the descriptor passed for conversion. This should
1044 then be freed, together with the CFI descriptor on return from
1047 2019-01-22 Harald Anlauf <anlauf@gmx.de>
1050 * trans-expr.c (gfc_conv_power_op): Handle cases of (2**e) ** integer
1051 and (- 2**e) ** integer.
1053 2019-01-19 Dominique d'Humieres <dominiq@gcc.gnu.org>
1056 * resolve.c (resolve_types): Add !flag_automatic.
1057 * symbol.c (gfc_add_save): Silence warnings.
1059 2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
1062 * io.c (match_io_element): input-item cannot be an external function.
1064 2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1065 Paul Thomas <pault@gcc.gnu.org>
1068 * trans-expr.c (gfc_conv_procedure_call): Call
1069 gfc_conv_subref_array_arg if the formal arg is contiguous
1070 and the actual arg may not be.
1072 2019-01-17 Thomas Koenig <tkoenig@gcc.gnu.org>
1075 * resolve.c (resolve_ref): Fix logic for removal of
1078 2019-01-19 Jakub Jelinek <jakub@redhat.com>
1081 * trans-decl.c (gfc_get_symbol_decl): Don't add length to function
1082 or parent function if it has been added there already.
1084 2019-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
1087 * resolve.c (resolve_array_ref): Add equal_length argument; set it
1088 if the length of the substring equals that of the orignal
1090 (resolve_ref): Remove the substring if it is equal in length to
1091 the original variable, unless it is an EXPR_SUBSTRING).
1093 2019-01-15 Steven G. Kargl <kargl@gcc.gnu.org>
1096 * resolve.c (resolve_symbol): Host associated varaibles can appear
1097 in the specification statement of a RESULT array.
1099 2019-01-15 Paul Thomas <pault@gcc.gnu.org>
1101 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs
1102 that are indirect references; ie. dummy arguments.
1104 2019-01-13 Dominique d'Humieres <dominiq@gcc.gnu.org>
1107 * gfortran.texi: Replace @xref with @ref and adjust the sentence.
1109 2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
1112 * trans-array.c (gfc_conv_array_parameter): Do not pack/unpack
1113 functions with contiguous results.
1115 2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
1118 * trans-array.c (gfc_conv_array_parameter): Remove TODO. Do not
1119 pack/unpack results of functions which return an explicit-shaped
1120 or allocatable array.
1122 2019-01-12 Steven G. Kargl <kargl@gcc.gnu.org>
1125 * resolve.c (gfc_verify_binding_labels): Break if-elseif-elseif
1126 structure into independent if's with a return to simplify logic.
1127 Avoid a check for ENTRY name with bind(c).
1129 2019-01-12 Paul Thomas <pault@gcc.gnu.org>
1131 * gfortran.texi: Add description in sections on TS 29113 and
1132 further interoperability with C.
1133 * trans-array.c (gfc_conv_descriptor_attribute): New function.
1134 (gfc_get_dataptr_offset): Remove static function attribute.
1135 * trans-array.h: Add prototypes for above functions.
1136 * trans-decl.c: Add declarations for the library functions
1137 cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc.
1138 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function.
1139 (gfc_conv_procedure_call): Call it for scalar and array actual
1140 arguments, when the formal arguments are bind_c with assumed
1141 shape or assumed rank.
1142 * trans.h: External declarations for gfor_fndecl_cfi_to_gfc
1143 and gfor_fndecl_gfc_to_cfi.
1145 2019-01-11 Steven G. Kargl <kargl@gcc.gnu.org>
1148 * decl.c (gfc_match_entry): Check for F2018:C1546. Fix nearby
1151 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1155 * trans-openmp.c: Include attribs.h.
1156 (gfc_walk_alloc_comps, gfc_omp_clause_linear_ctor): Handle
1157 VAR_DECL max bound with "omp dummy var" attribute like NULL or
1158 error_mark_node - recompute number of elts independently.
1160 2019-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
1163 * trans-array.c (gfc_conv_parameter_array): Temporary
1164 arrays generated for expressions do not need to be repacked.
1166 2019-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
1169 * decl.c (top_var_list): Set locus of expr.
1170 (gfc_match_data): Detect pointer on non-rightmost part-refs.
1172 2019-01-09 Steven G. Kargl <kargl@gcc.gnu.org>
1175 * resolve.c (is_illegal_recursion): Remove an assert().
1177 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1180 * expr.c: Change "can not" to "cannot".
1182 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1185 * class.c: Mechanically replace "can not" with "cannot".
1188 * gfc-internals.texi: Likewise.
1189 * intrinsic.texi: Likewise.
1190 * invoke.texi: Likewise.
1192 * match.c: Likewise.
1193 * parse.c: Likewise.
1194 * primary.c: Likewise.
1195 * resolve.c: Likewise.
1196 * symbol.c: Likewise.
1197 * trans-array.c: Likewise.
1198 * trans-decl.c: Likewise.
1199 * trans-intrinsic.c: Likewise.
1200 * trans-stmt.c: Likewise.
1202 2019-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
1205 * simplify.c (gfc_simplify_spread): Also simplify if the
1206 type of source is an EXPR_STRUCTURE.
1208 2019-01-08 Janus Weil <janus@gcc.gnu.org>
1211 * class.c (gfc_find_vtab): For polymorphic typespecs, the components of
1212 the class container may not be available (in case of invalid code).
1214 2019-01-08 Richard Biener <rguenther@suse.de>
1217 * trans-expr.c (gfc_conv_initializer): For ISOCBINDING_NULL_*
1218 directly build the expected GENERIC tree.
1220 2019-01-07 Thomas Koenig <tkoenig@gcc.gnu.org>
1221 Harald Anlauf <anlauf@gmx.de>
1222 Tobias Burnus <burnus@gcc.gnu.org>
1225 * check.c (gfc_check_is_contiguous): New function.
1226 * expr.c (gfc_is_not_contiguous): New function.
1227 * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_CONTIGUOUS.
1228 Add prototype for gfc_is_not_contiguous.
1229 * intrinsic.c (do_ts29113_check): Add GFC_ISYM_IS_CONTIGUOUS.
1230 (add_function): Add is_contiguous.
1231 * intrinsic.h: Add prototypes for gfc_check_is_contiguous,
1232 gfc_simplify_is_contiguous and gfc_resolve_is_contiguous.
1233 * intrinsic.texi: Add IS_CONTIGUOUS.
1234 * iresolve.c (gfc_resolve_is_contiguous): New function.
1235 * simplify.c (gfc_simplify_is_contiguous): New function.
1236 * trans-decl.c (gfor_fncecl_is_contiguous0): New variable.
1237 (gfc_build_intrinsic_function_decl): Add it.
1238 * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): New
1240 (gfc_conv_intrinsic_function): Handle GFC_ISYM_IS_CONTIGUOUS.
1242 2019-01-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1245 * gfortran.h: Add macro gfc_real_4_kind
1246 * simplify.c (simplify_min_max): Special case for the types of
1247 AMAX0, AMIN0, MAX1 and MIN1, which actually change the types of
1250 2019-01-05 Janus Weil <janus@gcc.gnu.org>
1253 * class.c (gfc_find_derived_vtab): Mark the _final component as
1255 (find_intrinsic_vtab): Ditto. Also add an extra check to avoid
1256 dereferencing a null pointer and adjust indentation.
1257 * resolve.c (resolve_fl_variable): Add extra check to avoid
1258 dereferencing a null pointer. Move variable declarations to local scope.
1259 (resolve_fl_procedure): Add extra check to avoid dereferencing a null
1261 * symbol.c (check_conflict): Suppress errors for artificial symbols.
1263 2019-01-01 Steven G. Kargl <kargl@gcc.gnu.org>
1265 * parse.c (decode_statement): Suppress "Unclassifiable statement"
1266 error if previous error messages were emittes.
1268 2019-01-01 Thomas Koenig <tkoenig@gcc.gnu.org>
1271 * primary.c (gfc_convert_to_structure_constructor): If a character
1272 in a constructor is too long, add a warning with
1273 -Wcharacter-truncation.
1275 2019-01-01 Jakub Jelinek <jakub@redhat.com>
1277 Update copyright years.
1279 * gfortranspec.c (lang_specific_driver): Update copyright notice
1281 * gfc-internals.texi: Bump @copying's copyright year.
1282 * gfortran.texi: Ditto.
1283 * intrinsic.texi: Ditto.
1284 * invoke.texi: Ditto.
1286 Copyright (C) 2019 Free Software Foundation, Inc.
1288 Copying and distribution of this file, with or without modification,
1289 are permitted in any medium without royalty provided the copyright
1290 notice and this notice are preserved.