From: ngotogenome@... Date: 2017-12-19T16:47:24+00:00 Subject: [ruby-core:84351] [Ruby trunk Bug#11684][Open] Pack#unpack test failure on Solaris 10 with Oracle Solaris Studio 12.4 Issue #11684 has been updated by ngoto (Naohisa Goto). Status changed from Closed to Open Assignee set to ngoto (Naohisa Goto) ruby -v changed from ruby 2.3.0dev (2015-11-12) [sparc64-solaris2.10] to ruby 2.5.0dev (2017-12-19) [sparc64-solaris2.10] Reopen because this is also observed with Oracle Developer Studio 12.6. ---------------------------------------- Bug #11684: Pack#unpack test failure on Solaris 10 with Oracle Solaris Studio 12.4 https://bugs.ruby-lang.org/issues/11684#change-68529 * Author: ngoto (Naohisa Goto) * Status: Open * Priority: Normal * Assignee: ngoto (Naohisa Goto) * Target version: * ruby -v: ruby 2.5.0dev (2017-12-19) [sparc64-solaris2.10] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- On Solaris 10, when compiling ruby with Oracle Solaris Studio 12.4 with -xO4 optimization option, the following test failure is observed during make test-all. (tested with r52550) ~~~ 1) Failure: TestPack#test_pack_unpack_atmark [XXXXX/test/ruby/test_pack.rb:548]: <[nil]> expected but was <[]>. 2) Failure: TestPack#test_short_string [/XXXXX/test/ruby/test_pack.rb:735]: <[1, nil]> expected but was <[1]>. 15885 tests, 2225854 assertions, 2 failures, 0 errors, 50 skips ~~~ It seems that String#unpack is incorrectly compiled with Oracle Solaris Studio 12.4 with -xO4. ~~~ $ irb irb(main):001:0> [1,2].pack('i2') => "\x00\x00\x00\x01\x00\x00\x00\x02" ###<== OK irb(main):002:0> "\x00\x00\x00\x01\x00\x00\x00\x02".unpack('i3') => [1, 2] ###<== [1, 2, nil] is expected ~~~ It seems that PACK_ITEM_ADJUST() is wiped out by wrong optimization. I think this is a bug of Oracle Solaris Studio 12.4. The failure is not observed with -xO3 or lower optimization option. It is also not observed by using Oracle Solaris Studio 12.3, even speficying -xO4 optimization option. -- https://bugs.ruby-lang.org/ Unsubscribe: