From: Yui NARUSE Date: 2012-01-15T17:00:29+09:00 Subject: [ruby-core:42135] [ruby-trunk - Bug #5888] JSON unittest fails Issue #5888 has been updated by Yui NARUSE. Eric Wong wrote: > Yui NARUSE wrote: > > filed it to GCC's tracker. > > I don't believe this is a GCC bug: space for buf[4] can be reclaimed > as soon as execution finishes in the scope where buf[4] was declared. GCC answered the same thing. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51862#c2 > > For JSON, following is simple patch: > > This was always a bug, we were just lucky because GCC wasn't as > aggressive when popping the stack. I made pull request https://github.com/flori/json/pull/115 ---------------------------------------- Bug #5888: JSON unittest fails https://bugs.ruby-lang.org/issues/5888 Author: Vit Ondruch Status: Closed Priority: Normal Assignee: Yui NARUSE Category: Target version: ruby -v: ruby 1.9.3p0 (2011-10-30) [x86_64-linux] Hello, When building Ruby 1.9.3 (as well as 2.0.0), the make check spits following errors: 1) Failure: test_parse_values(TC_JSON) [/builddir/build/BUILD/ruby-1.9.3-p0/test/json/test_json.rb:174]: <["\"\b\n\r\t\u0000\u001F"]> expected but was <["\"\b\n\r\t\xA8\xA8"]>. 2) Failure: test_parser_reset(TC_JSON) [/builddir/build/BUILD/ruby-1.9.3-p0/test/json/test_json.rb:291]: <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\u0000\u001F", "h"=>1000.0, "i"=>0.001}> expected but was <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\xA0\xA0", "h"=>1000.0, "i"=>0.001}>. 3) Failure: test_fast_generate(TC_JSONGenerate) [/builddir/build/BUILD/ruby-1.9.3-p0/test/json/test_json_generate.rb:78]: <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\u0000\u001F", "h"=>1000.0, "i"=>0.001}> expected but was <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\xA0\xA0", "h"=>1000.0, "i"=>0.001}>. 4) Failure: test_generate(TC_JSONGenerate) [/builddir/build/BUILD/ruby-1.9.3-p0/test/json/test_json_generate.rb:47]: <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\u0000\u001F", "h"=>1000.0, "i"=>0.001}> expected but was <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\xA0\xA0", "h"=>1000.0, "i"=>0.001}>. 5) Failure: test_generate_pretty(TC_JSONGenerate) [/builddir/build/BUILD/ruby-1.9.3-p0/test/json/test_json_generate.rb:61]: <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\u0000\u001F", "h"=>1000.0, "i"=>0.001}> expected but was <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\xA0\xA0", "h"=>1000.0, "i"=>0.001}>. 6) Failure: test_own_state(TC_JSONGenerate) [/builddir/build/BUILD/ruby-1.9.3-p0/test/json/test_json_generate.rb:92]: <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\u0000\u001F", "h"=>1000.0, "i"=>0.001}> expected but was <{"a"=>2, "b"=>3.141, "c"=>"c", "d"=>[1, "b", 3.14], "e"=>{"foo"=>"bar"}, "g"=>"\"\xA0\xA0", "h"=>1000.0, "i"=>0.001}>. 7) Failure: test_chars(TC_JSONUnicode) [/builddir/build/BUILD/ruby-1.9.3-p0/test/json/test_json_unicode.rb:57]: <"\x00"> expected but was <"\xA0">. 8) Failure: test_unicode(TC_JSONUnicode) [/builddir/build/BUILD/ruby-1.9.3-p0/test/json/test_json_unicode.rb:20]: <["\u00A9 \u2260 \u20AC! \u0001"]> expected but was <["\u00A9 \u2260 \u20AC! \xD8"]>. Please note that I am building Ruby using GCC 4.7 on Fedora Rawhide. I have not seen this errors before with GCC 4.6 -- http://bugs.ruby-lang.org/