From 07056cbafb1bae32d3bbca42efd02f48143dcc54 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Tue, 7 Oct 2014 18:59:24 +0000 Subject: [PATCH] re PR target/61387 (~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211089) 2014-10-07 Iain Sandoe PR target/61387 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout. From-SVN: r215983 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7f4094dbb81..e198b2bf30c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-10-07 Iain Sandoe + + PR target/61387 + * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout. + 2014-10-07 Aldy Hernandez * dwarf2out.c: Remove current_function_has_inlines. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index ed8fe2d9209..4c4a6eb317d 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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)); -- 2.30.2