aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamana Radhakrishnan <ramana.radhakrishnan@linaro.org>2011-03-20 07:59:54 +0000
committerRamana Radhakrishnan <ramana@gcc.gnu.org>2011-03-20 07:59:54 +0000
commitb6a75dda1d4f961d86c6239326f95ad3a82ca68a (patch)
treec0ae0271ac6361b3398a5d276f8578f790324910
parentb8d42f298a36d0629c5ddc4d9fb54082507a3913 (diff)
downloadgcc-b6a75dda1d4f961d86c6239326f95ad3a82ca68a.zip
gcc-b6a75dda1d4f961d86c6239326f95ad3a82ca68a.tar.gz
gcc-b6a75dda1d4f961d86c6239326f95ad3a82ca68a.tar.bz2
Fix PR debug/48203
From-SVN: r171193
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/arm.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 87fb033..53820c1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
+ 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 <kkojima@gcc.gnu.org>
PR debug/48178
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index c6ba3fb..4784939 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;