< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事(スレッド移動)
N :次の記事(スレッド移動)
|<:前のスレッド
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
Issue #11684 has been updated by ngoto (Naohisa Goto).
Status changed from Closed to Open
The bug is also observed with Oracle Developer Studio 12.5 (the next version of Oracle Solaris Studio 12.4).
----------------------------------------
Bug #11684: Pack#unpack test failure on Solaris 10 with Oracle Solaris Studio 12.4
https://bugs.ruby-lang.org/issues/11684#change-64233
* Author: ngoto (Naohisa Goto)
* Status: Open
* Priority: Normal
* Assignee:
* Target version:
* 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/
Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>