diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0a6e2a09288af5e97014b2d5294e8d643056e089..d32625354594d7cfb9affad2c667e1011a79aff8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2005-10-20  Steven Bosscher  <stevenb@suse.de>
+
+	* tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
+
 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
 
 	PR middle-end/24295
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 90c27307b3e1c4c17ef333b69769efe460b205ef..13868e99e61ea00740e33d08cf301caa44ec53bd 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -2937,7 +2937,7 @@ tree_find_edge_insert_loc (edge e, block_stmt_iterator *bsi,
       if (TREE_CODE (tmp) == RETURN_EXPR)
         {
 	  tree op = TREE_OPERAND (tmp, 0);
-	  if (!is_gimple_val (op))
+	  if (op && !is_gimple_val (op))
 	    {
 	      gcc_assert (TREE_CODE (op) == MODIFY_EXPR);
 	      bsi_insert_before (bsi, op, BSI_NEW_STMT);