diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 89ff3bd4aac010477d82a715fa58243219503bfb..96db1e072f49f38b94b14a3c76c7af9e9615e5c5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
+
+	* config/sh/sh.c (split_branches): Don't dereference re-computed
+	`beyond' before checking it's non-NULL.
+
 
 2000-12-29  Robert Lipe <robertl@sco.com>
 
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 8f25be8b43bf84594976a476e3c35504cdae2335..ee64d78b5ca060e15b737227cb080016a111b799 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -3489,8 +3489,8 @@ split_branches (first)
 	
 		if (beyond
 		    && (GET_CODE (beyond) == JUMP_INSN
-			|| (GET_CODE (beyond = next_active_insn (beyond))
-			    == JUMP_INSN))
+			|| ((beyond = next_active_insn (beyond))
+			    && GET_CODE (beyond) == JUMP_INSN))
 		    && GET_CODE (PATTERN (beyond)) == SET
 		    && recog_memoized (beyond) == CODE_FOR_jump
 		    && ((INSN_ADDRESSES