re PR target/61387 (~900 test failures on on x86_64-apple-darwin13 for g++ with ...
authorIain Sandoe <iain@codesourcery.com>
Tue, 7 Oct 2014 18:59:24 +0000 (18:59 +0000)
committerMike Stump <mrs@gcc.gnu.org>
Tue, 7 Oct 2014 18:59:24 +0000 (18:59 +0000)
2014-10-07  Iain Sandoe  <iain@codesourcery.com>

    PR target/61387
    * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.

From-SVN: r215983

gcc/ChangeLog
gcc/config/i386/i386.c

index 7f4094dbb81d96c8afde97b32328e75a227a9a96..e198b2bf30cf8f954d29076c4ea21688027ea94e 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-07  Iain Sandoe  <iain@codesourcery.com>
+
+       PR target/61387
+       * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
+
 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
 
        * dwarf2out.c: Remove current_function_has_inlines.
index ed8fe2d920933bac1c00b5bad9d58b2e497cf978..4c4a6eb317d58a8cf935da2174cb133009de71b3 100644 (file)
@@ -38979,9 +38979,11 @@ x86_output_mi_thunk (FILE *file, tree, HOST_WIDE_INT delta,
     {
       if (sibcall_insn_operand (fnaddr, word_mode))
        {
-         tmp = gen_rtx_CALL (VOIDmode, fnaddr, const0_rtx);
-          tmp = emit_call_insn (tmp);
-          SIBLING_CALL_P (tmp) = 1;
+         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;
        }
       else
        emit_jump_insn (gen_indirect_jump (fnaddr));