This is the mail archive of the
mailing list for the GCC project.
Re: [patch i386]: Fix PR/38227 gcc fails to correctly pass arguments with ms_abi function pointers
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Kai Tietz <ktietz70 at googlemail dot com>
- Date: Sun, 23 Nov 2008 22:44:14 +0100
- Subject: Re: [patch i386]: Fix PR/38227 gcc fails to correctly pass arguments with ms_abi function pointers
This bug is related to the fact, that get_callee_fndecl() can't
resolve in some cases the original FUNCTION_DECL type. For this
problem it is reasoned that the call expression points to a VAR_DECL,
which can be resolved by get_callee_fndecl.
I changed the macro REG_PARM_STACK_SPACE, so that it accepts also
directly the TREE_TYPE to resolve the attributes correctly.
I think we should change in general the macro argument of
REG_PARM_STACK_SPACE to accept the type instead of the decl. The other
way would be to teach get_callee_fndecl to resolve by type the decl,
but AFAIK there isn't at the moment a facility to resolve this.
2008-11-23 Kai Tietz <firstname.lastname@example.org>
* calls.c (expand_call): Add fntype case to REG_PARM_STACK_SPACE use,
if fndecl isn't available.
* config/i386/i386.c (ix86_reg_parm_stack_space): Support direct type
argument for abi check.
Is this patch ok to be applied on trunk?
OK with a testcase from the PR.