From c833f6d2b4b3ca8e3bcd738c9dd0a8cb7e06b24c Mon Sep 17 00:00:00 2001 From: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> Date: Tue, 14 Aug 2007 22:40:00 +0000 Subject: [PATCH] re PR fortran/33073 (Type mismatch in build_fixbound_expr()) PR fortran/33073 * trans-intrinsic.c (build_fixbound_expr): Convert to result type in all cases. From-SVN: r127494 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/trans-intrinsic.c | 24 ++++-------------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0801212a37c7..7eef7f9a1c04 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-08-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> + + PR fortran/33073 + * trans-intrinsic.c (build_fixbound_expr): Convert to result type + in all cases. + 2007-08-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/32594 diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index c8e16462aa8f..2e8b8a010ac4 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -314,10 +314,9 @@ build_fixbound_expr (stmtblock_t * pblock, tree arg, tree type, int up) static tree build_round_expr (tree arg, tree restype) { - tree tmp; tree argtype; tree fn; - bool longlong, convert; + bool longlong; int argprec, resprec; argtype = TREE_TYPE (arg); @@ -328,21 +327,9 @@ build_round_expr (tree arg, tree restype) (lround family) or long long intrinsic (llround). We might also need to convert the result afterwards. */ if (resprec <= LONG_TYPE_SIZE) - { - longlong = false; - if (resprec != LONG_TYPE_SIZE) - convert = true; - else - convert = false; - } + longlong = false; else if (resprec <= LONG_LONG_TYPE_SIZE) - { - longlong = true; - if (resprec != LONG_LONG_TYPE_SIZE) - convert = true; - else - convert = false; - } + longlong = true; else gcc_unreachable (); @@ -356,10 +343,7 @@ build_round_expr (tree arg, tree restype) else gcc_unreachable (); - tmp = build_call_expr (fn, 1, arg); - if (convert) - tmp = fold_convert (restype, tmp); - return tmp; + return fold_convert (restype, build_call_expr (fn, 1, arg)); } -- GitLab