From: Brendan Kehoe Date: Mon, 9 Jun 1997 23:01:12 +0000 (-0400) Subject: integrate.c (expand_inline_function): Use the mode of FNDECL's result rtl... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3ff2293f0adcc8cd97584fa0cf491b9089314616;p=gcc.git integrate.c (expand_inline_function): Use the mode of FNDECL's result rtl... * integrate.c (expand_inline_function): Use the mode of FNDECL's result rtl, not the result type itself, in setting ARRIVING_MODE. From-SVN: r14198 --- diff --git a/gcc/integrate.c b/gcc/integrate.c index d5f5b51d044..92052bfa2de 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1673,9 +1673,11 @@ expand_inline_function (fndecl, parms, target, ignore, type, /* Machine mode function was declared to return. */ enum machine_mode departing_mode = TYPE_MODE (type); /* (Possibly wider) machine mode it actually computes - (for the sake of callers that fail to declare it right). */ + (for the sake of callers that fail to declare it right). + We have to use the mode of the result's RTL, rather than + its type, since expand_function_start may have promoted it. */ enum machine_mode arriving_mode - = TYPE_MODE (TREE_TYPE (DECL_RESULT (fndecl))); + = GET_MODE (DECL_RTL (DECL_RESULT (fndecl))); rtx reg_to_map; /* Don't use MEMs as direct targets because on some machines