ruby-trunk-changes r59450 - r59454

今日は clang 4.0 での警告除去や Kernel#sprintf などのフォーマット文字列で % が単独で利用された時の例外メッセージの修正などがありました。

nobu: r59450 2017-07-30 23:48:45 +0900

clang 4.0 で pack された構造体メンバーのポインタを取得すると alignment 違反の警告が出るので UNALIGNED_MEMBER_ACCESS() というマクロを導入して必要に応じてコンパイラ拡張を利用して警告を回避するようにしています。

nobu: r59451 2017-07-30 23:59:40 +0900

r59450 の UNALIGNED_MEMBER_ACCESS() の定義の条件に defined(__clang__) も追加しています。gcc では警告が出ないからとのこと。

kazu: r59452 2017-07-31 12:35:22 +0900

Kernel#sprintf などのフォーマット文字列で % を表現したかったら %% と二重にしないといけないのを例外メッセージにも含めるようにしています。 [ruby-core:82118] [Bug #13761]

svn: r59453 2017-07-31 12:35:23 +0900

version.h の日付更新。

nobu: r59454 2017-07-31 13:04:10 +0900

macOS で ar コマンドとして libtool というコマンドを利用して debug_counter.o が通常 symbol を1つも持たないので警告が出るのを抑制するようにしているそうです。