[Bug target/61387] [4.10 Regression] ~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211088

dominiq at lps dot ens.fr gcc-bugzilla@gcc.gnu.org
Wed Jun 4 15:01:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387

--- Comment #5 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
(In reply to Iain Sandoe from comment #4)
> 3.
>
> Anyway, assuming that the intention is to unwrap the indirection from the call
> - something like: ...

The following patch fixes the failures (not counting new ones:
g++.dg/debug/dwarf2/imported-decl-2.C and g++.dg/tls/diag-1.C).

--- ../_clean/gcc/config/i386/i386.c    2014-06-04 00:42:24.000000000 +0200
+++ gcc/config/i386/i386.c    2014-06-04 15:05:42.000000000 +0200
@@ -38898,7 +38898,9 @@ x86_output_mi_thunk (FILE *file,
     {
       if (sibcall_insn_operand (fnaddr, word_mode))
     {
-      tmp = gen_rtx_CALL (VOIDmode, fnaddr, const0_rtx);
+      fnaddr = XEXP (DECL_RTL (function), 0);
+      tmp = gen_rtx_MEM (QImode, fnaddr);
+      tmp = gen_rtx_CALL (VOIDmode, tmp, const0_rtx);
           tmp = emit_call_insn (tmp);
           SIBLING_CALL_P (tmp) = 1;
     }



More information about the Gcc-bugs mailing list