diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 72a1a180c774cedab667264218cb5428f801e138..40e955426d52aaf8bd8e74591a1e3431d914fd55 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-06-07  Jeffrey Law  <law@redhat.com>
+
+	* sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
+	on empty lists.
+
 2002-06-07  H.J. Lu  (hjl@gnu.org)
 
 	* configure.in: Add --enable-__cxa_atexit.
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index ec18f9d1973d65f63c4d64ca59e7ec29876c2589..644f1bdbd1f6b1811c610e98633c9ea470dadd4f 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -1508,9 +1508,12 @@ free_deps (deps)
   EXECUTE_IF_SET_IN_REG_SET (&deps->reg_last_in_use, 0, i,
     {
       struct deps_reg *reg_last = &deps->reg_last[i];
-      free_INSN_LIST_list (&reg_last->uses);
-      free_INSN_LIST_list (&reg_last->sets);
-      free_INSN_LIST_list (&reg_last->clobbers);
+      if (reg_last->uses)
+	free_INSN_LIST_list (&reg_last->uses);
+      if (reg_last->sets)
+	free_INSN_LIST_list (&reg_last->sets);
+      if (reg_last->clobbers)
+	free_INSN_LIST_list (&reg_last->clobbers);
     });
   CLEAR_REG_SET (&deps->reg_last_in_use);