Hi,

	after 2 weeks I tried to compile with -Wall and found some
	issues.

	1st part: 'return head' doesn't need to be in every case:, can
	be in the end. (Fixes: parse.y:4423: warning: control reaches
	end of non-void function)

	2nd part: Is this real fix for: parse.y:4438: warning: `t' might
	be used uninitialized in this function

		Michal
		
Index: parse.y
===================================================================
RCS file: /src/ruby/parse.y,v
retrieving revision 1.218
diff -u -r1.218 parse.y
--- parse.y	2002/09/22 12:52:18	1.218
+++ parse.y	2002/09/23 13:57:37
@@ -4397,8 +4397,7 @@
 	else {
 	    list_append(head, tail);
 	}
-	return head;
-
+	break;
       case NODE_DSTR:
 	if (htype == NODE_STR) {
 	    rb_str_concat(head->nd_lit, tail->nd_lit);
@@ -4411,15 +4410,14 @@
 	    tail->nd_head = NEW_STR(tail->nd_lit);
 	    list_concat(head, tail);
 	}
-	return head;
-
+	break;
       case NODE_EVSTR:
 	if (htype == NODE_STR) {
 	    nd_set_type(head, NODE_DSTR);
 	}
 	list_append(head, tail);
-	return head;
     }
+    return head;
 }
 
 static NODE *
@@ -4430,13 +4428,17 @@
 
     if (node) {
 	switch (nd_type(node)) {
-	  case NODE_STR: case NODE_DSTR: case NODE_EVSTR:
+	  case NODE_STR:
+	  case NODE_DSTR:
+	  case NODE_EVSTR:
 	    return node;
 	  case NODE_BLOCK:
 	    for (n = node; n->nd_next; n = n->nd_next) {
 		NODE *h = n->nd_head;
 		enum node_type t;
+		
 		if (!h) continue;
+		t = nd_type(n);
 		if (t != NODE_STR && t != NODE_LIT) goto evstr;
 	    }
 	    return n->nd_head;

-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Ing. Michal Rokos                    Czech Technical University, Prague
e-mail: m.rokos / sh.cvut.cz    icq: 36118339     jabber: majkl / jabber.cz
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-