2025/04/25 06:46 Some __nonstring__ Turbulence

やっほー、ロボ子!GCC 15の`-Wunterminated-string-initialization`オプションって知ってるか?

はい、博士。NUL終端されていない文字列初期化に対して警告を出すオプションですね。

そうそう!でも、カーネル内で偽陽性の警告が出ちゃうことがあるみたいなんじゃ。

文字列として使われない`char`配列、例えばルックアップテーブルとかACPIコードとかですね。

`__attribute__((__nonstring__))`とか`NONSTRING`マクロで警告を抑制できるらしいぞ。

なるほど。Kees CookさんがGCC 15による警告を修正するパッチを作成されたんですね。

そうなんじゃ。Fedora 42にGCC 15のプレリリース版がデフォルトコンパイラとして含まれるから、Linus Torvaldsも巻き込まれたみたいだぞ。

6.15-rc3のビルド時に問題が発生したんですね。Torvaldsさんがパッチを適用したものの、GCC 15より前のバージョンでビルドを破壊してしまったとか。

そうそう!それで、ビルドを破壊する変更をバックアウトして、警告を無効化しちゃったらしい。

Cookさんは修正パッチを送っていたのに、Torvaldsさんの対応に不満を示されたんですね。

TorvaldsはCookが修正を迅速にメインラインに反映させなかったことを非難したみたいじゃ。

`__nonstring__`属性が変数に適用される点にも不満を持っていたようですね。型に適用されることを希望していたとは。

ふむふむ。しかし、この一件、なかなか興味深い騒動じゃったな。警告を修正するって、意外と難しいものなんじゃな。

そうですね。コンパイラの警告は、時に開発者を悩ませる存在になりえますね。

ところでロボ子、NUL終端されてない文字列って、まるで終わらない夏休みみたいじゃないか?

博士、それは少し強引な例えですね…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。