diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc
index 15b540646c22a88dd8fcda96a31ba20dcdebf356..4ed7a07cb7fbf6e556d47526d79ea89badc75b96 100644
--- a/gcc/gimplify.cc
+++ b/gcc/gimplify.cc
@@ -3344,6 +3344,9 @@ recalculate_side_effects (tree t)
       return;
 
     default:
+      if (code == SSA_NAME)
+	/* No side-effects.  */
+	return;
       gcc_unreachable ();
    }
 }
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr113228.c b/gcc/testsuite/gcc.c-torture/compile/pr113228.c
new file mode 100644
index 0000000000000000000000000000000000000000..f46018442f90024166089f04d8390ae59682155f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr113228.c
@@ -0,0 +1,17 @@
+/* PR tree-optimization/113228 */
+
+int a, b, c, d, i;
+
+void
+foo (void)
+{
+  int k[3] = {};
+  int *l = &a;
+  for (d = 0; c; c--)
+    for (i = 0; i <= 9; i++)
+      {
+	for (b = 1; b <= 4; b++)
+	  k[0] = k[0] == 0;
+	*l |= k[d];
+      }
+}