1 2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org>
4 * decl.c (merge_array_spec): Limit the merging to maximum allowed
5 dimensions, and issue error message if limit is exceeded.
7 2018-03-13 Steven G. Kargl <kargl@gcc.gnu.org>
9 * check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8).
10 * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill.
11 (add_subroutines): Remove reference to gfc_resolve_kill_sub.
12 * intrinsic.texi: Update documentation.
13 * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove.
14 * trans-decl.c (gfc_build_intrinsic_function_decls): Add
15 gfor_fndecl_kill and gfor_fndecl_kill_sub
16 * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new
18 (gfc_conv_intrinsic_function): Use conv_intrinsic_kill.
19 (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub.
20 * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub.
22 2018-03-11 Paul Thomas <pault@gcc.gnu.org>
25 * trans-array.c (structure_alloc_comps): Make sure that the
26 vptr is copied and that the unlimited polymorphic _len is used
27 to compute the size to be allocated.
28 * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the
29 unlimited polymorphic _len for the offset to the element.
30 (gfc_copy_class_to_class): Set the new 'unlimited' argument.
31 * trans.h : Add the boolean 'unlimited' to the prototype.
33 2018-03-11 Steven G. Kargl <kargl@gcc.gnu.org>
36 * resolve.c (resolve_fl_procedure): Enforce F2018:C15100.
38 2018-03-11 Steven G. Kargl <kargls@gcc.gnu.org>
40 * check.c (gfc_check_kill): Check pid and sig are scalar.
41 (gfc_check_kill_sub): Restrict kind to 4 and 8.
42 * intrinsic.c (add_function): Sort keyword list. Add pid and sig
43 keywords for KILL. Remove redundant *back="back" in favor of the
45 (add_subroutines): Sort keyword list. Add pid and sig keywords
47 * intrinsic.texi: Fix documentation to consistently use pid and sig.
48 * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8. Choose the
50 (gfc_resolve_rename_sub): Add comment.
52 2018-03-11 Thomas Koenig <tkoenig@gcc.gnu.org>
55 * simplify.c (simplify_transformation): Return default result for
57 (gfc_simplify_all): Remove special-case handling for zerosize.
58 (gfc_simplify_any): Likewise.
59 (gfc_simplify_count): Likewise.
60 (gfc_simplify_iall): Likewise.
61 (gfc_simplify_iany): Likewise.
62 (gfc_simplify_iparity): Likewise.
63 (gfc_simplify_minval): Likewise.
64 (gfc_simplify_maxval): Likewise.
65 (gfc_simplify_norm2): Likewise.
66 (gfc_simplify_product): Likewise.
67 (gfc_simplify_sum): Likewise.
69 2018-03-10 Steven G. Kargl <kargl@gcc.gnu.org>
72 * arith.c (check_result, eval_intrinsic): If result overflows, pass
73 the expression up the chain instead of a NULL pointer.
75 2018-03-07 Steven G. Kargl <kargl@gcc.gnu.org>
79 * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
81 2017-03-06 Thomas Koenig <tkoenig@gcc.gnu.org>
85 * expr.c (simplify_parameter_variable): If p is a size zero array
86 and not an ARRAY_EXPR insert an empty array constructor and
88 * gfortran.h: Add prototype for gfc_is_size_zero_array.
89 * simplify.c (is_size_zero_array): Make non-static and rename into
90 (gfc_is_size_zero_array): Check for parameter arrays of zero
91 size by comparing shape and absence of constructor.
92 (gfc_simplify_all): Use gfc_is_size_zero_array instead of
94 (gfc_simplify_count): Likewise.
95 (gfc_simplify_iall): Likewise.
96 (gfc_simplify_iany): Likewise.
97 (gfc_simplify_iparity): Likewise.
98 (gfc_simplify_minval): Likewise.
99 (gfc_simplify_maxval): Likewise.
100 (gfc_simplify_product): Likewise.
101 (gfc_simplify_sum): Likewise.
103 2018-03-06 Steven G. Kargl <kargl@gcc.gnu.org>
106 * primary.c (match_sym_complex_part): Give the matcher for an implied
107 do-loop a chance to run.
109 2018-03-03 Harald Anlauf <anlauf@gmx.de>
112 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
113 dereference NULL pointer.
115 2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org>
118 * simplify.c (is_size_zero_array): New function to check for size
120 (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
121 gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
122 gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
123 gfc_simplify_product, gfc_simplify_sum): Use it, and implement
124 requirements from F2018.
126 2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org>
129 * simplify.c (gfc_simplify_transfer): Resolve mold.
131 2018-03-03 Paul Thomas <pault@gcc.gnu.org>
134 * resolve.c (build_loc_call): Change symtree name from 'loc' to
137 2018-03-01 Paul Thomas <pault@gcc.gnu.org>
140 * target-memory.c (gfc_interpret_derived): Assert that BT_VOID
141 components are caf tokens.
142 (gfc_target_interpret_expr): Treat BT_VOID expressions as
145 2018-03-01 Paul Thomas <pault@gcc.gnu.org>
148 * class.c (class_array_ref_detected): Remove the condition that
149 there be no reference after the array reference.
150 (find_intrinsic_vtab): Remove excess whitespace.
151 * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
152 as 'base and call build_class_array_ref earlier.
154 2018-02-28 Paul Thomas <pault@gcc.gnu.org>
157 * trans-stmt.c (trans_associate_var): Make sure that the se
158 expression is a pointer type before converting it to the symbol
161 2018-02-25 Steven G. Kargl <kargl@gcc.gnu.org>
164 * decl.c (variable_decl): Check that an explicit-shape-array with
165 nonconstant bounds is allowed.
167 2018-02-25 Paul Thomas <pault@gcc.gnu.org>
170 * trans-intrinsic.c (gfc_conv_allocated): If the argument se
171 has a pre block, add it to the expression pre block.
173 2018-02-25 Thomas Koenig <tkoenig@gcc.gnu.org>
176 * gfortran.h (gfc_integer_4_kind): Define.
177 * resolve.c (resolve_select_type): Make sure that the
178 kind of c->high is gfc_integer_4_kind.
180 2018-02-24 Steven G. Kargl <kargl@gcc.gnu.org>
183 * decl.c (gfc_match_data): Check for invalid substring in
186 2018-02-23 Steven G. Kargl <kargl@gcc.gnu.org>
188 * intrinsic.texi: Arguments to MATMUL cannot both be rank one.
190 2018-02-23 Steven G. Kargl <kargl@gcc.gnu.org>
193 * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement.
195 2018-02-23 Steven G. Kargl <kargl@gcc.gnu.org>
198 * interface.c (compare_actual_formal): Issue error if keyword is
199 used in a statement function.
201 2018-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
204 * trans-io.c (set_parameter_value_inquire): Adjust range check of
205 negative unit values for kind=8 units to the kind=4 negative limit.
207 2018-02-23 Paul Thomas <pault@gcc.gnu.org>
210 * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before
211 accessing its components.
213 2018-02-23 Paul Thomas <pault@gcc.gnu.org>
216 * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name
217 before accessing its components.
219 2018-02-23 Paul Thomas <pault@gcc.gnu.org>
222 * trans-const.c : Clean up some whitespace issues.
223 * trans-expr.c (gfc_conv_initializer): If an iso_c_binding
224 derived type has a kind value of zero, set it to the default
227 2018-02-23 Janne Blomqvist <jb@gcc.gnu.org>
230 * trans-decl.c (gfc_build_builtin_function_decls): Add bool
231 argument to stop and error stop decls.
232 * trans-stmt.c (gfc_trans_stop): Add false value to argument
235 2018-02-22 Janne Blomqvist <jb@gcc.gnu.org>
239 * trans-decl.c (gfc_build_builtin_function_decls): Pass
240 gfc_int8_type node to pause_numeric, size_type_node to
242 * trans-stmt.c (gfc_trans_pause): Likewise.
244 2018-02-22 Janne Blomqvist <jb@gcc.gnu.org>
246 * gfortran.texi: Update Coarray API description.
247 * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
248 character lengths, int for exit codes.
249 (generate_coarray_sym_init): Use size_t for character length.
250 * trans-intrinsic.c (conv_co_collective): Likewise.
251 * trans-stmt.c (gfc_trans_lock_unlock): Likewise.
252 (gfc_trans_event_post_wait): Likewise.
253 (gfc_trans_sync): Likewise.
254 (gfc_trans_stop): Use size_t for character lengths, int for exit
257 2018-02-20 Thomas Koenig <tkoenig@gcc.gnu.org>
261 * primary.c (gfc_convert_to_structure_constructor):
262 For a constant string constructor, make sure the length
265 2018-02-19 Paul Thomas <pault@gcc.gnu.org>
269 * resolve.c (resolve_assoc_var): Rearrange the logic for the
270 determination of the character length of associate names. If
271 the associate name is missing a length expression or the length
272 expression is not a constant and the target is not a variable,
273 make the associate name allocatable and deferred length.
274 * trans-decl.c (gfc_get_symbol_decl): Null the character length
275 backend_decl for deferred length associate names that are not
276 variables. Set 'length' to gfc_index_zero_node for character
277 associate names, whose character length is a PARM_DECL.
279 2018-02-19 Thomas Koenig <tkoenig@gcc.gnu.org>
282 * frontend-passes.c (traverse_io_block): Remove workaround for
285 2018-02-19 Andre Vehreschild <vehre@gcc.gnu.org>
287 * gfortran.texi: Document additional src/dst_type. Fix some typos.
288 * trans-decl.c (gfc_build_builtin_function_decls): Declare the new
289 argument of _caf_*_by_ref () with * e { get, send, sendget }.
290 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the
291 data referenced when generating a call to caf_get_by_ref ().
292 (conv_caf_send): Same but for caf_send_by_ref () and
293 caf_sendget_by_ref ().
295 2018-02-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
298 * io.c (check_format): Allow FMT_COLON.
300 2018-02-18 Paul Thomas <pault@gcc.gnu.org>
303 * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from
304 the typenode in the case of deferred length characters.
306 2018-02-17 Thomas Koenig <tkoenig@gcc.gnu.org>
309 * frontend-passes (scalarized_expr): If the expression
310 is an assumed size array, leave in the last reference
311 and pass AR_SECTION instead of AR_FULL to gfc_resolve
312 in order to avoid an error.
314 2018-02-17 Paul Thomas <pault@gcc.gnu.org>
317 * resolve.c (resolve_assoc_var): If a non-constant target expr.
318 has no string length expression, make the associate variable
319 into a deferred length, allocatable symbol.
320 * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to
322 * trans-stmt.c (trans_associate_var): Null and free scalar
323 associate names that are allocatable. After assignment, remove
324 the allocatable attribute to prevent reallocation.
326 2018-02-16 Jakub Jelinek <jakub@redhat.com>
329 * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF
330 kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step.
332 2018-02-16 Dominique d'Humieres <dominiq@gcc.gnu.org>
335 * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs.
337 2018-02-15 Janus Weil <janus@gcc.gnu.org>
340 * interface.c (check_dtio_arg_TKR_intent): Add a check for character
343 2018-02-14 Janus Weil <janus@gcc.gnu.org>
346 * match.c (gfc_match_select_type): Fix check for selector in
347 SELECT TYPE statement.
349 2018-02-13 Janus Weil <janus@gcc.gnu.org>
352 * symbol.c (check_conflict): Reject procedure pointers in common blocks.
354 2018-02-13 Alastair McKinstry <alastair.mckinstry@sceal.ie>
355 Janne Blomqvist <jb@gcc.gnu.org>
357 * module.c (dump_module): Use lbasename to ensure that module
358 files are reproducible.
360 2018-02-12 Janus Weil <janus@gcc.gnu.org>
363 * resolve.c (resolve_component): Fix checks of passed argument in
364 procedure-pointer components.
366 2018-02-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
369 * resolve.c (resolve_formal_arglist): Update error message.
371 2018-02-11 Andre Vehreschild <vehre@gcc.gnu.org>
373 * gfortran.texi: Fix typos in documentation of caf_register ().
374 * trans-array.c (structure_alloc_comps): Only register a component of
375 a derived typed corray, not of an ultimate component coarray.
377 2018-02-11 Steven G. Kargl <kargl@gcc.gnu.org>
381 * interface.c (compare_actual_formal): Add in_statement_function
382 bool parameter. Skip check of INTENT attribute for statement
383 functions. Arguments to a statement function cannot be optional,
384 issue error for missing argument.
385 (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use
386 in_statement_function.
388 2018-02-11 Paul Thomas <pault@gcc.gnu.org>
391 * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset
392 flag. If the is a vector subscript or the expression is not a
393 variable, make the descriptor one-based.
395 2018-02-10 Paul Thomas <pault@gcc.gnu.org>
399 * trans-array.c (gfc_array_init_size): Revert the change made
400 in revision 257356 setting the dtype.
401 * trans-types.c (gfc_get_dtype): Do not use the cached dtype.
402 Call gfc_get_dtype_rank_type every time.
405 * trans-array.c (gfc_conv_expr_descriptor): If the source array
406 is a descriptor type, use its offset, removing the condition
407 that is be a class expression.
409 2018-02-07 Steven G. Kargl <kargl@gcc.gnu.org>
412 * match.c (gfc_match_deallocate): Check for NULL pointer.
414 2018-02-07 Thomas Koenig <tkoenig@gcc.gnu.org>
417 * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function.
418 (gfc_conv_intrinsic_function): Call it.
420 2018-02-07 Steven G. Kargl <kargl@gcc.gnu.org>
423 * match.c (gfc_match_type_spec): If the charlen is non-NULL, then
424 try to resolve it. While here return early if possible.
426 2018-02-04 Paul Thomas <pault@gcc.gnu.org>
429 * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of
430 'length' if the symbol charlen backend_decl is an indirect ref.
432 2018-02-03 Paul Thomas <pault@gcc.gnu.org>
436 * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype
437 use gfc_get_dtype_rank_type.
439 2018-02-01 Janne Blomqvist <jb@gcc.gnu.org>
443 * resolve.c (resolve_assoc_var): Generate an error if
444 target length unknown.
446 2018-02-01 Janne Blomqvist <jb@gcc.gnu.org>
449 * simplify.c (gfc_simplify_repeat): Increase limit for deferring
450 to runtime, print a warning message.
452 2018-01-31 Jakub Jelinek <jakub@redhat.com>
455 * openmp.c (gfc_match_omp_clauses): If all the linear
456 gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist
457 nor set *head = NULL. Formatting fixes.
459 2018-01-31 Paul Thomas <pault@gcc.gnu.org>
462 * trans-expr.c (gfc_conv_procedure_call): If the parm expr is
463 an address expression passed to an assumed rank dummy, convert
464 to an indirect reference.
466 2018-01-31 Thomas Koenig <tkoenig@gcc.gnu.org>
468 * dump-parse-tree.c (write_proc): Use sym_name (which may
469 be sym->binding_label) instead of sym->name.
471 2018-01-31 Janne Blomqvist <jb@gcc.gnu.org>
473 * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead
476 2018-01-31 Janne Blomqvist <jb@gcc.gnu.org>
479 * trans-expr.c (fill_with_spaces): Use memset instead of
481 (gfc_trans_string_copy): Improve opportunity to use builtins with
484 2018-01-30 Jakub Jelinek <jakub@redhat.com>
487 * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off
488 to DATA_FIELD's offset rather than OFFSET_FIELD's offset.
490 2018-01-30 Thomas Koenig <tkoenig@gcc.gnu.org>
493 * array.c (gfc_ref_dimen_size): Whitespace fixes. If stride is
496 2018-01-30 Thomas Koenig <tkoenig@gcc.gnu.org>
499 * frontend-passes (matmul_to_var_expr): Return early if
501 (inline_matmul_assign): Likewise.
503 2017-01-29 Thomas Koenig <tkoenig@gcc.gnu.org>
506 * resolve.c (resolve_component): Ensure BIND(C) character
507 components have length one.
508 (resolve_symbol): Likewise for variables.
510 2018-01-27 Jakub Jelinek <jakub@redhat.com>
513 * decl.c (add_init_expr_to_sym): Ignore initializers for too large
516 2018-01-26 Damian Rouson <damian@sourceryinstitute.org>
517 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
518 Soren Rasmussen <s.c.rasmussen@gmail.com>
520 Partial support for Fortran 2018 teams features.
522 * array.c (gfc_match_array_ref): add team attribute in coarray
524 * check.c (gfc_check_get_team, gfc_check_team_number): add new
525 functions for get_team and team_number.
526 * dump-parse-tree.c (show_code_node): add new statements: form team,
527 change team, end team, and sync team.
528 * expr.c (gfc_find_team_co): add new function.
529 * gfortran.h: add new statements.
530 * intrinsic.c (add_functions): add get_team and team_number functions.
531 * intrinsic.h: add get_team and team_number prototypes for check,
532 simplify, and resolve.
533 * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new
535 * iso-fortran-env.def: add the team_type derived type.
536 * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number)
537 (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team):
538 add change team, end team, form team, sync team match and functions.
539 * match.h: add new prototypes for change team, end team, form team,
541 * parse.c (decode_statement): add cases for change team, end team,
542 form team, and sync team.
543 * resolve.c: add cases for exec form team, change team, end team, and
545 * simplify.c (gfc_simplify_get_team): add new function for get team.
546 * st.c (gfc_free_statement): add cases exec for change team, end team,
547 form team, sync team.
548 * trans-decl.c (gfor_fndecl_caf_form_team)
549 (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team)
550 (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team)
551 (gfor_fndecl_caf_team_number): add functions and definitions.
552 * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add
553 new function and team_type argument support.
554 * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team)
555 (gfc_trans_end_team, gfc_trans_sync_team): add new functions.
556 * trans-stmt.h: add new prototypes.
557 * trans-types.c (gfc_get_derived_type): check condition for team_type.
558 * trans.c (trans_code): new exec cases for form team, change team, end
560 * trans.h: add new prototypes.
562 2018-01-26 Steven G. Kargl <kargl@gcc.gnu.org>
565 * simplify.c (compute_dot_product): Initialize result to INTEGER(1) 0
566 or .false. The summation does the correct type conversion.
567 (gfc_simplify_dot_product): Special case zero-sized arrays.
569 2018-25-01 Paul Thomas <pault@gcc.gnu.org>
572 * array.c (gfc_match_array_ref): If standard earlier than F2008
573 it is an error if the reference dimension is greater than 7.
574 libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the
575 dtype masks and shifts accordingly.
576 * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype
577 type node to check the field.
578 (gfc_conv_descriptor_dtype): Access the rank field of dtype.
579 (duplicate_allocatable_coarray): Access the rank field of the
580 dtype descriptor rather than the dtype itself.
581 * trans-expr.c (get_scalar_to_descriptor_type): Store the type
582 of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE
584 (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to
585 get_scalar_to_descriptor_type if the actual expression is a
587 (gfc_trans_structure_assign): Assign the rank directly to the
589 * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result
590 to default integer kind.
591 (gfc_conv_intrinsic_sizeof): Obtain the element size from the
592 'elem_len' field of the dtype.
593 * trans-io.c (gfc_build_io_library_fndecls): Replace
594 gfc_int4_type_node with dtype_type_node where necessary.
595 (transfer_namelist_element): Use gfc_get_dtype_rank_type for
597 * trans-types.c : Provide 'get_dtype_type_node' to acces the
598 dtype_type_node and, if necessary, build it.
599 The maximum size of an array element is now determined by the
600 maximum value of size_t.
601 Update the description of the array descriptor, including the
602 type def for the dtype_type.
603 (gfc_get_dtype_rank_type): Build a constructor for the dtype.
604 Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS.
605 (gfc_get_array_descriptor_base): Change the type of the dtype
606 field to dtype_type_node.
607 (gfc_get_array_descr_info): Get the offset to the rank field of
609 * trans-types.h : Add a prototype for 'get_dtype_type_node ()'.
610 * trans.h : Define the indices of the dtype fields.
612 2018-23-01 Paul Thomas <pault@gcc.gnu.org>
615 * decl.c (gfc_match_derived_decl): If eos not matched, recover
616 and emit error about garbage after declaration.
618 2018-23-01 Paul Thomas <pault@gcc.gnu.org>
621 * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
624 2018-01-22 Janne Blomqvist <jb@gcc.gnu.org>
628 * arith.c (gfc_arith_concat): Use size_t for string length.
629 (gfc_compare_string): Likewise.
630 (gfc_compare_with_Cstring): Likewise.
631 * array.c (gfc_resolve_character_array_constructor): Use
632 HOST_WIDE_INT, gfc_mpz_get_hwi.
633 * check.c (gfc_check_fe_runtime_error): Use size_t.
634 * data.c (create_character_initializer): Use HOST_WIDE_INT,
636 * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t.
637 (add_init_expr_to_sym): Use HOST_WIDE_INT.
638 * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT,
640 (gfc_apply_init): Likewise.
641 * match.h (gfc_set_constant_character_len): Update prototype.
642 * primary.c (match_string_constant): Use size_t.
643 * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT,
645 * simplify.c (init_result_expr): Likewise.
646 (gfc_simplify_len_trim): Use size_t.
647 * target-memory.c (gfc_encode_character): Use size_t.
648 (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi.
649 (interpret_array): Use size_t.
650 (gfc_interpret_character): Likewise.
651 * target-memory.h (gfc_encode_character): Update prototype.
652 (gfc_interpret_character): Likewise.
653 (gfc_target_interpret_expr): Likewise.
654 * trans-const.c (gfc_build_string_const): Use size_t for length
656 (gfc_build_wide_string_const): Likewise.
657 * trans-const.h (gfc_build_string_const): Likewise.
658 (gfc_build_wide_string_const): Likewise.
660 2018-01-20 Steven G. Kargl <kargl@gcc.gnu.org>
663 * simplify.c (gfc_simplify_matmul): Set return type correctly.
665 2018-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
668 * simplify.c (gfc_simplify_matmul): Delete bogus assertion.
670 2018-01-17 Harald Anlauf <anlauf@gmx.de>
673 * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
675 2018-01-17 Harald Anlauf <anlauf@gmx.de>
678 * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
680 2018-01-15 Louis Krupp <louis.krupp@zoho.com>
683 * interface.c (compare_rank): Don't try to retrieve CLASS_DATA
684 from symbol marked unlimited polymorphic.
685 * resolve.c (resolve_structure_cons): Likewise.
686 * misc.c (gfc_typename): Don't dereference derived->components
689 2018-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
692 * gfortran.h (gfc_check_f): Rename f4ml to f5ml.
693 (gfc_logical_4_kind): New macro
694 * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
695 (gfc_simplify_maxloc): Likewise.
696 (gfc_resolve_maxloc): Likewise.
697 (gfc_resolve_minloc): Likewise.
698 * check.c (gfc_check_minloc_maxloc): Add checking for "back"
699 argument; also raise error if it is used (for now). Add it
701 * intrinsic.c (add_sym_4ml): Rename to
702 (add_sym_5ml), adjust for extra argument.
703 (add_functions): Add "back" constant. Adjust maxloc and minloc
705 * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
706 not of gfc_logical_4_kind, convert.
707 (gfc_resolve_minloc): Likewise.
708 * simplify.c (gfc_simplify_minloc): Add back argument.
709 (gfc_simplify_maxloc): Likewise.
710 * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
711 argument to %VAL to ensure passing by value.
712 (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
713 also for library calls.
715 2018-01-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
718 * resolve.c (resolve_transfer): Delete code looking for 'DT'
719 format specifiers in format strings. Set formatted to true if a
720 format string or format label is present.
721 * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix
724 2018-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
727 * dump-parse-tree.c (get_c_type_name): Remove extra line.
728 Change for loop to use declaration in for loop. Handle BT_LOGICAL
730 (write_decl): Add where argument. Fix indentation. Replace
731 assert with error message. Add typename to warning
733 (write_type): Adjust locus to call of write_decl.
734 (write_variable): Likewise.
735 (write_proc): Likewise. Replace assert with error message.
737 2018-01-13 Paul Thomas <pault@gcc.gnu.org>
740 * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if
741 the rhs expression is neither an elemental nor a conversion
745 * trans-array.c (is_pointer_array): Remove unconditional return
746 of false for -fopenmp.
748 2018-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
752 * dump-parse-tree.c (write_proc): Always emit closing parenthesis
755 2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
758 * resolve.c (resolve_allocate_expr): Check for NULL pointer.
760 2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
763 * resolve.c (resolve_charlen): Check the type of cl->length
766 2018-01-10 Janne Blomqvist <jb@gcc.gnu.org>
769 * trans-array.c (gfc_trans_array_ctor_element): Fix formatting.
771 2018-01-10 Janne Blomqvist <jb@gcc.gnu.org>
774 * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the
775 LHS type when assigning.
777 2018-01-09 Steven G. Kargl <kargl@gcc.gnu.org>
780 * expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
782 2018-01-08 Steven G. Kargl <kargl@gcc.gnu.org>
784 * match.c (gfc_match_allocate): Check for NULL pointer.
786 2018-01-08 Steven G. Kargl <kargl@gcc.gnu.org>
788 * expr.c (gfc_check_pointer_assign): Fix typo in comment.
790 2018-01-08 Paul Thomas <pault@gcc.gnu.org>
793 * decl.c (gfc_get_pdt_instance): If parameterized arrays have
794 an initializer, convert the kind parameters and add to the
795 component if the instance.
796 * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
797 use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
798 for parameterized arrays. Clean up typos in comments. Convert
799 parameterized array initializers and copy into the array.
800 * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
802 *trans-stmt.c (trans_associate_var): Deallocate associate vars
803 as necessary, when they are PDT function results for example.
806 * trans-array.c (structure_alloc_comps): Only compare len parms
807 when they are declared explicitly.
809 2018-01-06 Janne Blomqvist <jb@gcc.gnu.org>
812 * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
815 2018-01-05 Janne Blomqvist <jb@gcc.gnu.org>
819 * array.c (got_charlen): Use gfc_charlen_int_kind.
820 * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
822 (find_intrinsic_vtab): Likewise.
823 * decl.c (match_char_length): Use gfc_charlen_int_kind.
824 (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind.
825 (gfc_match_implicit): Use gfc_charlen_int_kind.
826 * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t.
827 (show_expr): Use HOST_WIDE_INT_PRINT_DEC.
828 * expr.c (gfc_get_character_expr): Length parameter of type
830 (gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
831 (gfc_extract_hwi): New function.
832 (simplify_const_ref): Make string_len of type gfc_charlen_t.
833 (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
834 * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind.
835 * gfortran.h (gfc_mpz_get_hwi): New prototype.
836 (gfc_mpz_set_hwi): Likewise.
837 (gfc_charlen_t): New typedef.
838 (gfc_expr): Use gfc_charlen_t for character lengths.
839 (gfc_size_kind): New extern variable.
840 (gfc_extract_hwi): New prototype.
841 (gfc_get_character_expr): Use gfc_charlen_t for character length.
842 (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
843 * gfortran.texi: Update description of hidden string length argument.
844 * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind.
845 (gfc_resolve_char_achar): Likewise.
846 (gfc_resolve_repeat): Pass string length directly without
847 temporary, use gfc_charlen_int_kind.
848 (gfc_resolve_transfer): Use gfc_charlen_int_kind.
849 * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
850 * misc.c (gfc_mpz_get_hwi): New function.
851 (gfc_mpz_set_hwi): New function.
852 * module.c (atom_int): Change type from int to HOST_WIDE_INT.
853 (parse_integer): Don't complain about large integers.
854 (write_atom): Use HOST_WIDE_INT for integers.
855 (mio_integer): Handle integer type mismatch.
856 (mio_hwi): New function.
857 (mio_intrinsic_op): Use HOST_WIDE_INT.
858 (mio_array_ref): Likewise.
859 (mio_expr): Likewise.
860 * primary.c (match_substring): Use gfc_charlen_int_kind.
861 * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind.
862 (resolve_character_operator): Likewise.
863 (resolve_assoc_var): Likewise.
864 (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf.
865 (resolve_charlen): Use mpz_sgn to determine sign.
866 * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
868 * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind.
869 * target-memory.c (size_character): Length argument of type
871 (gfc_encode_character): Likewise.
872 (gfc_interpret_character): Use gfc_charlen_t.
873 * target-memory.h (gfc_encode_character): Modify prototype.
874 * trans-array.c (gfc_trans_array_ctor_element): Use existing type.
875 (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type.
876 (trans_array_constructor): Use existing type.
877 (get_array_charlen): Likewise.
878 * trans-const.c (gfc_conv_mpz_to_tree_type): New function.
879 * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
880 * trans-decl.c (gfc_trans_deferred_vars): Use existing type.
881 (add_argument_checking): Likewise.
882 * trans-expr.c (gfc_class_len_or_zero_get): Build const of type
883 gfc_charlen_type_node.
884 (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
885 4, fold_convert to correct type.
886 (gfc_conv_class_to_class): Build const of type size_type_node for
888 (gfc_copy_class_to_class): Likewise.
889 (gfc_conv_string_length): Use same type in expression.
890 (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
891 (gfc_conv_string_tmp): Make sure len is of the right type.
892 (gfc_conv_concat_op): Use same type in expression.
893 (gfc_conv_procedure_call): Likewise.
894 (fill_with_spaces): Comment out memset() block due to spurious
895 -Wstringop-overflow warnings.
896 (gfc_trans_string_copy): Use gfc_charlen_type_node.
897 (alloc_scalar_allocatable_for_subcomponent_assignment):
898 fold_convert to right type.
899 (gfc_trans_subcomponent_assign): Likewise.
900 (trans_class_vptr_len_assignment): Build const of correct type.
901 (gfc_trans_pointer_assignment): Likewise.
902 (alloc_scalar_allocatable_for_assignment): fold_convert to right
904 (trans_class_assignment): Build const of correct type.
905 * trans-intrinsic.c (gfc_conv_associated): Likewise.
906 (gfc_conv_intrinsic_repeat): Do calculation in sizetype.
907 * trans-io.c (gfc_build_io_library_fndecls): Use
908 gfc_charlen_type_node for character lengths.
909 (set_string): Convert to right type in assignment.
910 * trans-stmt.c (gfc_trans_label_assign): Build const of
911 gfc_charlen_type_node.
912 (trans_associate_var): Likewise.
913 (gfc_trans_character_select): Likewise.
914 (gfc_trans_allocate): Likewise, don't typecast strlen result.
915 (gfc_trans_deallocate): Don't typecast strlen result.
916 * trans-types.c (gfc_size_kind): New variable.
917 (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
919 * trans-types.h: Fix comment.
921 2018-01-04 Thomas Koenig <tkoenig@gcc.gnu.org>
925 * check.c (gfc_check_eoshift): Check for string length and
926 for conformance of boundary.
927 * intrinsic.c (add_functions): Add gfc_simplify_eoshift.
928 * intrinsic.h: Add prototype for gfc_simplify_eoshift.
929 * simplify.c (gfc_simplify_eoshift): New function.
931 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
932 Alan Hayward <alan.hayward@arm.com>
933 David Sherwood <david.sherwood@arm.com>
935 * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
937 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
938 Alan Hayward <alan.hayward@arm.com>
939 David Sherwood <david.sherwood@arm.com>
941 * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
943 2018-01-03 Thomas Koenig <tkoenig@gcc.gnu.org>
946 * check.c (gfc_check_eoshift): Error for missing boundary if array
947 is not one of the standard types.
949 2018-01-03 Jakub Jelinek <jakub@redhat.com>
951 Update copyright years.
953 * gfortranspec.c (lang_specific_driver): Update copyright notice
955 * gfc-internals.texi: Bump @copying's copyright year.
956 * gfortran.texi: Ditto.
957 * intrinsic.texi: Ditto.
958 * invoke.texi: Ditto.
960 2017-01-02 Thomas Koenig <tkoenig@gcc.gnu.org>
963 * intrinsic.c (add_function): Add gfc_simplify_maxloc and
964 gfc_simplify_minloc to maxloc and minloc, respectively.
965 * intrinsic.h: Add prototypes for gfc_simplify_minloc
966 and gfc_simplify_maxloc.
967 * simplify.c (min_max_chose): Adjust prototype. Modify function
968 to have a return value which indicates if the extremum was found.
969 (is_constant_array_expr): Fix typo in comment.
970 (simplify_minmaxloc_to_scalar): New function.
971 (simplify_minmaxloc_nodim): New function.
972 (new_array): New function.
973 (simplify_minmaxloc_to_array): New function.
974 (gfc_simplify_minmaxloc): New function.
975 (simplify_minloc): New function.
976 (simplify_maxloc): New function.
978 2018-01-02 Thomas Koenig <tkoenig@gcc.gnu.org>
982 * simplify.c (gfc_simplify_cshift): Re-implement to allow full
985 2018-01-01 Paul Thomas <pault@gcc.gnu.org>
988 * resolve.c (resolve_fl_derived0): Add caf_token fields for
989 allocatable and pointer scalars, when -fcoarray selected.
990 * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token
991 field as well as the backend_decl.
992 (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module
993 derived types that are not vtypes. Components with caf_token
994 attribute are pvoid types. For a component requiring it, find
995 the caf_token field and have the component token field point to
999 *trans-types.c (gfc_get_array_descriptor_base): Add the token
1000 field to the descriptor even when codimen not set.
1002 Copyright (C) 2018 Free Software Foundation, Inc.
1004 Copying and distribution of this file, with or without modification,
1005 are permitted in any medium without royalty provided the copyright
1006 notice and this notice are preserved.