diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2008-12-09 09:14:28 +0000 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2008-12-09 10:14:28 +0100 |
commit | 457691343552e43ffbce002ef2bd4065e09d7c39 (patch) | |
tree | 22389f9764187766baa819ce9d1fcc32e25e5dc3 /gcc/function.c | |
parent | f2dc2f86ae47e722651f005b31ca435e3f1f231f (diff) | |
download | gcc-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.c | 4 |
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; |