]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR target/61586 (ICE on alpha in alpha_handle_trap_shadows, at config...
authorUros Bizjak <ubizjak@gmail.com>
Fri, 27 Jun 2014 08:47:17 +0000 (10:47 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 27 Jun 2014 08:47:17 +0000 (10:47 +0200)
Backport from mainline
2014-06-26  Uros Bizjak  <ubizjak@gmail.com>

PR target/61586
* config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.

testsuite/ChangeLog:

Backport from mainline
2014-06-26  Uros Bizjak  <ubizjak@gmail.com>

PR target/61586
* gcc.target/alpha/pr61586.c: New test.

From-SVN: r212066

gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/alpha/pr61586.c [new file with mode: 0644]

index 784d3caa2f9c0cc4504df39d9054479a439305ea..66248a1089c1a66f1dcef13aaf04cc3b7602f5df 100644 (file)
@@ -1,3 +1,11 @@
+2014-06-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       Backport from mainline
+       2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/61586
+       * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
+
 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        PR target/61542
index 5bd49f96daa115912ac1baf5f6573850626d5aef..1fe6eb57f3280b4d4afde92af83ee2c7a34abcc3 100644 (file)
@@ -8658,6 +8658,11 @@ alpha_handle_trap_shadows (void)
                        }
                      break;
 
+                   case BARRIER:
+                     /* __builtin_unreachable can expand to no code at all,
+                        leaving (barrier) RTXes in the instruction stream.  */
+                     goto close_shadow_notrapb;
+
                    case JUMP_INSN:
                    case CALL_INSN:
                    case CODE_LABEL:
@@ -8673,6 +8678,7 @@ alpha_handle_trap_shadows (void)
                  n = emit_insn_before (gen_trapb (), i);
                  PUT_MODE (n, TImode);
                  PUT_MODE (i, TImode);
+               close_shadow_notrapb:
                  trap_pending = 0;
                  shadow.used.i = 0;
                  shadow.used.fp = 0;
index a68b157e3f911745dbc30052ce6d7a3bf0088330..1932353f8a93619c0615134daf5d5869d82a3def 100644 (file)
@@ -1,3 +1,11 @@
+2014-06-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       Backport from mainline
+       2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/61586
+       * gcc.target/alpha/pr61586.c: New test.
+
 2014-06-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        * gfortran.dg/default_format_denormal_2.f90:  Remove xfail for
diff --git a/gcc/testsuite/gcc.target/alpha/pr61586.c b/gcc/testsuite/gcc.target/alpha/pr61586.c
new file mode 100644 (file)
index 0000000..afb1af3
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mieee" } */
+
+void foo (int *dimensions, double **params, int hh)
+{
+  if (params[hh])
+    ;
+  else if (dimensions[hh] > 0)
+    params[hh][0] = 1.0f;
+}