From: Tanaka Akira Date: 2005-12-12T17:38:35+09:00 Subject: [ruby-dev:28001] test_binary(TestSprintf):<"..1"> expected but was <"..1\216l">. 実のところこういう入りかたは予測していなかったのですが、それ はそれで試しやすくなったので x86_64 で試すと、とりあえず % RUBY_ALWAYS_GC= ./ruby -v test/runner.rb test/ruby/test_sprintf.rb ruby 1.9.0 (2005-12-12) [x86_64-linux] Loaded suite test_sprintf.rb Started F.. Finished in 52.082209 seconds. 1) Failure: test_binary(TestSprintf) [/home/akr/w/ruby/test/ruby/test_sprintf.rb:8]: <"..1"> expected but was <"..1\216l">. 3 tests, 49 assertions, 1 failures, 0 errors というのが発見できました。 Index: sprintf.c =================================================================== RCS file: /src/ruby/sprintf.c,v retrieving revision 1.60 diff -u -p -r1.60 sprintf.c --- sprintf.c 7 Dec 2005 08:41:59 -0000 1.60 +++ sprintf.c 12 Dec 2005 08:13:23 -0000 @@ -604,12 +604,13 @@ rb_str_format(int argc, const VALUE *arg } } else { + volatile VALUE tmp1; if (!RBIGNUM(val)->sign) { val = rb_big_clone(val); rb_big_2comp(val); } - tmp = rb_big2str(val, base); - s = RSTRING(tmp)->ptr; + tmp1 = rb_big2str(val, base); + s = RSTRING(tmp1)->ptr; if (*s == '-') { if (base == 10) { rb_warning("negative number for %%u specifier"); というところですかね。 -- [田中 哲][たなか あきら][Tanaka Akira]