aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendan Kehoe <brendan@gcc.gnu.org>1997-06-09 19:01:12 -0400
committerBrendan Kehoe <brendan@gcc.gnu.org>1997-06-09 19:01:12 -0400
commit3ff2293f0adcc8cd97584fa0cf491b9089314616 (patch)
tree7a0bb369c813be2de0b1a910a075ae03e46e71e0
parent79479f9000b13ace4b7909b4f8319999d51e3599 (diff)
downloadgcc-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.c6
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