PR84300, ICE in dwarf2cfi on ppc64le with -fsplit-stack -fno-omit-frame-pointer
authorAlan Modra <amodra@gmail.com>
Sat, 10 Feb 2018 04:49:15 +0000 (15:19 +1030)
committerAlan Modra <amodra@gcc.gnu.org>
Sat, 10 Feb 2018 04:49:15 +0000 (15:19 +1030)
PR target/84300
gcc/
* config/rs6000/rs6000.md (split_stack_return): Remove (use ..).
Specify LR as an input.
gcc/testsuite/
* gcc.dg/pr84300.c: New.

From-SVN: r257549

gcc/ChangeLog
gcc/config/rs6000/rs6000.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr84300.c [new file with mode: 0644]

index 0ee4f1cf6b34996683bd1c55a028f5e6acecf19a..9e4682e7947b238b932a6e81220a70c8ad97bd9a 100644 (file)
@@ -1,3 +1,9 @@
+2018-02-10  Alan Modra  <amodra@gmail.com>
+
+       PR target/84300
+       * config/rs6000/rs6000.md (split_stack_return): Remove (use ..).
+       Specify LR as an input.
+
 2018-02-10  Jakub Jelinek  <jakub@redhat.com>
 
        PR sanitizer/83987
index 8aa4e0e7c71ed3504e653eaab1aa53534d548940..5f44d80ef0ec01735b0b60b6e5a4b8e4b4ef8225 100644 (file)
 ;; Use r0 to stop regrename twiddling with lr restore insns emitted
 ;; after the call to __morestack.
 (define_insn "split_stack_return"
-  [(unspec_volatile [(use (reg:SI 0))] UNSPECV_SPLIT_STACK_RETURN)]
+  [(unspec_volatile [(reg:SI 0) (reg:SI LR_REGNO)] UNSPECV_SPLIT_STACK_RETURN)]
   ""
   "blr"
   [(set_attr "type" "jmpreg")])
index 1688f5a8aa2697c2fada44ea05854142cd5dec4b..e899f5653f4c5da037a38643b68cb08df9557a7d 100644 (file)
@@ -1,3 +1,8 @@
+2018-02-10  Alan Modra  <amodra@gmail.com>
+
+       PR target/84300
+       * gcc.dg/pr84300.c: New.
+
 2018-02-10  Jakub Jelinek  <jakub@redhat.com>
 
        PR sanitizer/83987
diff --git a/gcc/testsuite/gcc.dg/pr84300.c b/gcc/testsuite/gcc.dg/pr84300.c
new file mode 100644 (file)
index 0000000..6016799
--- /dev/null
@@ -0,0 +1,5 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target split_stack } */
+/* { dg-options "-g -O2 -fsplit-stack -fno-omit-frame-pointer" } */
+
+void trap () { __builtin_trap (); }