re PR debug/59575 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2239)
authorJakub Jelinek <jakub@gcc.gnu.org>
Thu, 6 Feb 2014 15:52:36 +0000 (16:52 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 6 Feb 2014 15:52:36 +0000 (16:52 +0100)
PR target/59575
* config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
don't record in REG_FRAME_RELATED_EXPR registers not set in that
bitmask.
(arm_expand_prologue): Adjust all callers.
(arm_unwind_emit_sequence): Allow saved, but not important for unwind
info, registers also at the lowest numbered registers side.  Use
gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
XEXP.

* gcc.target/arm/pr59575.c: New test.

From-SVN: r207564

gcc/testsuite/gcc.target/arm/pr59575.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.target/arm/pr59575.c b/gcc/testsuite/gcc.target/arm/pr59575.c
new file mode 100644 (file)
index 0000000..13494f4
--- /dev/null
@@ -0,0 +1,15 @@
+/* PR target/59575 */
+/* { dg-do compile } */
+/* { dg-options "-Os -g -march=armv7-a" } */
+
+void foo (int *);
+int *bar (int, long long, int);
+
+void
+test (int *p)
+{
+  if (p)
+    foo (p);
+  else if (p = bar (0, 1, 2))
+    foo (p);
+}