diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6252ecaff5fca9afc3a2cb494886187d8ff3dc28..f5a26d5299fb0d97ffa547f21bfb5fc778ec75f8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-04-28  Kazu Hirata  <kazu@hxi.com>
+
+	* h8300.c (function_epilogue): Clean up flags when the last insn
+	in a function is a barrier.
+
 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
 
 	* configure.in (sparc-hal-solaris2*): protect [] glob from
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 15562d23e646db8d9fa8e58f112d47087adf5cad..87b7f19a0c40b0a0f89a32cc93348f18b93cce8f 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -402,7 +402,7 @@ function_epilogue (file, size)
   if (GET_CODE (insn) == NOTE)
     insn = prev_nonnote_insn (insn);
   if (insn && GET_CODE (insn) == BARRIER)
-    return;
+    goto out;
 
   /* Pop the saved registers. */
   for (idx = 0; idx < FIRST_PSEUDO_REGISTER; idx++)