http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #8 from H.J. Lu <hjl.tools at gmail dot com> ---
This works:

diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 00773d8..16669b9 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -7193,6 +7193,7 @@ function_arg_advance_64 (CUMULATIVE_ARGS *cum, enum
machine_mode mode,
     return;

   if (examine_argument (mode, type, 0, &int_nregs, &sse_nregs)
+      && (sse_nregs || int_nregs)
       && sse_nregs <= cum->sse_nregs && int_nregs <= cum->nregs)
     {
       cum->nregs -= int_nregs;

Reply via email to