2018-01-20 00:37:29 +01:00
|
|
|
|
2018-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport of r250734 from mainline
|
|
|
|
|
PR fortran/80768
|
|
|
|
|
* check.c (gfc_check_num_images): Fix typo.
|
|
|
|
|
|
2018-01-18 19:27:22 +01:00
|
|
|
|
2018-01-18 Harald Anlauf <anlauf@gmx.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
PR fortran/83864
|
|
|
|
|
* expr.c (gfc_apply_init): Do not dereference NULL pointer.
|
|
|
|
|
|
2018-01-18 01:30:42 +01:00
|
|
|
|
2018-01-17 Harald Anlauf <anlauf@gmx.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
PR fortran/83874
|
|
|
|
|
* decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
|
|
|
|
|
|
|
|
|
|
2018-01-13 Steven G. Kargl <kargl@gcc.gnu.org>
|
2018-01-13 19:58:56 +01:00
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
PR fortran/78814
|
|
|
|
|
* interface.c (symbol_rank): Check for NULL pointer.
|
|
|
|
|
|
2018-01-11 00:41:48 +01:00
|
|
|
|
2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/82367
|
|
|
|
|
* resolve.c (resolve_allocate_expr): Check for NULL pointer.
|
|
|
|
|
|
2018-01-10 23:35:00 +01:00
|
|
|
|
2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/83093
|
|
|
|
|
* resolve.c (resolve_charlen): Check the type of cl->length
|
|
|
|
|
after resolution.
|
|
|
|
|
|
2018-01-10 19:47:44 +01:00
|
|
|
|
2018-01-10 Steven G. Kargl <kargl@kgcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport r254555 from trunk
|
|
|
|
|
PR Fortran/82841
|
|
|
|
|
* simplify.c(gfc_simplify_transfer): Do not dereference a NULL pointer.
|
|
|
|
|
Unwrap a short line.
|
|
|
|
|
|
2018-01-04 21:16:23 +01:00
|
|
|
|
2018-01-04 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR Fortran/83679
|
|
|
|
|
* simplify.c (gfc_simplify_cshift): Restore early return for zero-sized
|
|
|
|
|
array. Update Copyright year while here.
|
|
|
|
|
|
2018-01-02 19:01:31 +01:00
|
|
|
|
2018-01-02 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/83650
|
|
|
|
|
* simplify.c (gfc_simplify_cshift): Correct contition for
|
|
|
|
|
negative shifts.
|
|
|
|
|
|
2017-12-28 21:43:38 +01:00
|
|
|
|
2017-12-28 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR Fortran/83548
|
|
|
|
|
* match.c (gfc_match_type_spec): Check for LOGICAL conflict in
|
|
|
|
|
type-spec versus LOGICAL intrinsic subprogram.
|
|
|
|
|
|
2017-12-15 22:55:47 +01:00
|
|
|
|
2017-12-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
2017-12-15 23:00:48 +01:00
|
|
|
|
2017-11-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/81304
|
|
|
|
|
* trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Set
|
|
|
|
|
attr.implicit_type in intrinsic_sym to avoid undesirable warning.
|
|
|
|
|
|
2017-12-15 22:55:47 +01:00
|
|
|
|
2017-11-23 Dirk Broemmel <d.broemmel@fz-juelich.de>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/81841
|
|
|
|
|
* parse.c (parse_spec): Allow ST_OMP_THREADPRIVATE inside of
|
|
|
|
|
BLOCK DATA.
|
|
|
|
|
|
2017-11-28 16:38:55 +01:00
|
|
|
|
2017-11-28 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/83021
|
|
|
|
|
* resolve.c (resolve_component): Only escape for use assciated
|
|
|
|
|
vtypes if the current namespace has no proc_name and is most
|
|
|
|
|
particularly block data.
|
|
|
|
|
|
|
|
|
|
2017-11-23 Paul Thomas <pault@gcc.gnu.org>
|
2017-11-23 22:02:48 +01:00
|
|
|
|
|
|
|
|
|
Backported from trunk
|
|
|
|
|
PR fortran/79072
|
|
|
|
|
* trans-expr.c (trans_class_vptr_len_assignment): Set from_len
|
|
|
|
|
if the temporary is unlimited polymorphic.
|
|
|
|
|
* trans-stmt.c (trans_associate_var): Use the fake result decl
|
|
|
|
|
to obtain the 'len' field from an explicit function result when
|
|
|
|
|
in that function scope.
|
|
|
|
|
|
2017-11-21 20:09:01 +01:00
|
|
|
|
2017-11-21 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backported from trunk fix for PR82586
|
|
|
|
|
PR fortran/78686
|
|
|
|
|
* resolve.c (resolve_generic_f): Check usage of derived type by
|
|
|
|
|
calling gfc_use_derived.
|
|
|
|
|
|
2017-11-13 21:46:08 +01:00
|
|
|
|
2017-11-13 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/82934
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Remove the gcc_assert on
|
|
|
|
|
null string length for assumed length typespec and set
|
|
|
|
|
expr3_esize to NULL_TREE;
|
|
|
|
|
|
2017-11-13 21:43:26 +01:00
|
|
|
|
2017-11-13 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/78619
|
|
|
|
|
* check.c (same_type_check): Introduce a new argument 'assoc'
|
|
|
|
|
with default value false. If this is true, use the symbol type
|
|
|
|
|
spec of BT_PROCEDURE expressions.
|
|
|
|
|
(gfc_check_associated): Set 'assoc' true in the call to
|
|
|
|
|
'same_type_check'.
|
|
|
|
|
|
Introduce logical_type_node and use it
Backport from trunk.
Earlier GFortran used to redefine boolean_type_node, which in the rest
of the compiler means the C/C++ _Bool/bool type, to the Fortran
default logical type. When this redefinition was removed, a few
issues surfaced. Namely,
1) PR 82869, where we created a boolean tmp variable, and passed it to
the runtime library as a Fortran logical variable of a different size.
2) Fortran specifies that logical operations should be done with the
default logical kind, not in any other kind.
3) Using 8-bit variables have some issues, such as
- on x86, partial register stalls and length prefix changes.
- s390 has a compare with immediate and jump instruction which
works with 32-bit but not 8-bit quantities.
This patch addresses these issues by introducing a type
logical_type_node which is a Fortran LOGICAL variable of default
kind. It is then used in places were the Fortran standard mandates, as
well as for compiler generated temporary variables.
For x86-64, using the Polyhedron benchmark suite, no performance or
code size difference worth mentioning was observed.
Regtested on x86_64-pc-linux-gnu.
gcc/fortran/ChangeLog:
2017-11-13 Janne Blomqvist <jb@gcc.gnu.org>
PR 82869
* convert.c (truthvalue_conversion): Use logical_type_node.
* trans-array.c (gfc_trans_allocate_array_storage): Likewise.
(gfc_trans_create_temp_array): Likewise.
(gfc_trans_array_ctor_element): Likewise.
(gfc_trans_array_constructor_value): Likewise.
(trans_array_constructor): Likewise.
(trans_array_bound_check): Likewise.
(gfc_conv_array_ref): Likewise.
(gfc_trans_scalarized_loop_end): Likewise.
(gfc_conv_array_extent_dim): Likewise.
(gfc_array_init_size): Likewise.
(gfc_array_allocate): Likewise.
(gfc_trans_array_bounds): Likewise.
(gfc_trans_dummy_array_bias): Likewise.
(gfc_conv_array_parameter): Likewise.
(duplicate_allocatable): Likewise.
(duplicate_allocatable_coarray): Likewise.
(structure_alloc_comps): Likewise
(get_std_lbound): Likewise
(gfc_alloc_allocatable_for_assignment): Likewise
* trans-decl.c (add_argument_checking): Likewise
(gfc_generate_function_code): Likewise
* trans-expr.c (gfc_copy_class_to_class): Likewise
(gfc_trans_class_array_init_assign): Likewise
(gfc_trans_class_init_assign): Likewise
(gfc_conv_expr_present): Likewise
(gfc_conv_substring): Likewise
(gfc_conv_cst_int_power): Likewise
(gfc_conv_expr_op): Likewise
(gfc_conv_procedure_call): Likewise
(fill_with_spaces): Likewise
(gfc_trans_string_copy): Likewise
(gfc_trans_alloc_subarray_assign): Likewise
(gfc_trans_pointer_assignment): Likewise
(gfc_trans_scalar_assign): Likewise
(fcncall_realloc_result): Likewise
(alloc_scalar_allocatable_for_assignment): Likewise
(trans_class_assignment): Likewise
(gfc_trans_assignment_1): Likewise
* trans-intrinsic.c (build_fixbound_expr): Likewise
(gfc_conv_intrinsic_aint): Likewise
(gfc_trans_same_strlen_check): Likewise
(conv_caf_send): Likewise
(trans_this_image): Likewise
(conv_intrinsic_image_status): Likewise
(trans_image_index): Likewise
(gfc_conv_intrinsic_bound): Likewise
(conv_intrinsic_cobound): Likewise
(gfc_conv_intrinsic_mod): Likewise
(gfc_conv_intrinsic_dshift): Likewise
(gfc_conv_intrinsic_dim): Likewise
(gfc_conv_intrinsic_sign): Likewise
(gfc_conv_intrinsic_ctime): Likewise
(gfc_conv_intrinsic_fdate): Likewise
(gfc_conv_intrinsic_ttynam): Likewise
(gfc_conv_intrinsic_minmax): Likewise
(gfc_conv_intrinsic_minmax_char): Likewise
(gfc_conv_intrinsic_anyall): Likewise
(gfc_conv_intrinsic_arith): Likewise
(gfc_conv_intrinsic_minmaxloc): Likewise
(gfc_conv_intrinsic_minmaxval): Likewise
(gfc_conv_intrinsic_btest): Likewise
(gfc_conv_intrinsic_bitcomp): Likewise
(gfc_conv_intrinsic_shift): Likewise
(gfc_conv_intrinsic_ishft): Likewise
(gfc_conv_intrinsic_ishftc): Likewise
(gfc_conv_intrinsic_leadz): Likewise
(gfc_conv_intrinsic_trailz): Likewise
(gfc_conv_intrinsic_mask): Likewise
(gfc_conv_intrinsic_spacing): Likewise
(gfc_conv_intrinsic_rrspacing): Likewise
(gfc_conv_intrinsic_size): Likewise
(gfc_conv_intrinsic_sizeof): Likewise
(gfc_conv_intrinsic_transfer): Likewise
(gfc_conv_allocated): Likewise
(gfc_conv_associated): Likewise
(gfc_conv_same_type_as): Likewise
(gfc_conv_intrinsic_trim): Likewise
(gfc_conv_intrinsic_repeat): Likewise
(conv_isocbinding_function): Likewise
(conv_intrinsic_ieee_is_normal): Likewise
(conv_intrinsic_ieee_is_negative): Likewise
(conv_intrinsic_ieee_copy_sign): Likewise
(conv_intrinsic_move_alloc): Likewise
* trans-io.c (set_parameter_value_chk): Likewise
(set_parameter_value_inquire): Likewise
(set_string): Likewise
* trans-openmp.c (gfc_walk_alloc_comps): Likewise
(gfc_omp_clause_default_ctor): Likewise
(gfc_omp_clause_copy_ctor): Likewise
(gfc_omp_clause_assign_op): Likewise
(gfc_omp_clause_dtor): Likewise
(gfc_omp_finish_clause): Likewise
(gfc_trans_omp_clauses): Likewise
(gfc_trans_omp_do): Likewise
* trans-stmt.c (gfc_trans_goto): Likewise
(gfc_trans_sync): Likewise
(gfc_trans_arithmetic_if): Likewise
(gfc_trans_simple_do): Likewise
(gfc_trans_do): Likewise
(gfc_trans_forall_loop): Likewise
(gfc_trans_where_2): Likewise
(gfc_trans_allocate): Likewise
(gfc_trans_deallocate): Likewise
* trans-types.c (gfc_init_types): Initialize logical_type_node and
their true/false trees.
(gfc_get_array_descr_info): Use logical_type_node.
* trans-types.h (logical_type_node): New tree.
(logical_true_node): Likewise.
(logical_false_node): Likewise.
* trans.c (gfc_trans_runtime_check): Use logical_type_node.
(gfc_call_malloc): Likewise
(gfc_allocate_using_malloc): Likewise
(gfc_allocate_allocatable): Likewise
(gfc_add_comp_finalizer_call): Likewise
(gfc_add_finalizer_call): Likewise
(gfc_deallocate_with_status): Likewise
(gfc_deallocate_scalar_with_status): Likewise
(gfc_call_realloc): Likewise
gcc/testsuite/ChangeLog:
2017-11-13 Janne Blomqvist <jb@gcc.gnu.org>
PR 82869
* gfortran.dg/logical_temp_io.f90: New test.
* gfortran.dg/logical_temp_io_kind8.f90: New test.
From-SVN: r254706
2017-11-13 21:01:20 +01:00
|
|
|
|
2017-11-13 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR 82869
|
|
|
|
|
* convert.c (truthvalue_conversion): Use logical_type_node.
|
|
|
|
|
* trans-array.c (gfc_trans_allocate_array_storage): Likewise.
|
|
|
|
|
(gfc_trans_create_temp_array): Likewise.
|
|
|
|
|
(gfc_trans_array_ctor_element): Likewise.
|
|
|
|
|
(gfc_trans_array_constructor_value): Likewise.
|
|
|
|
|
(trans_array_constructor): Likewise.
|
|
|
|
|
(trans_array_bound_check): Likewise.
|
|
|
|
|
(gfc_conv_array_ref): Likewise.
|
|
|
|
|
(gfc_trans_scalarized_loop_end): Likewise.
|
|
|
|
|
(gfc_conv_array_extent_dim): Likewise.
|
|
|
|
|
(gfc_array_init_size): Likewise.
|
|
|
|
|
(gfc_array_allocate): Likewise.
|
|
|
|
|
(gfc_trans_array_bounds): Likewise.
|
|
|
|
|
(gfc_trans_dummy_array_bias): Likewise.
|
|
|
|
|
(gfc_conv_array_parameter): Likewise.
|
|
|
|
|
(duplicate_allocatable): Likewise.
|
|
|
|
|
(duplicate_allocatable_coarray): Likewise.
|
|
|
|
|
(structure_alloc_comps): Likewise
|
|
|
|
|
(get_std_lbound): Likewise
|
|
|
|
|
(gfc_alloc_allocatable_for_assignment): Likewise
|
|
|
|
|
* trans-decl.c (add_argument_checking): Likewise
|
|
|
|
|
(gfc_generate_function_code): Likewise
|
|
|
|
|
* trans-expr.c (gfc_copy_class_to_class): Likewise
|
|
|
|
|
(gfc_trans_class_array_init_assign): Likewise
|
|
|
|
|
(gfc_trans_class_init_assign): Likewise
|
|
|
|
|
(gfc_conv_expr_present): Likewise
|
|
|
|
|
(gfc_conv_substring): Likewise
|
|
|
|
|
(gfc_conv_cst_int_power): Likewise
|
|
|
|
|
(gfc_conv_expr_op): Likewise
|
|
|
|
|
(gfc_conv_procedure_call): Likewise
|
|
|
|
|
(fill_with_spaces): Likewise
|
|
|
|
|
(gfc_trans_string_copy): Likewise
|
|
|
|
|
(gfc_trans_alloc_subarray_assign): Likewise
|
|
|
|
|
(gfc_trans_pointer_assignment): Likewise
|
|
|
|
|
(gfc_trans_scalar_assign): Likewise
|
|
|
|
|
(fcncall_realloc_result): Likewise
|
|
|
|
|
(alloc_scalar_allocatable_for_assignment): Likewise
|
|
|
|
|
(trans_class_assignment): Likewise
|
|
|
|
|
(gfc_trans_assignment_1): Likewise
|
|
|
|
|
* trans-intrinsic.c (build_fixbound_expr): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_aint): Likewise
|
|
|
|
|
(gfc_trans_same_strlen_check): Likewise
|
|
|
|
|
(conv_caf_send): Likewise
|
|
|
|
|
(trans_this_image): Likewise
|
|
|
|
|
(conv_intrinsic_image_status): Likewise
|
|
|
|
|
(trans_image_index): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_bound): Likewise
|
|
|
|
|
(conv_intrinsic_cobound): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_mod): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_dshift): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_dim): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_sign): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_ctime): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_fdate): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_ttynam): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_minmax): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_minmax_char): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_anyall): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_arith): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_minmaxloc): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_minmaxval): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_btest): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_bitcomp): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_shift): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_ishft): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_ishftc): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_leadz): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_trailz): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_mask): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_spacing): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_rrspacing): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_size): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_sizeof): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_transfer): Likewise
|
|
|
|
|
(gfc_conv_allocated): Likewise
|
|
|
|
|
(gfc_conv_associated): Likewise
|
|
|
|
|
(gfc_conv_same_type_as): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_trim): Likewise
|
|
|
|
|
(gfc_conv_intrinsic_repeat): Likewise
|
|
|
|
|
(conv_isocbinding_function): Likewise
|
|
|
|
|
(conv_intrinsic_ieee_is_normal): Likewise
|
|
|
|
|
(conv_intrinsic_ieee_is_negative): Likewise
|
|
|
|
|
(conv_intrinsic_ieee_copy_sign): Likewise
|
|
|
|
|
(conv_intrinsic_move_alloc): Likewise
|
|
|
|
|
* trans-io.c (set_parameter_value_chk): Likewise
|
|
|
|
|
(set_parameter_value_inquire): Likewise
|
|
|
|
|
(set_string): Likewise
|
|
|
|
|
* trans-openmp.c (gfc_walk_alloc_comps): Likewise
|
|
|
|
|
(gfc_omp_clause_default_ctor): Likewise
|
|
|
|
|
(gfc_omp_clause_copy_ctor): Likewise
|
|
|
|
|
(gfc_omp_clause_assign_op): Likewise
|
|
|
|
|
(gfc_omp_clause_dtor): Likewise
|
|
|
|
|
(gfc_omp_finish_clause): Likewise
|
|
|
|
|
(gfc_trans_omp_clauses): Likewise
|
|
|
|
|
(gfc_trans_omp_do): Likewise
|
|
|
|
|
* trans-stmt.c (gfc_trans_goto): Likewise
|
|
|
|
|
(gfc_trans_sync): Likewise
|
|
|
|
|
(gfc_trans_arithmetic_if): Likewise
|
|
|
|
|
(gfc_trans_simple_do): Likewise
|
|
|
|
|
(gfc_trans_do): Likewise
|
|
|
|
|
(gfc_trans_forall_loop): Likewise
|
|
|
|
|
(gfc_trans_where_2): Likewise
|
|
|
|
|
(gfc_trans_allocate): Likewise
|
|
|
|
|
(gfc_trans_deallocate): Likewise
|
|
|
|
|
* trans-types.c (gfc_init_types): Initialize logical_type_node and
|
|
|
|
|
their true/false trees.
|
|
|
|
|
(gfc_get_array_descr_info): Use logical_type_node.
|
|
|
|
|
* trans-types.h (logical_type_node): New tree.
|
|
|
|
|
(logical_true_node): Likewise.
|
|
|
|
|
(logical_false_node): Likewise.
|
|
|
|
|
* trans.c (gfc_trans_runtime_check): Use logical_type_node.
|
|
|
|
|
(gfc_call_malloc): Likewise
|
|
|
|
|
(gfc_allocate_using_malloc): Likewise
|
|
|
|
|
(gfc_allocate_allocatable): Likewise
|
|
|
|
|
(gfc_add_comp_finalizer_call): Likewise
|
|
|
|
|
(gfc_add_finalizer_call): Likewise
|
|
|
|
|
(gfc_deallocate_with_status): Likewise
|
|
|
|
|
(gfc_deallocate_scalar_with_status): Likewise
|
|
|
|
|
(gfc_call_realloc): Likewise
|
|
|
|
|
|
2017-11-06 11:40:11 +01:00
|
|
|
|
2017-11-06 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backported from trunk
|
|
|
|
|
PR fortran/78641
|
|
|
|
|
* resolve.c (resolve_ordinary_assign): Do not add the _data
|
|
|
|
|
component for class valued array constructors being assigned
|
|
|
|
|
to derived type arrays.
|
|
|
|
|
* trans-array.c (gfc_trans_array_ctor_element): Take the _data
|
|
|
|
|
of class valued elements for assignment to derived type arrays.
|
|
|
|
|
|
|
|
|
|
2017-11-06 Paul Thomas <pault@gcc.gnu.org>
|
2017-11-06 11:14:29 +01:00
|
|
|
|
|
|
|
|
|
Backported from trunk
|
|
|
|
|
PR fortran/69739
|
|
|
|
|
* trans-expr.c (gfc_map_intrinsic_function): Return false for
|
|
|
|
|
bounds without the DIM argument instead of ICEing.
|
|
|
|
|
|
2017-11-04 17:41:09 +01:00
|
|
|
|
2017-11-04 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/82796
|
|
|
|
|
* resolve.c (resolve_equivalence): An entity in a common block within
|
|
|
|
|
a module cannot appear in an equivalence statement if the entity is
|
|
|
|
|
with a pure procedure.
|
|
|
|
|
|
2017-11-04 15:37:03 +01:00
|
|
|
|
2017-11-04 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* trans-expr.c (gfc_trans_assignment_1): Character kind conversion may
|
|
|
|
|
create a loop variant temporary, too.
|
|
|
|
|
* trans-intrinsic.c (conv_caf_send): Treat char arrays as arrays and
|
|
|
|
|
not as scalars.
|
|
|
|
|
* trans.c (get_array_span): Take the character kind into account when
|
|
|
|
|
doing pointer arithmetic.
|
|
|
|
|
|
2017-11-03 20:01:29 +01:00
|
|
|
|
2017-11-03 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/81735
|
|
|
|
|
* trans-decl.c (gfc_trans_deferred_vars): Correct case where
|
|
|
|
|
'tmp' can be used unititialized.
|
|
|
|
|
|
2017-11-01 12:29:07 +01:00
|
|
|
|
2017-11-01 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backported from trunk
|
|
|
|
|
PR fortran/80554
|
|
|
|
|
* decl.c (build_sym): In a submodule allow overriding of host
|
|
|
|
|
associated symbols from the ancestor module with a new
|
|
|
|
|
declaration.
|
|
|
|
|
|
2017-11-01 10:33:26 +01:00
|
|
|
|
2017-11-01 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80850
|
|
|
|
|
* trans_expr.c (gfc_conv_procedure_call): When passing a class
|
|
|
|
|
argument to an unlimited polymorphic dummy, it is wrong to cast
|
|
|
|
|
the passed expression as unlimited, unless it is unlimited. The
|
|
|
|
|
correct way is to assign to each of the fields and set the _len
|
|
|
|
|
field to zero.
|
|
|
|
|
|
2017-10-28 16:56:06 +02:00
|
|
|
|
2017-10-28 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* check.c (gfc_check_co_reduce): Clarify error message.
|
|
|
|
|
|
2017-10-28 10:53:19 +02:00
|
|
|
|
2017-10-28 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backported from trunk
|
|
|
|
|
PR fortran/81758
|
|
|
|
|
* trans-expr.c (trans_class_vptr_len_assignment): 'vptr_expr'
|
|
|
|
|
must only be set if the right hand side expression is of type
|
|
|
|
|
class.
|
|
|
|
|
|
2017-10-21 19:09:43 +02:00
|
|
|
|
2017-10-21 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/82312
|
|
|
|
|
* resolve.c (gfc_resolve_code): Simplify condition for class
|
|
|
|
|
pointer assignments becoming regular assignments by asserting
|
|
|
|
|
that only class valued targets are permitted.
|
|
|
|
|
* trans-expr.c (trans_class_pointer_fcn): New function using a
|
|
|
|
|
block of code from gfc_trans_pointer_assignment.
|
|
|
|
|
(gfc_trans_pointer_assignment): Call the new function. Tidy up
|
|
|
|
|
a minor whitespace issue.
|
|
|
|
|
|
2017-10-20 20:01:36 +02:00
|
|
|
|
2017-10-20 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/79795
|
|
|
|
|
* resolve.c (resovle_symbol): Change gcc_assert to
|
|
|
|
|
sensible error message.
|
|
|
|
|
|
2017-10-16 21:44:04 +02:00
|
|
|
|
2017-10-16 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/52832
|
|
|
|
|
* match.c (gfc_match_associate): Before failing the association
|
|
|
|
|
try again, allowing a proc pointer selector.
|
|
|
|
|
|
|
|
|
|
PR fortran/80120
|
|
|
|
|
PR fortran/81903
|
|
|
|
|
PR fortran/82121
|
|
|
|
|
* primary.c (gfc_match_varspec): Introduce 'tgt_expr', which
|
|
|
|
|
points to the associate selector, if any. Go through selector
|
|
|
|
|
references, after resolution for variables, to catch any full
|
|
|
|
|
or section array references. If a class associate name does
|
|
|
|
|
not have the same declared type as the selector, resolve the
|
|
|
|
|
selector and copy the declared type to the associate name.
|
|
|
|
|
Before throwing a no implicit type error, resolve all allowed
|
|
|
|
|
selector expressions, and copy the resulting typespec.
|
|
|
|
|
|
|
|
|
|
PR fortran/67543
|
|
|
|
|
* resolve.c (resolve_assoc_var): Selector must cannot be the
|
|
|
|
|
NULL expression and it must have a type.
|
|
|
|
|
|
|
|
|
|
PR fortran/78152
|
|
|
|
|
* resolve.c (resolve_symbol): Allow associate names to be
|
|
|
|
|
coarrays.
|
|
|
|
|
|
2017-10-16 20:48:56 +02:00
|
|
|
|
2017-10-16 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/81048
|
|
|
|
|
* resolve.c (resolve_symbol): Ensure that derived type array
|
|
|
|
|
results get default initialization.
|
|
|
|
|
|
2017-10-03 17:50:45 +02:00
|
|
|
|
2017-10-03 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80118
|
|
|
|
|
* expr.c (gfc_get_full_arrayspec_from_expr): If there is
|
|
|
|
|
no symtree, set array spec to NULL.
|
|
|
|
|
|
2017-09-02 21:04:08 +02:00
|
|
|
|
2017-09-02 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/81770
|
|
|
|
|
* expr.c (gfc_check_pointer_assign): Improve the check whether pointer
|
|
|
|
|
may outlive pointer target.
|
|
|
|
|
|
2017-08-23 02:41:10 +02:00
|
|
|
|
2017-08-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/81296
|
|
|
|
|
* trans-io.c (get_dtio_proc): Add check for format label and set
|
|
|
|
|
formatted flag accordingly. Reorganize the code a little.
|
|
|
|
|
|
2017-08-18 23:36:50 +02:00
|
|
|
|
2017-08-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80164
|
|
|
|
|
* trans-stmt.c (gfc_trans_call): If no code expr, use code->loc
|
|
|
|
|
as warning/error locus.
|
|
|
|
|
|
2017-08-14 09:59:11 +02:00
|
|
|
|
2017-08-14 Release Manager
|
|
|
|
|
|
|
|
|
|
* GCC 7.2.0 released.
|
|
|
|
|
|
2017-06-09 19:45:53 +02:00
|
|
|
|
2017-06-09 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/70601
|
|
|
|
|
* trans-expr.c (gfc_conv_procedure_call): Fix detection of allocatable
|
|
|
|
|
function results.
|
|
|
|
|
|
2017-06-05 11:31:32 +02:00
|
|
|
|
2017-06-05 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80766
|
|
|
|
|
* resolve.c (resolve_fl_derived): Make sure that vtype symbols are
|
|
|
|
|
properly resolved.
|
|
|
|
|
|
2017-06-02 19:44:19 +02:00
|
|
|
|
2017-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/80904
|
|
|
|
|
* frontend-passes.c (matmul_lhs_realloc): Correct
|
|
|
|
|
allocation size for case A1B2.
|
|
|
|
|
|
2017-06-02 09:10:10 +02:00
|
|
|
|
2017-06-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/80918
|
|
|
|
|
* openmp.c (resolve_omp_clauses): Fix a typo.
|
|
|
|
|
|
2017-05-24 00:05:56 +02:00
|
|
|
|
2017-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80741
|
|
|
|
|
* trans-io.c (transfer_namelist_element): Change check from
|
|
|
|
|
NULL_TREE to null_pointer_node.
|
|
|
|
|
|
2017-05-23 23:39:41 +02:00
|
|
|
|
2017-05-23 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80333
|
|
|
|
|
* trans-io.c (nml_get_addr_expr): If we are dealing with class
|
|
|
|
|
type data set tmp tree to get that address.
|
|
|
|
|
(transfer_namelist_element): Set the array spec to point to the
|
|
|
|
|
the class data.
|
|
|
|
|
|
2017-05-17 20:09:48 +02:00
|
|
|
|
2017-05-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/78659
|
|
|
|
|
* io.c (dtio_procs_present): Add new function to check for DTIO
|
|
|
|
|
procedures relative to I/O statement READ or WRITE.
|
|
|
|
|
(gfc_resolve_dt): Add namelist checks using the new function.
|
|
|
|
|
* resolve.c (dtio_procs_present): Remove function and related
|
|
|
|
|
namelist checks. (resolve_fl_namelist): Add check specific to
|
|
|
|
|
Fortran 95 restriction on namelist objects.
|
|
|
|
|
|
2017-05-15 22:43:25 +02:00
|
|
|
|
2017-05-15 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80752
|
|
|
|
|
* expr.c (gfc_generate_initializer): If type conversion fails,
|
|
|
|
|
check for error and return NULL.
|
|
|
|
|
|
2017-05-05 23:00:53 +02:00
|
|
|
|
2017-05-05 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80121
|
|
|
|
|
* trans-expr.c (gfc_conv_procedure_call): Deallocate the components
|
|
|
|
|
of allocatable intent(out) arguments.
|
|
|
|
|
|
2017-05-05 22:09:20 +02:00
|
|
|
|
2017-05-05 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR fortran/80392
|
|
|
|
|
* trans-types.c (gfc_get_derived_type): Prevent an infinite loop when
|
|
|
|
|
building a derived type that includes a procedure pointer component
|
|
|
|
|
with a polymorphic result.
|
|
|
|
|
|
2017-05-04 20:45:50 +02:00
|
|
|
|
2017-05-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk.
|
|
|
|
|
PR fortran/80484
|
|
|
|
|
* io.c (format_lex): Check for '/' and set token to FMT_SLASH.
|
|
|
|
|
(check_format): Move FMT_DT checking code to data_desc section.
|
|
|
|
|
* module.c (gfc_match_use): Include the case of INTERFACE_DTIO.
|
|
|
|
|
|
2017-05-02 14:42:24 +02:00
|
|
|
|
2017-05-02 Release Manager
|
|
|
|
|
|
|
|
|
|
* GCC 7.1.0 released.
|
|
|
|
|
|
2017-04-17 20:22:03 +02:00
|
|
|
|
2017-04-17 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/80440
|
|
|
|
|
* module.c (find_symtree_for_symbol): Delete.
|
|
|
|
|
(read_module): Remove the call to the above.
|
|
|
|
|
|
2017-04-14 23:17:52 +02:00
|
|
|
|
2017-04-14 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/80361
|
|
|
|
|
* class.c (generate_finalization_wrapper): Give the finalization wrapper
|
|
|
|
|
the recursive attribute.
|
2017-04-10 22:58:21 +02:00
|
|
|
|
|
|
|
|
|
2017-04-10 Nicolas Koenig <koenigni@student.ethz.ch>
|
2017-04-17 20:22:03 +02:00
|
|
|
|
Paul Thomas <pault@gcc.gnu.org>
|
2017-04-10 22:58:21 +02:00
|
|
|
|
|
2017-04-17 20:22:03 +02:00
|
|
|
|
PR fortran/69498
|
2017-04-10 22:58:21 +02:00
|
|
|
|
* module.c (gfc_match_submodule): Add error
|
|
|
|
|
if function is called in the wrong state.
|
|
|
|
|
|
2017-04-10 22:28:23 +02:00
|
|
|
|
2017-04-10 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/80046
|
|
|
|
|
* expr.c (gfc_check_pointer_assign): Check if procedure pointer
|
|
|
|
|
components in a pointer assignment need an explicit interface.
|
|
|
|
|
|
2017-04-17 20:22:03 +02:00
|
|
|
|
2017-03-18 Nicolas Koenig <koenigni@student.ethz.ch>
|
2017-04-04 15:41:41 +02:00
|
|
|
|
|
|
|
|
|
PR fortran/69498
|
|
|
|
|
* symbol.c (gfc_delete_symtree): If there is a period in the name, ignore
|
|
|
|
|
everything before it.
|
|
|
|
|
|
2017-03-28 19:01:05 +02:00
|
|
|
|
2017-03-28 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78661
|
|
|
|
|
* trans-io.c (transfer_namelist_element): Perform a polymorphic call
|
|
|
|
|
to a DTIO procedure if necessary.
|
|
|
|
|
|
2017-03-25 18:38:17 +01:00
|
|
|
|
2017-03-25 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/80156
|
|
|
|
|
PR fortran/79382
|
|
|
|
|
* decl.c (access_attr_decl): Remove the error for an absent
|
|
|
|
|
generic DTIO interface and ensure that symbol has the flavor
|
|
|
|
|
FL_PROCEDURE.
|
|
|
|
|
|
2017-03-22 23:04:27 +01:00
|
|
|
|
2017-03-22 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR fortran/79838
|
|
|
|
|
* module.c: Remove trailing period.
|
|
|
|
|
|
2017-03-22 17:29:30 +01:00
|
|
|
|
2017-03-22 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR fortran/79602
|
|
|
|
|
* decl.c: Replace '%s' with %qs.
|
|
|
|
|
* expr.c: Likewise.
|
|
|
|
|
* interface.c: Likewise.
|
|
|
|
|
* match.c: Likewise.
|
|
|
|
|
* primary.c: Likewise.
|
|
|
|
|
* resolve.c: Likewise.
|
|
|
|
|
|
|
|
|
|
PR fortran/79844
|
|
|
|
|
PR fortran/80011
|
|
|
|
|
* io.c: Remove trailing spaces.
|
|
|
|
|
* match.c: Likewise.
|
|
|
|
|
* openmp.c: Likewise.
|
|
|
|
|
* resolve.c: Likewise.
|
|
|
|
|
* trans-intrinsic.c: Likewise.
|
|
|
|
|
|
|
|
|
|
PR fortran/79853
|
|
|
|
|
* expr.c: Remove a double spaces.
|
|
|
|
|
|
|
|
|
|
PR fortran/79859
|
|
|
|
|
* primary.c: Remove spurious quotes around %qs.
|
|
|
|
|
|
2017-03-22 16:20:17 +01:00
|
|
|
|
2017-03-22 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/80142
|
|
|
|
|
* frontend-passes.c (combine_array_constructor): Take
|
|
|
|
|
location of new expression from constructor expression instead
|
|
|
|
|
of constructor.
|
|
|
|
|
|
2017-03-22 20:12:24 +01:00
|
|
|
|
2017-03-20 Nicolas Koenig <koenigni@student.ethz.ch>
|
|
|
|
|
|
|
|
|
|
PR fortran/39239
|
|
|
|
|
* symbol.c (check_conflict): Report an error if an EQUIVALENCE
|
|
|
|
|
object is BIND(C)
|
2017-03-22 20:03:50 +01:00
|
|
|
|
|
|
|
|
|
2017-03-18 Nicolas Koenig <koenigni@student.ethz.ch>
|
|
|
|
|
|
|
|
|
|
PR fortran/69498
|
|
|
|
|
* decl.c (add_hidden_procptr_result): Fixed Refs count of the
|
|
|
|
|
created "ppr@" symbol.
|
|
|
|
|
|
2017-03-18 13:38:02 +01:00
|
|
|
|
2017-03-18 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79676
|
|
|
|
|
* module.c (mio_symbol_attribute): Remove reset of the flag
|
|
|
|
|
'no_module_procedures'.
|
|
|
|
|
(check_for_module_procedures): New function. Move declaration
|
|
|
|
|
of 'no_module_procedures' to above it.
|
|
|
|
|
(gfc_dump_module): Traverse namespace calling new function.
|
|
|
|
|
|
2017-03-18 12:53:53 +01:00
|
|
|
|
2017-03-18 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/71838
|
|
|
|
|
* symbol.c (check_conflict): A dummy procedure in a submodule,
|
|
|
|
|
module procedure is not an error.
|
|
|
|
|
(gfc_add_flavor): Ditto.
|
|
|
|
|
|
2017-03-17 19:21:08 +01:00
|
|
|
|
2017-03-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79841
|
|
|
|
|
* openmp.c (check_symbol_not_pointer): Adjust diagnostics.
|
|
|
|
|
|
2017-03-16 17:27:08 +01:00
|
|
|
|
2017-03-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2017-03-16 17:50:27 +01:00
|
|
|
|
PR fortran/80010
|
|
|
|
|
* parse.c (gfc_ascii_statement): Use !$ACC for ST_OACC_ATOMIC
|
|
|
|
|
and ST_OACC_END_ATOMIC, instead of !ACC.
|
|
|
|
|
* trans-decl.c (finish_oacc_declare): Use !$ACC instead of $!ACC.
|
|
|
|
|
* openmp.c (gfc_match_oacc_declare, gfc_match_oacc_wait,
|
|
|
|
|
gfc_resolve_oacc_declare): Likewise.
|
|
|
|
|
|
2017-03-16 17:27:08 +01:00
|
|
|
|
PR fortran/79886
|
|
|
|
|
* error.c (gfc_format_decoder): Rename plus argument to set_locus,
|
|
|
|
|
remove ATTRIBUTE_UNUSED from all arguments, call default_tree_printer
|
|
|
|
|
if not a Fortran specific spec.
|
|
|
|
|
* trans-io.c: Include options.h.
|
|
|
|
|
(gfc_build_st_parameter): Temporarily disable -Wpadded around layout
|
|
|
|
|
of artificial IO data structures.
|
|
|
|
|
|
2017-03-15 19:05:06 +01:00
|
|
|
|
2017-03-15 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/79860
|
|
|
|
|
* resolve.c (resolve_contained_fntype): Make error messages more
|
|
|
|
|
amenable to translation.
|
|
|
|
|
|
2017-03-06 13:48:54 +01:00
|
|
|
|
2017-03-06 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/79894
|
|
|
|
|
* trans.c (gfc_add_modify_loc): Weaken assert.
|
|
|
|
|
|
2017-03-05 12:35:47 +01:00
|
|
|
|
2017-03-05 Andre Vehreschild <vehre@gcc.gnu.org>,
|
|
|
|
|
Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* check.c (positive_check): Add new function checking constant for
|
|
|
|
|
being greater then zero.
|
|
|
|
|
(gfc_check_image_status): Add checking of image_status arguments.
|
|
|
|
|
(gfc_check_failed_or_stopped_images): Same but for failed_- and
|
|
|
|
|
stopped_images function.
|
|
|
|
|
* dump-parse-tree.c (show_code_node): Added output of FAIL IMAGE.
|
|
|
|
|
* gfortran.h (enum gfc_statement): Added FAIL_IMAGE_ST.
|
|
|
|
|
(enum gfc_isym_id): Added new intrinsic symbols.
|
|
|
|
|
(enum gfc_exec_op): Added EXEC_FAIL_IMAGE.
|
|
|
|
|
* gfortran.texi: Added description for the new API functions. Updated
|
|
|
|
|
coverage of gfortran of TS18508.
|
|
|
|
|
* intrinsic.c (add_functions): Added symbols to resolve new intrinsic
|
2017-03-18 12:53:53 +01:00
|
|
|
|
functions.
|
2017-03-05 12:35:47 +01:00
|
|
|
|
* intrinsic.h: Added prototypes.
|
|
|
|
|
* iresolve.c (gfc_resolve_failed_images): Resolve the failed_images
|
|
|
|
|
intrinsic.
|
|
|
|
|
(gfc_resolve_image_status): Same for image_status.
|
|
|
|
|
(gfc_resolve_stopped_images): Same for stopped_images.
|
|
|
|
|
* libgfortran.h: Added prototypes.
|
|
|
|
|
* match.c (gfc_match_if): Added matching of FAIL IMAGE statement.
|
|
|
|
|
(gfc_match_fail_image): Match a FAIL IMAGE statement.
|
|
|
|
|
* match.h: Added prototype.
|
|
|
|
|
* parse.c (decode_statement): Added matching for FAIL IMAGE.
|
|
|
|
|
(next_statement): Same.
|
|
|
|
|
(gfc_ascii_statement): Same.
|
|
|
|
|
* resolve.c: Same.
|
|
|
|
|
* simplify.c (gfc_simplify_failed_or_stopped_images): For COARRAY=
|
|
|
|
|
single a constant result can be returne.d
|
|
|
|
|
(gfc_simplify_image_status): For COARRAY=single the result is constant.
|
|
|
|
|
* st.c (gfc_free_statement): Added FAIL_IMAGE handling.
|
|
|
|
|
* trans-decl.c (gfc_build_builtin_function_decls): Added decls of the
|
|
|
|
|
new intrinsics.
|
|
|
|
|
* trans-expr.c (gfc_conv_procedure_call): This is first time all
|
|
|
|
|
arguments of a function are optional, which is now handled here
|
|
|
|
|
correctly.
|
|
|
|
|
* trans-intrinsic.c (conv_intrinsic_image_status): Translate
|
|
|
|
|
image_status.
|
|
|
|
|
(gfc_conv_intrinsic_function): Add support for image_status.
|
|
|
|
|
(gfc_is_intrinsic_libcall): Add support for the remaining new
|
|
|
|
|
intrinsics.
|
|
|
|
|
* trans-stmt.c (gfc_trans_fail_image): Trans a fail image.
|
|
|
|
|
* trans-stmt.h: Add the prototype for the above.
|
|
|
|
|
* trans.c (trans_code): Dispatch for fail_image.
|
|
|
|
|
* trans.h: Add the trees for the new intrinsics.
|
|
|
|
|
|
2017-03-04 04:13:34 +01:00
|
|
|
|
2017-03-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79841
|
|
|
|
|
* openmp.c (check_symbol_not_pointer): Adjust diagnostic.
|
|
|
|
|
|
2017-02-28 20:32:02 +01:00
|
|
|
|
2017-02-28 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79739
|
|
|
|
|
* resolve.c (resolve_fl_procedure): Deal with the case where
|
|
|
|
|
'submodule_name' is NULL so that gfc_error does not ICE.
|
|
|
|
|
Reformat the error message to make it more consistent.
|
|
|
|
|
|
2017-02-28 16:25:19 +01:00
|
|
|
|
2017-02-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parse.c (parse_critical_block): Use cond ? G_("...") : G_("...")
|
|
|
|
|
instead of just cond ? "..." : "...".
|
|
|
|
|
* scanner.c (gfc_next_char_literal): Likewise.
|
|
|
|
|
* match.c (match_exit_cycle): Likewise.
|
|
|
|
|
|
2017-02-26 14:22:43 +01:00
|
|
|
|
2017-02-26 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/51119
|
|
|
|
|
* options.c (gfc_post_options): Set default limit for matmul
|
|
|
|
|
inlining to 30.
|
|
|
|
|
* invoke.texi: Document change.
|
|
|
|
|
|
2017-02-25 00:40:42 +01:00
|
|
|
|
2017-02-25 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR fortran/79601
|
|
|
|
|
* interface.c (check_dtio_arg_TKR_intent): Change 'intent'
|
|
|
|
|
to 'INTENT'.
|
|
|
|
|
|
|
|
|
|
2017-02-25 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR fortran/79597
|
|
|
|
|
* interface.c (gfc_match_end_interface): Remove spurious comma
|
|
|
|
|
and space, replace 'got %s' with 'got %qs'.
|
|
|
|
|
|
2017-02-20 15:17:42 +01:00
|
|
|
|
2017-02-20 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79599
|
|
|
|
|
* interface.c (check_dtio_arg_TKR_intent): Supply 'must'
|
|
|
|
|
missing from error message.
|
|
|
|
|
|
|
|
|
|
2017-02-20 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79523
|
|
|
|
|
* interface.c (gfc_find_typebound_dtio_proc): Guard test for
|
|
|
|
|
flavor attribute by checking that symbol is resolved.
|
|
|
|
|
|
2017-02-20 11:52:50 +01:00
|
|
|
|
2017-02-16 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79382
|
|
|
|
|
* decl.c (access_attr_decl): Test for presence of generic DTIO
|
|
|
|
|
interface and emit error if not present.
|
|
|
|
|
|
2017-02-20 10:42:48 +01:00
|
|
|
|
2017-02-20 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79434
|
|
|
|
|
* parse.c (check_component, parse_union): Whitespace.
|
|
|
|
|
(set_syms_host_assoc): For a derived type, check if the module
|
|
|
|
|
in which it was declared is one of the submodule ancestors. If
|
|
|
|
|
it is, make the components public. Otherwise, reset attribute
|
|
|
|
|
'host_assoc' and set 'use-assoc' so that encapsulation is
|
|
|
|
|
preserved.
|
|
|
|
|
|
2017-02-19 20:59:20 +01:00
|
|
|
|
2017-02-19 Paul Thomas <pault@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79447
|
|
|
|
|
* decl.c (gfc_set_constant_character_len): Whitespace.
|
|
|
|
|
(gfc_match_end): Catch case where a procedure is contained in
|
|
|
|
|
a module procedure and ensure that 'end procedure' is the
|
|
|
|
|
correct termination.
|
|
|
|
|
|
|
|
|
|
2017-02-19 Paul Thomas <pault@gcc.gnu.org>
|
2017-02-19 19:27:14 +01:00
|
|
|
|
|
|
|
|
|
PR fortran/79402
|
|
|
|
|
* resolve.c (fixup_unique_dummy): New function.
|
|
|
|
|
(gfc_resolve_expr): Call it for dummy variables with a unique
|
|
|
|
|
symtree name.
|
|
|
|
|
|
2017-02-19 19:43:49 +01:00
|
|
|
|
2017-02-19 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79229
|
|
|
|
|
* trans-expr.c (gfc_trans_assignment_1): Deref indirect refs when
|
|
|
|
|
compiling with -fcheck=mem to check the pointer and not the data.
|
|
|
|
|
|
2017-02-19 19:18:33 +01:00
|
|
|
|
2017-02-19 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79335
|
|
|
|
|
* trans-array.c (duplicate_allocatable_coarray): Ensure attributes
|
|
|
|
|
passed are properly initialized.
|
|
|
|
|
(structure_alloc_comps): Same.
|
|
|
|
|
* trans-expr.c (gfc_trans_structure_assign): Same.
|
|
|
|
|
|
2017-02-13 22:56:13 +01:00
|
|
|
|
2017-02-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* trans-expr.c (gfc_conv_substring): Add missing space in diagnostics.
|
|
|
|
|
|
2017-02-12 17:10:22 +01:00
|
|
|
|
2017-02-12 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/65542
|
|
|
|
|
* intrinsic.c (gfc_intrinsic_func_interface): Return an error
|
|
|
|
|
for -std=f95 for disallowed transformational functions in
|
|
|
|
|
initialization expressions.
|
|
|
|
|
|
gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE.
2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Chung-Lin Tang <cltang@codesourcery.com>
gcc/
* gimplify.c (gimplify_scan_omp_clauses): No special handling for
OMP_CLAUSE_TILE.
(gimplify_adjust_omp_clauses): Don't delete TILE.
(gimplify_omp_for): Deal with TILE.
* internal-fn.c (expand_GOACC_TILE): New function.
* internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
(GOACC_TILE): New.
* omp-expand.c (struct oacc_collapse): Add tile and outer fields.
(expand_oacc_collapse_init): Add LOC paramter. Initialize tile
element fields.
(expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
avoid DIV for outermost collapse var.
(expand_oacc_for): Insert tile element loop as needed. Adjust.
Remove out of date comments, fix whitespace.
* omp-general.c (omp_extract_for_data): Deal with tiling.
* omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
adjust OLF_DIM_BASE value.
(struct omp_for_data): Add tiling field.
* omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
(lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
for auto loops. Remove default auto determining, moved to
oacc_loop_fixed_partitions.
* omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
stmts, add e_mask field.
(oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
(oacc_thread_numbers): Use oacc_dim_call.
(oacc_xform_tile): New.
(new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
(finish_oacc_loop): Adjust for ifns vector.
(oacc_loop_discover_walk): Append loop abstraction sites to list,
add case for GOACC_TILE fns.
(oacc_loop_xform_loop): Delete.
(oacc_loop_process): Iterate over call list directly, and add
handling for GOACC_TILE fns.
(oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
dump partitioning.
(oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
vector partitioning to outer loops. Assign 2 partitions to loops
when available. Add TILE handling.
(oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
(execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
* tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
* tree.c (omp_clause_num_ops): Adjust TILE ops.
* tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
gcc/c/
* c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
(c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
semantic checking.
* c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.
gcc/cp/
* parser.c (cp_parser_oacc_clause_tile): Disallow collapse. Fix
parsing. Parse constant expression. Remove semantic checking.
(cp_parser_omp_clause_collapse): Disallow tile.
(cp_parser_omp_for_loop): Deal with tile clause. Don't emit a parse
error about missing for after already emitting one. Use more
conventional for idiom for unbounded loop.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_TILE.
* semantics.c (finish_omp_clauses): Correct TILE semantic check.
(finish_omp_for): Deal with tile clause.
gcc/fortran/
* openmp.c (resolve_omp_clauses): Error on directives
containing both tile and collapse clauses.
(resolve_oacc_loop_blocks): Represent '*' tile arguments as zero.
* trans-openmp.c (gfc_trans_omp_do): Lower tiled loops like
collapsed loops.
gcc/testsuite/
* c-c++-common/goacc/combined-directives.c: Remove xfail.
* c-c++-common/goacc/loop-auto-1.c: Adjust and add additional case.
* c-c++-common/goacc/loop-auto-2.c: New.
* c-c++-common/goacc/tile.c: Include stdbool, fix expected errors.
* c-c++-common/goacc/tile-2.c: New.
* g++.dg/goacc/template.C: Test tile subst. Adjust erroneous uses.
* g++.dg/goacc/tile-1.C: New, check tile subst.
* gcc.dg/goacc/loop-processing-1.c: Adjust dg-final pattern.
* gfortran.dg/goacc/combined-directives.f90: Remove xfail.
* gfortran.dg/goacc/tile-1.f90: New test.
* gfortran.dg/goacc/tile-2.f90: New test.
* gfortran.dg/goacc/tile-lowering.f95: New test.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
add additional case.
* testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
"openacc_nvidia_accel_selected".
* libgomp.oacc-fortran/nested-function-1.f90 (test2):
Add num_workers(8) clause.
From-SVN: r245300
2017-02-09 14:46:20 +01:00
|
|
|
|
2017-02-09 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* openmp.c (resolve_omp_clauses): Error on directives
|
|
|
|
|
containing both tile and collapse clauses.
|
|
|
|
|
(resolve_oacc_loop_blocks): Represent '*' tile arguments as zero.
|
|
|
|
|
* trans-openmp.c (gfc_trans_omp_do): Lower tiled loops like
|
|
|
|
|
collapsed loops.
|
|
|
|
|
|
2017-02-07 22:28:08 +01:00
|
|
|
|
2017-02-07 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* trans-types.c (gfc_get_int_kind_from_width_isofortranen): Choose
|
|
|
|
|
REAL type with the widest precision if two (or more) have the same
|
|
|
|
|
storage size.
|
|
|
|
|
|
2017-02-05 16:43:03 +01:00
|
|
|
|
2017-02-05 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79344
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Only deallocate the components of
|
|
|
|
|
the temporary, when a new object was created for the temporary. Not
|
|
|
|
|
when it is just an alias to an existing object.
|
|
|
|
|
|
2017-02-05 14:05:10 +01:00
|
|
|
|
2017-02-05 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79335
|
|
|
|
|
* trans-decl.c (generate_coarray_sym_init): Retrieve the symbol's
|
|
|
|
|
attributes before using them.
|
|
|
|
|
|
2017-02-05 13:42:31 +01:00
|
|
|
|
2017-02-05 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78958
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Add the multiplying the _len
|
|
|
|
|
component of unlimited polymorphic objects when source-allocating.
|
|
|
|
|
|
2017-02-05 13:02:15 +01:00
|
|
|
|
2017-02-05 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/79230
|
|
|
|
|
* trans-array.c (structure_alloc_comps): Ignore pointer components when
|
|
|
|
|
freeing structures.
|
|
|
|
|
|
2017-01-25 08:45:40 +01:00
|
|
|
|
2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
|
|
|
|
|
|
|
|
|
|
PR lto/79061
|
|
|
|
|
* f95-lang.c (gfc_create_decls): Include stringpool.h.
|
|
|
|
|
Pass main_input_filename to build_translation_unit_decl.
|
|
|
|
|
|
2017-01-23 20:43:28 +01:00
|
|
|
|
2017-01-23 Thomas Koenig <tkoenig@netcologne.de>
|
|
|
|
|
|
|
|
|
|
* arith.c (arith_power): If simplifying integer power expression
|
|
|
|
|
to zero, warn if -Winteger-division is given.
|
|
|
|
|
|
2017-01-22 20:36:57 +01:00
|
|
|
|
2017-01-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/79154
|
|
|
|
|
* parse.c (matchs, matcho, matchds, matchdo): Replace return st;
|
|
|
|
|
with { ret = st; goto finish; }.
|
|
|
|
|
(decode_omp_directive): Allow declare simd, declare target and
|
|
|
|
|
simd directives in PURE/ELEMENTAL procedures. Only call
|
|
|
|
|
gfc_unset_implicit_pure on successful match of other procedures.
|
|
|
|
|
|
2017-01-21 21:37:01 +01:00
|
|
|
|
2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* gfc-internals.texi (Symbol Versioning): Change references
|
|
|
|
|
to www.akkadia.org to https.
|
|
|
|
|
|
gfortran.h (gfc_extract_int): Change return type to bool.
* gfortran.h (gfc_extract_int): Change return type to bool. Add
int argument with = 0.
* decl.c (gfc_match_kind_spec): Adjust gfc_extract_int caller, pass
1 as new last argument to it, don't emit gfc_error.
(match_char_kind): Likewise.
(gfc_match_decl_type_spec): Use gfc_get_string ("%s", x) instead of
gfc_get_string (x).
(gfc_match_derived_decl, match_binding_attributes): Likewise.
(gfc_match_structure_decl): Don't sprintf back to name, call
get_struct_decl directly with gfc_dt_upper_string (name) result.
* trans-stmt.c (gfc_trans_allocate): Use gfc_get_string ("%s", x)
instead of gfc_get_string (x).
* module.c (gfc_dt_lower_string, gfc_dt_upper_string,
gfc_match_use, gfc_match_submodule, find_true_name, mio_pool_string,
mio_symtree_ref, mio_expr, mio_omp_udr_expr, load_generic_interfaces,
load_omp_udrs, load_needed, read_module, dump_module,
create_intrinsic_function, import_iso_c_binding_module,
create_int_parameter, create_int_parameter_array, create_derived_type,
use_iso_fortran_env_module): Likewise.
* error.c (gfc_diagnostic_starter, gfc_diagnostic_start_span): Use
pp_verbatim (context->printer, "%s", x) instead of
pp_verbatim (context->printer, x).
* match.c (gfc_match_small_int): Adjust gfc_extract_int caller, pass
1 as new last argument to it, don't emit gfc_error.
(gfc_match_small_int_expr): Likewise.
* iresolve.c (gfc_get_string): Optimize format "%s" case.
(resolve_bound): Use gfc_get_string ("%s", x) instead of
gfc_get_string (x).
(resolve_transformational): Formatting fix.
(gfc_resolve_char_achar): Change name argument to bool is_achar,
use a single format string and if is_achar add "a" before "char".
(gfc_resolve_achar, gfc_resolve_char): Adjust callers.
* expr.c (gfc_extract_int): Change return type to bool, return true
if some error occurred. Add REPORT_ERROR argument, if non-zero
call either gfc_error or gfc_error_now depending on its sign.
* arith.c (arith_power): Adjust gfc_extract_int caller.
* symbol.c (gfc_add_component): Use gfc_get_string ("%s", x) instead
of gfc_get_string (x).
(gfc_new_symtree, gfc_delete_symtree, gfc_get_uop, gfc_new_symbol,
gfc_get_gsymbol, generate_isocbinding_symbol): Likewise.
* openmp.c (gfc_match_omp_clauses): Adjust gfc_extract_int caller, pass
-1 as new last argument to it, don't emit gfc_error_now.
(gfc_match_omp_declare_reduction): Use gfc_get_string ("%s", x)
instead of gfc_get_string (x).
* check.c (kind_check): Adjust gfc_extract_int caller.
* intrinsic.c (add_sym, find_sym, make_alias): Use
gfc_get_string ("%s", x) instead of gfc_get_string (x).
* simplify.c (get_kind, gfc_simplify_btest, gfc_simplify_maskr,
gfc_simplify_maskl, gfc_simplify_poppar, gfc_simplify_repeat,
gfc_simplify_selected_int_kind, gfc_simplify_selected_real_kind):
Adjust gfc_extract_int callers.
* trans-decl.c (gfc_find_module): Use gfc_get_string ("%s", x)
instead of gfc_get_string (x).
* matchexp.c (expression_syntax): Add const.
* primary.c (match_kind_param, match_hollerith_constant,
match_string_constant): Adjust gfc_extract_int callers.
(match_keyword_arg): Use gfc_get_string ("%s", x) instead of
gfc_get_string (x).
* frontend-passes.c (optimize_minmaxloc): Likewise.
From-SVN: r244744
2017-01-21 11:30:54 +01:00
|
|
|
|
2017-01-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* gfortran.h (gfc_extract_int): Change return type to bool. Add
|
|
|
|
|
int argument with = 0.
|
|
|
|
|
* decl.c (gfc_match_kind_spec): Adjust gfc_extract_int caller, pass
|
|
|
|
|
1 as new last argument to it, don't emit gfc_error.
|
|
|
|
|
(match_char_kind): Likewise.
|
|
|
|
|
(gfc_match_decl_type_spec): Use gfc_get_string ("%s", x) instead of
|
|
|
|
|
gfc_get_string (x).
|
|
|
|
|
(gfc_match_derived_decl, match_binding_attributes): Likewise.
|
|
|
|
|
(gfc_match_structure_decl): Don't sprintf back to name, call
|
|
|
|
|
get_struct_decl directly with gfc_dt_upper_string (name) result.
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Use gfc_get_string ("%s", x)
|
|
|
|
|
instead of gfc_get_string (x).
|
|
|
|
|
* module.c (gfc_dt_lower_string, gfc_dt_upper_string,
|
|
|
|
|
gfc_match_use, gfc_match_submodule, find_true_name, mio_pool_string,
|
|
|
|
|
mio_symtree_ref, mio_expr, mio_omp_udr_expr, load_generic_interfaces,
|
|
|
|
|
load_omp_udrs, load_needed, read_module, dump_module,
|
|
|
|
|
create_intrinsic_function, import_iso_c_binding_module,
|
|
|
|
|
create_int_parameter, create_int_parameter_array, create_derived_type,
|
|
|
|
|
use_iso_fortran_env_module): Likewise.
|
|
|
|
|
* error.c (gfc_diagnostic_starter, gfc_diagnostic_start_span): Use
|
|
|
|
|
pp_verbatim (context->printer, "%s", x) instead of
|
|
|
|
|
pp_verbatim (context->printer, x).
|
|
|
|
|
* match.c (gfc_match_small_int): Adjust gfc_extract_int caller, pass
|
|
|
|
|
1 as new last argument to it, don't emit gfc_error.
|
|
|
|
|
(gfc_match_small_int_expr): Likewise.
|
|
|
|
|
* iresolve.c (gfc_get_string): Optimize format "%s" case.
|
|
|
|
|
(resolve_bound): Use gfc_get_string ("%s", x) instead of
|
|
|
|
|
gfc_get_string (x).
|
|
|
|
|
(resolve_transformational): Formatting fix.
|
|
|
|
|
(gfc_resolve_char_achar): Change name argument to bool is_achar,
|
|
|
|
|
use a single format string and if is_achar add "a" before "char".
|
|
|
|
|
(gfc_resolve_achar, gfc_resolve_char): Adjust callers.
|
|
|
|
|
* expr.c (gfc_extract_int): Change return type to bool, return true
|
|
|
|
|
if some error occurred. Add REPORT_ERROR argument, if non-zero
|
|
|
|
|
call either gfc_error or gfc_error_now depending on its sign.
|
|
|
|
|
* arith.c (arith_power): Adjust gfc_extract_int caller.
|
|
|
|
|
* symbol.c (gfc_add_component): Use gfc_get_string ("%s", x) instead
|
|
|
|
|
of gfc_get_string (x).
|
|
|
|
|
(gfc_new_symtree, gfc_delete_symtree, gfc_get_uop, gfc_new_symbol,
|
|
|
|
|
gfc_get_gsymbol, generate_isocbinding_symbol): Likewise.
|
|
|
|
|
* openmp.c (gfc_match_omp_clauses): Adjust gfc_extract_int caller, pass
|
|
|
|
|
-1 as new last argument to it, don't emit gfc_error_now.
|
|
|
|
|
(gfc_match_omp_declare_reduction): Use gfc_get_string ("%s", x)
|
|
|
|
|
instead of gfc_get_string (x).
|
|
|
|
|
* check.c (kind_check): Adjust gfc_extract_int caller.
|
|
|
|
|
* intrinsic.c (add_sym, find_sym, make_alias): Use
|
|
|
|
|
gfc_get_string ("%s", x) instead of gfc_get_string (x).
|
|
|
|
|
* simplify.c (get_kind, gfc_simplify_btest, gfc_simplify_maskr,
|
|
|
|
|
gfc_simplify_maskl, gfc_simplify_poppar, gfc_simplify_repeat,
|
|
|
|
|
gfc_simplify_selected_int_kind, gfc_simplify_selected_real_kind):
|
|
|
|
|
Adjust gfc_extract_int callers.
|
|
|
|
|
* trans-decl.c (gfc_find_module): Use gfc_get_string ("%s", x)
|
|
|
|
|
instead of gfc_get_string (x).
|
|
|
|
|
* matchexp.c (expression_syntax): Add const.
|
|
|
|
|
* primary.c (match_kind_param, match_hollerith_constant,
|
|
|
|
|
match_string_constant): Adjust gfc_extract_int callers.
|
|
|
|
|
(match_keyword_arg): Use gfc_get_string ("%s", x) instead of
|
|
|
|
|
gfc_get_string (x).
|
|
|
|
|
* frontend-passes.c (optimize_minmaxloc): Likewise.
|
|
|
|
|
|
2017-01-19 16:52:32 +01:00
|
|
|
|
2017-01-19 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70696
|
|
|
|
|
* trans-decl.c (gfc_build_qualified_array): Add static decl to parent
|
|
|
|
|
function only, when the decl-context is not the translation unit.
|
|
|
|
|
|
2017-01-18 22:41:48 +01:00
|
|
|
|
2017-01-18 Louis Krupp <louis.krupp@zoho.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/50069
|
|
|
|
|
PR fortran/55086
|
|
|
|
|
* trans-expr.c (gfc_conv_variable): Don't treat temporary variables
|
|
|
|
|
as function arguments.
|
|
|
|
|
* trans-stmt.c (forall_make_variable_temp,
|
|
|
|
|
generate_loop_for_temp_to_lhs, gfc_trans_assign_need_temp,
|
|
|
|
|
gfc_trans_forall_1): Don't adjust offset of forall temporary
|
|
|
|
|
for array sections, make forall temporaries work for substring
|
|
|
|
|
expressions, improve test coverage by adding -ftest-forall-temp
|
|
|
|
|
option to request usage of temporary array in forall code.
|
|
|
|
|
* lang.opt: Add -ftest-forall-temp option.
|
|
|
|
|
* invoke.texi: Add -ftest-forall-temp option.
|
|
|
|
|
|
2017-01-18 20:03:21 +01:00
|
|
|
|
2017-01-18 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* primary.c (caf_variable_attr): Improve figuring whether the current
|
|
|
|
|
component is the last one refed.
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): Do not generate sync_all calls
|
|
|
|
|
when allocating pointer or allocatable components.
|
|
|
|
|
|
2017-01-18 19:37:57 +01:00
|
|
|
|
2017-01-18 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* gfortran.texi: Add missing parameters to caf-API functions. Correct
|
|
|
|
|
typos and clarify some descriptions.
|
|
|
|
|
|
|
|
|
|
2017-01-18 Andre Vehreschild <vehre@gcc.gnu.org>
|
2017-01-18 19:35:41 +01:00
|
|
|
|
|
|
|
|
|
PR fortran/70696
|
|
|
|
|
Missed some cases, here they are:
|
|
|
|
|
* trans-decl.c (gfc_build_qualified_array): Add static tokens to the
|
|
|
|
|
parent function's scope.
|
|
|
|
|
* trans-expr.c (gfc_get_tree_for_caf_expr): Shorten code. Remove
|
|
|
|
|
unnecessary assert.
|
|
|
|
|
|
2017-01-13 11:39:52 +01:00
|
|
|
|
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70697
|
|
|
|
|
* resolve.c (resolve_lock_unlock_event): Resolve the expression for
|
|
|
|
|
event's until_count.
|
|
|
|
|
|
2017-01-13 11:22:21 +01:00
|
|
|
|
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/70696
|
|
|
|
|
* trans-expr.c (gfc_get_tree_for_caf_expr): Ensure the backend_decl
|
|
|
|
|
is valid before accessing it.
|
|
|
|
|
|
2017-01-09 22:48:33 +01:00
|
|
|
|
2017-01-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR translation/79019
|
|
|
|
|
PR translation/79020
|
|
|
|
|
* decl.c (attr_decl1): Fix spelling in translatable string.
|
|
|
|
|
* intrinsic.texi: Fix spelling - invokation -> invocation.
|
|
|
|
|
* lang.opt (faggressive-function-elimination, gfc_convert): Fix
|
|
|
|
|
typos in descriptions.
|
|
|
|
|
* openmp.c (resolve_omp_clauses): Add missing whitespace to
|
|
|
|
|
translatable strings.
|
|
|
|
|
|
2017-01-09 00:42:09 +01:00
|
|
|
|
2017-01-08 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/78913
|
|
|
|
|
PR middle-end/77708
|
|
|
|
|
* trans-common.c (build_equiv_decl): Increase buffer size to avoid
|
|
|
|
|
truncation for any argument.
|
|
|
|
|
* trans-types.c (gfc_build_logical_type): Same.
|
|
|
|
|
|
2017-01-07 18:26:58 +01:00
|
|
|
|
2017-01-07 Andre Vehreschild <vehre@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78781
|
|
|
|
|
PR fortran/78935
|
|
|
|
|
* expr.c (gfc_check_pointer_assign): Return the same error message for
|
|
|
|
|
rewritten coarray pointer assignments like for plain ones.
|
|
|
|
|
* gfortran.h: Change prototype.
|
|
|
|
|
* primary.c (caf_variable_attr): Set attributes used ones only only
|
|
|
|
|
ones. Add setting of pointer_comp attribute.
|
|
|
|
|
(gfc_caf_attr): Add setting of pointer_comp attribute.
|
|
|
|
|
* trans-array.c (gfc_array_allocate): Add flag that the component to
|
|
|
|
|
allocate is not an ultimate coarray component. Add allocation of
|
|
|
|
|
pointer arrays.
|
|
|
|
|
(structure_alloc_comps): Extend nullify to treat pointer components in
|
|
|
|
|
coarrays correctly. Restructure nullify to remove redundant code.
|
|
|
|
|
(gfc_nullify_alloc_comp): Allow setting caf_mode flags.
|
|
|
|
|
* trans-array.h: Change prototype of gfc_nullify_alloc_comp ().
|
|
|
|
|
* trans-decl.c (generate_coarray_sym_init): Call nullify_alloc_comp for
|
|
|
|
|
derived type coarrays with pointer components.
|
|
|
|
|
* trans-expr.c (gfc_trans_structure_assign): Also treat pointer
|
|
|
|
|
components.
|
|
|
|
|
(trans_caf_token_assign): Handle assignment of token of scalar pointer
|
|
|
|
|
components.
|
|
|
|
|
(gfc_trans_pointer_assignment): Call above routine.
|
|
|
|
|
* trans-intrinsic.c (conv_expr_ref_to_caf_ref): Add treating pointer
|
|
|
|
|
components.
|
|
|
|
|
(gfc_conv_intrinsic_caf_get): Likewise.
|
|
|
|
|
(conv_caf_send): Likewise.
|
|
|
|
|
* trans-stmt.c (gfc_trans_allocate): After allocating a derived type in
|
|
|
|
|
a coarray pre-register the tokens.
|
|
|
|
|
(gfc_trans_deallocate): Simply determining the coarray type (scalar or
|
|
|
|
|
array) and deregistering it correctly.
|
|
|
|
|
* trans-types.c (gfc_typenode_for_spec): Replace in_coarray flag by the
|
|
|
|
|
actual codim to allow lookup of array types in the cache.
|
|
|
|
|
(gfc_build_array_type): Likewise.
|
|
|
|
|
(gfc_get_array_descriptor_base): Likewise.
|
|
|
|
|
(gfc_get_array_type_bounds): Likewise.
|
|
|
|
|
(gfc_get_derived_type): Likewise.
|
|
|
|
|
* trans-types.h: Likewise.
|
|
|
|
|
* trans.c (gfc_deallocate_with_status): Enable deregistering of all kind
|
|
|
|
|
of coarray components.
|
|
|
|
|
(gfc_deallocate_scalar_with_status): Use free() in fcoarray_single mode
|
|
|
|
|
instead of caf_deregister.
|
|
|
|
|
|
2017-01-06 19:41:23 +01:00
|
|
|
|
2017-01-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* simplify.c (simplify_transformation_to_array): Use
|
|
|
|
|
GCC_DIAGNOSTIC_PUSH_IGNORED and GCC_DIAGNOSTIC_POP instead of
|
|
|
|
|
#pragma GCC diagnostic {push,ignored,pop}.
|
|
|
|
|
|
[bootstrap-O3,fortran] silence warning in simplify_transformation_to_array
simplify_transformation_to_array had the nested loop unrolled 7 times,
which is reasonable given that it iterates over arrays of size
GFC_MAX_DIMENSIONS == 7.
The problem is that the last iteration increments the index, tests
that it's less than result->rank, and then accesses the arrays with
the incremented index.
We did not optimize out that part in the 7th iteration, so VRP flagged
the unreachable code as accessing arrays past the end.
It couldn't possibly know that we'd never reach that part, since the
test was on result->rank, and it's not obvious (for the compiler) that
result->rank <= GFC_MAX_DIMENSIONS.
Even an assert to that effect before the enclosing loop didn't avoid
the warning turned to error, though; I suppose there might be some
aliasing at play, because moving the assert into the loop does. An
assert on the index itself would also work, even more efficiently, but
we're just silencing the warning instead.
for gcc/fortran/ChangeLog
* simplify.c (simplify_transformation_to_array): Silence
array bounds warning. Fix whitespace.
From-SVN: r244122
2017-01-06 04:34:37 +01:00
|
|
|
|
2017-01-06 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* simplify.c (simplify_transformation_to_array): Silence
|
|
|
|
|
array bounds warning. Fix whitespace.
|
|
|
|
|
|
2017-01-05 02:46:01 +01:00
|
|
|
|
2017-01-04 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* module.c (load_omp_udrs): Initialize name.
|
|
|
|
|
|
2017-01-02 21:00:18 +01:00
|
|
|
|
2017-01-02 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/78534
|
|
|
|
|
* trans-expr.c (gfc_trans_string_copy): Rework string copy
|
|
|
|
|
algorithm to avoid -Wstringop-overflow warning.
|
|
|
|
|
|
2017-01-01 12:31:28 +01:00
|
|
|
|
2017-01-01 Jakub Jelinek <jakub@redhat.com>
|
2016-01-04 15:30:50 +01:00
|
|
|
|
|
2017-01-01 13:07:43 +01:00
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2015-01-05 13:05:46 +01:00
|
|
|
|
* gfortranspec.c (lang_specific_driver): Update copyright notice
|
|
|
|
|
dates.
|
|
|
|
|
* gfc-internals.texi: Bump @copying's copyright year.
|
|
|
|
|
* gfortran.texi: Ditto.
|
|
|
|
|
* intrinsic.texi: Ditto.
|
|
|
|
|
* invoke.texi: Ditto.
|
2016-01-04 14:03:35 +01:00
|
|
|
|
|
2017-01-01 12:31:28 +01:00
|
|
|
|
Copyright (C) 2017 Free Software Foundation, Inc.
|
ABOUT-GCC-NLS, [...]: Add copyright and license notices.
* ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
config/alpha/x-vms, config/arc/t-arc,
config/arm/README-interworking, config/arm/arm-c.c,
config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
config/cris/t-elfmulti, config/crx/t-crx,
config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
config/h8300/t-h8300, config/i386/athlon.md,
config/i386/darwin-libgcc.10.4.ver,
config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
config/i386/t-linux64, config/i386/t-nwld,
config/i386/t-rtems-i386, config/i386/t-sol2-10,
config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
config/iq2000/t-iq2000, config/libgcc-glibc.ver,
config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
config/m32r/t-m32r, config/m68hc11/t-m68hc11,
config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
config/m68k/t-uclinux, config/mcore/t-mcore,
config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
config/mips/crtn.asm, config/mips/irix-crti.asm,
config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
config/mips/mips-fixed.md, config/mips/sb1.md,
config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
config/mips/t-iris6, config/mips/t-isa3264,
config/mips/t-libgcc-mips16, config/mips/t-linux64,
config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
config/mn10300/t-linux, config/mn10300/t-mn10300,
config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
config/picochip/libgccExtras/clzsi2.asm,
config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
config/rs6000/darwin-libgcc.10.4.ver,
config/rs6000/darwin-libgcc.10.5.ver,
config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
config/rs6000/t-aix43, config/rs6000/t-aix52,
config/rs6000/t-darwin, config/rs6000/t-fprules,
config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
config/rs6000/t-lynx, config/rs6000/t-netbsd,
config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
config/rs6000/t-rtems, config/rs6000/t-spe,
config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
config/score/t-score-elf, config/sh/divcost-analysis,
config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
config/stormy16/stormy-abi, config/stormy16/t-stormy16,
config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
limitx.h, version.c, xcoff.h: Add copyright and license notices.
* config/h8300/genmova.sh: Include copyright and license notices
in generated output.
* config/h8300/mova.md: Regenerate.
* doc/install.texi2html: Include word "Copyright" in copyright
notice and use name "Free Software Foundation, Inc.".
* ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
ChangeLog-2007, ChangeLog-2008: Correct dates.
ada:
* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
license notices.
cp:
* ChangeLog, ChangeLog-1993, ChangeLog-1994, ChangeLog-1995,
ChangeLog-1996, ChangeLog-1997, ChangeLog-1998, ChangeLog-1999,
ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003,
ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, NEWS,
cfns.gperf: Add copyright and license notices.
* cfns.h: Regenerate.
* ChangeLog, ChangeLog-2004: Correct dates.
fortran:
* ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
copyright and license notices.
* ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
ChangeLog-2008: Correct dates.
java:
* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
license notices.
objc:
* ChangeLog: Add copyright and license notices.
objcp:
* ChangeLog: Add copyright and license notices.
po:
* ChangeLog, EXCLUDES: Add copyright and license notices.
testsuite:
* ChangeLog, ChangeLog-1993-2007, ChangeLog-2008, ChangeLog.ptr,
ChangeLog.tree-ssa, README, README.QMTEST, README.compat,
README.gcc, g++.dg/README, g++.dg/compat/break/README,
g++.dg/gomp/gomp.exp, g++.old-deja/g++.brendan/README,
g++.old-deja/g++.oliva/ChangeLog, g++.old-deja/g++.robertl/README,
gcc.c-torture/ChangeLog.0,
gcc.c-torture/execute/builtins/builtins.exp, gcc.dg/README,
gcc.dg/gomp/gomp.exp, gcc.target/frv/frv.exp,
gcc.target/i386/math-torture/math-torture.exp,
gcc.target/mips/inter/mips16-inter.exp,
gcc.target/mips/mips-nonpic/README,
gcc.target/x86_64/abi/README.gcc,
gcc.target/xstormy16/xstormy16.exp, gcc.test-framework/README,
gfortran.dg/g77/README, gfortran.dg/gomp/gomp.exp,
gfortran.fortran-torture/ChangeLog.g95: Add copyright and license
notices.
* ChangeLog-1993-2007, ChangeLog: Correct dates.
From-SVN: r146533
2009-04-21 21:03:23 +02:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|