diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3db8d6e344616b55302f2f02e68a6fba3f0b60a4..9845453b2f23f160a724375daaeec7bb31152953 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR fortran/42169
+	* ira-emit.c (store_can_be_removed_p): Return false instead of
+	gcc_unreachable.
+
 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
 
 	* fold-const.c (fold_binary_loc): New transformation.
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index 7221e444b0d1ac1b239f91a38749a4c8af8c4375..b90adb71da3747694765ef1b5aa4207b7da22d19 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -367,7 +367,8 @@ store_can_be_removed_p (ira_allocno_t src_allocno, ira_allocno_t dest_allocno)
 	   prohibit removal of the store in such complicated case.  */
 	return false;
     }
-  gcc_unreachable ();
+  /* It is actually a loop entry -- do not remove the store.  */
+  return false;
 }
 
 /* Generate and attach moves to the edge E.  This looks at the final