diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 832f62ca8fc..48d43349467 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,12 @@ +2007-03-14 Francois-Xavier Coudert + + * trans-array.c (gfc_trans_auto_array_allocation): Replace + fold(convert()) by fold_convert(). + (gfc_duplicate_allocatable): Likewise. + * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use + build_int_cst instead of converting an integer_zero_node + to the final type. + 2007-03-14 Jakub Jelinek * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER. diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index c7e9da12195..5d413310735 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -3862,7 +3862,7 @@ gfc_trans_auto_array_allocation (tree decl, gfc_symbol * sym, tree fnbody) else gcc_unreachable (); tmp = build_call_expr (fndecl, 1, size); - tmp = fold (convert (TREE_TYPE (decl), tmp)); + tmp = fold_convert (TREE_TYPE (decl), tmp); gfc_add_modify_expr (&block, decl, tmp); /* Set offset of the array. */ @@ -4918,8 +4918,7 @@ gfc_duplicate_allocatable(tree dest, tree src, tree type, int rank) tmp = build_call_expr (gfor_fndecl_internal_malloc64, 1, size); else gcc_unreachable (); - tmp = fold (convert (TREE_TYPE (gfc_conv_descriptor_data_get (src)), - tmp)); + tmp = fold_convert (TREE_TYPE (gfc_conv_descriptor_data_get (src)), tmp); gfc_conv_descriptor_data_set (&block, dest, tmp); /* We know the temporary and the value will be the same length, diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index 6c08004e449..58c4131eea7 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -1840,7 +1840,7 @@ gfc_conv_intrinsic_dot_product (gfc_se * se, gfc_expr * expr) /* Initialize the result. */ resvar = gfc_create_var (type, "val"); if (expr->ts.type == BT_LOGICAL) - tmp = convert (type, integer_zero_node); + tmp = build_int_cst (type, 0); else tmp = gfc_build_const (type, integer_zero_node);