At Mon, 02 Jul 2012 21:37:17 +0900, Takashi SHIRAI wrote: > 私も調べたのですが、-Wall 指定時に出る empty body warning > 自体は 4.2 からのようなので、-Wno-empty-body も 4.2 からだと > 思ってました。4.2 では「empty-body」じゃないのかな? > 名称が「empty-body」じゃないとして、では -Wall で全指定し > た際に source の /*EMPTY*/ の箇所で warning は出ませんか?か > なりあちこちにある筈ですが。 出ません。gcc 4.6でも -Wall では出ず、 -Wempty-body を加えて初めて出ま した。(/*EMPTY*/ は無意味) > /*EMPTY*/ は lint(1) 用の empty body 回避策なんですが、gcc > も lint(1) の作法くらい対応してても良さそうなものなのに。最 > 近の gcc 開発陣はそもそも lint(1) を知らない? > 確か Linux には lint(1) 無いんでしたっけ。もう知らない方が > 主流なのかしらん。 gcc でも clang でも、デフォルトでは /*NOTREACHED*/ や /*EMPTY*/ はプリ プロセッサに消されるし、 -CC で残しても無視されます。また、昔は効いてい たらしい #pragma lint NOTREACHED (lint コメントから変換されていた)も 今はもう効きません。 背景は知りませんが、おそらく、コンパイラの進化の一方で昔ながらの lint が持つ知識との乖離(最近のコンパイラならわざわざコメントを書かなくても 検出できることが分からない)が目立ってきたので切り捨てたのでしょう。 > host cc 用の -Wno-empty-body もあるので修正箇所は二箇所に > なります。この patch でどうでしょう? はい、いいと思います。 -- Akinori MUSHA / http://akinori.org/
Attachment:
pgp1ORZDEYjjX.pgp
Description: PGP signature