aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2008-12-09 09:14:28 +0000
committerKai Tietz <ktietz@gcc.gnu.org>2008-12-09 10:14:28 +0100
commit457691343552e43ffbce002ef2bd4065e09d7c39 (patch)
tree22389f9764187766baa819ce9d1fcc32e25e5dc3 /gcc/function.c
parentf2dc2f86ae47e722651f005b31ca435e3f1f231f (diff)
downloadgcc-457691343552e43ffbce002ef2bd4065e09d7c39.zip
gcc-457691343552e43ffbce002ef2bd4065e09d7c39.tar.gz
gcc-457691343552e43ffbce002ef2bd4065e09d7c39.tar.bz2
function.c (aggregate_value_p): Get fntype from CALL_EXPR in any case.
2008-12-09 Kai Tietz <kai.tietz@onevision.com> PR/38366 * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any case. * calls.c (nitialize_argument_information): Add fntype argument and use it for calls.promote_function_args. (expand_call): Pass fntype to aggregate_value_p if no fndecl available and pass additional fntype to initialize_argument_information. * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part to get function abi type. (init_cumulative_args): Use for abi kind detection fntype, when no fndecl is available. From-SVN: r142584
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 2ed1748..29fe1b0 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1766,7 +1766,9 @@ aggregate_value_p (const_tree exp, const_tree fntype)
{
case CALL_EXPR:
fndecl = get_callee_fndecl (fntype);
- fntype = fndecl ? TREE_TYPE (fndecl) : 0;
+ fntype = (fndecl
+ ? TREE_TYPE (fndecl)
+ : TREE_TYPE (CALL_EXPR_FN (fntype)));
break;
case FUNCTION_DECL:
fndecl = fntype;