Issue #11684 has been reported by Naohisa Goto.

----------------------------------------
Bug #11684: Pack#unpack test failure on 
https://bugs.ruby-lang.org/issues/11684

* Author: Naohisa Goto
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.0dev (2015-11-12) [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/