diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e8492d84d6..61f696cf3ab 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sun Nov 26 10:02:37 2000 Richard Kenner + + * fold-const.c (fold, case CONVERT_EXPR): Always return tree of + proper type. + 2000-11-26 Neil Booth * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index aaff05f4d75..d8131faf226 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -5103,7 +5103,7 @@ fold (expr) if (TYPE_MAIN_VARIANT (inside_type) == TYPE_MAIN_VARIANT (final_type) && ((inter_int && final_int) || (inter_float && final_float)) && inter_prec >= final_prec) - return TREE_OPERAND (TREE_OPERAND (t, 0), 0); + return convert (final_type, TREE_OPERAND (TREE_OPERAND (t, 0), 0)); /* Likewise, if the intermediate and final types are either both float or both integer, we don't need the middle conversion if