diff options
author | Brendan Kehoe <brendan@gcc.gnu.org> | 1997-06-09 19:01:12 -0400 |
---|---|---|
committer | Brendan Kehoe <brendan@gcc.gnu.org> | 1997-06-09 19:01:12 -0400 |
commit | 3ff2293f0adcc8cd97584fa0cf491b9089314616 (patch) | |
tree | 7a0bb369c813be2de0b1a910a075ae03e46e71e0 | |
parent | 79479f9000b13ace4b7909b4f8319999d51e3599 (diff) | |
download | gcc-3ff2293f0adcc8cd97584fa0cf491b9089314616.zip gcc-3ff2293f0adcc8cd97584fa0cf491b9089314616.tar.gz gcc-3ff2293f0adcc8cd97584fa0cf491b9089314616.tar.bz2 |
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
-rw-r--r-- | gcc/integrate.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index d5f5b51..92052bf 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 |