aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/ChangeLog')
-rw-r--r--gcc/fortran/ChangeLog82
1 files changed, 82 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 191bfc8..1c7b681 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,85 @@
+2017-01-13 Janne Blomqvist <jb@gcc.gnu.org>
+
+ PR fortran/78534
+ PR fortran/66310
+ * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
+ hardcoded kind.
+ (find_intrinsic_vtab): Likewise.
+ * expr.c (gfc_get_character_expr): Length parameter of type
+ gfc_charlen_t.
+ (gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
+ (gfc_extract_hwi): New function.
+ (simplify_const_ref): Make string_len of type gfc_charlen_t.
+ (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
+ * gfortran.h (gfc_mpz_get_hwi): New prototype.
+ (gfc_mpz_set_hwi): Likewise.
+ (gfc_charlen_t): New typedef.
+ (gfc_expr): Use gfc_charlen_t for character lengths.
+ (gfc_size_kind): New extern variable.
+ (gfc_extract_hwi): New prototype.
+ (gfc_get_character_expr): Use gfc_charlen_t for character length.
+ (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
+ * iresolve.c (gfc_resolve_repeat): Pass string length directly without
+ temporary, use gfc_charlen_int_kind.
+ * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
+ * misc.c (gfc_mpz_get_hwi): New function.
+ (gfc_mpz_set_hwi): New function.
+ * module.c (atom_int): Change type from int to HOST_WIDE_INT.
+ (parse_integer): Don't complain about large integers.
+ (write_atom): Use HOST_WIDE_INT for integers.
+ (mio_integer): Handle integer type mismatch.
+ (mio_hwi): New function.
+ (mio_intrinsic_op): Use HOST_WIDE_INT.
+ (mio_array_ref): Likewise.
+ (mio_expr): Likewise.
+ * resolve.c (resolve_select_type): Use HOST_WIDE_INT for charlen,
+ use snprintf.
+ (resolve_substring_charlen): Use gfc_charlen_int_kind.
+ (resolve_charlen): Use mpz_sgn to determine sign.
+ * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
+ instead of long.
+ * target-memory.c (size_character): Length argument of type
+ gfc_charlen_t.
+ (gfc_encode_character): Likewise.
+ (gfc_interpret_character): Use gfc_charlen_t.
+ * target-memory.h (gfc_encode_character): Modify prototype.
+ * trans-array.c (get_array_ctor_var_strlen): Use
+ gfc_conv_mpz_to_tree_type.
+ * trans-const.c (gfc_conv_mpz_to_tree_type): New function.
+ * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
+ * trans-expr.c (gfc_class_len_or_zero_get): Build const of type
+ gfc_charlen_type_node.
+ (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
+ 4, fold_convert to correct type.
+ (gfc_conv_class_to_class): Build const of type size_type_node for
+ size.
+ (gfc_copy_class_to_class): Likewise.
+ (gfc_conv_string_length): Use same type in expression.
+ (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
+ (gfc_conv_string_tmp): Make sure len is of the right type.
+ (gfc_conv_concat_op): Use same type in expression.
+ (gfc_conv_procedure_call): Likewise.
+ (alloc_scalar_allocatable_for_subcomponent_assignment):
+ fold_convert to right type.
+ (gfc_trans_subcomponent_assign): Likewise.
+ (trans_class_vptr_len_assignment): Build const of correct type.
+ (gfc_trans_pointer_assignment): Likewise.
+ (alloc_scalar_allocatable_for_assignment): fold_convert to right
+ type in expr.
+ (trans_class_assignment): Build const of correct type.
+ * trans-intrinsic.c (gfc_conv_associated): Likewise.
+ (gfc_conv_intrinsic_repeat): Do calculation in sizetype.
+ * trans-io.c (gfc_build_io_library_fndecls): Use
+ gfc_charlen_type_node for character lengths.
+ * trans-stmt.c (gfc_trans_label_assign): Build const of
+ gfc_charlen_type_node.
+ (gfc_trans_character_select): Likewise.
+ (gfc_trans_allocate): Likewise, don't typecast strlen result.
+ (gfc_trans_deallocate): Don't typecast strlen result.
+ * trans-types.c (gfc_size_kind): New variable.
+ (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
+ from size_type_node.
+
2017-01-13 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70697