[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00987] Re: -Wno-empty-body not recognized by FreeBSD gcc



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