This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/56560] [4.6/4.7 regression] vzeroupper clobbers argument with AVX
- From: "ebotcazou at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 10 Mar 2013 15:51:03 +0000
- Subject: [Bug target/56560] [4.6/4.7 regression] vzeroupper clobbers argument with AVX
- Auto-submitted: auto-generated
- References: <bug-56560-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56560
--- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-03-10 15:51:03 UTC ---
> diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
> index c1f6c88..8005207 100644
> --- a/gcc/config/i386/i386.c
> +++ b/gcc/config/i386/i386.c
> @@ -5562,7 +5562,7 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, /* Argument
> info to initialize */
> memset (cum, 0, sizeof (*cum));
>
> /* Initialize for the current callee. */
> - if (caller)
> + if (caller && fndecl)
> {
> cfun->machine->callee_pass_avx256_p = false;
> cfun->machine->callee_return_avx256_p = false;
>
> fixes it.
I don't think it's correct, fndecl is NULL_TREE for indirect calls as well.