遠藤と申します。

1.8.6 、1.9 共に以下のようにすると落ちます。


$ ./ruby -e '0..:"'
-e:1: unterminated string meets end of file
-e:1: empty symbol literal
-e:1: [BUG] Segmentation fault
ruby 1.8.6 (2007-06-26) [i686-linux]

アボートしました (core dumped)


とりあえず以下のパッチ (ruby 1.8 用) で落ちなくなりましたが、
全然わかってないので適当に見てください。


Index: parse.y
===================================================================
--- parse.y	(revision 12652)
+++ parse.y	(working copy)
@@ -2142,11 +2142,13 @@
 dsym		: tSYMBEG xstring_contents tSTRING_END
 		    {
 		        lex_state = EXPR_END;
-			if (!($$ = $2)) {
+			if (!$2) {
+			    $$ = NEW_NIL();
 			    yyerror("empty symbol literal");
 			}
 			else {
 			    VALUE lit;
+				$$ = $2;

 			    switch (nd_type($$)) {
 			      case NODE_DSTR:

-- 
Yusuke ENDOH <mame / tsg.ne.jp>