From b6a75dda1d4f961d86c6239326f95ad3a82ca68a Mon Sep 17 00:00:00 2001 From: Ramana Radhakrishnan Date: Sun, 20 Mar 2011 07:59:54 +0000 Subject: [PATCH] Fix PR debug/48203 From-SVN: r171193 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/arm.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87fb0337ecd..53820c1a3f5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-03-20 Ramana Radhakrishnan + + PR debug/48023 + * config/arm/arm.c (create_fix_barrier): Do not emit a minipool + between a call and its CALL_ARG_LOCATION note. + 2011-03-19 Kaz Kojima PR debug/48178 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index c6ba3fb28fe..4784939b47f 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -12022,6 +12022,16 @@ create_fix_barrier (Mfix *fix, HOST_WIDE_INT max_address) /* Make sure that we found a place to insert the jump. */ gcc_assert (selected); + /* Make sure we do not split a call and its corresponding + CALL_ARG_LOCATION note. */ + if (CALL_P (selected)) + { + rtx next = NEXT_INSN (selected); + if (next && NOTE_P (next) + && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION) + selected = next; + } + /* Create a new JUMP_INSN that branches around a barrier. */ from = emit_jump_insn_after (gen_jump (label), selected); JUMP_LABEL (from) = label; -- 2.30.2