ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:jjk65536 GCCで暗黙の型変換の警告を出したい
困り度:
  • 暇なときにでも
情報が失われてしまうような代入について警告を出したいのですが、
どういったオプションを用いればよいでしょうか?
コンパイラはGCCの3.x系か4.x系でお願いします。

以下のようなソースで型変換に関する警告がほしいんです。
--- test.c ---
#include <stdio.h>
int main(void)
{
  int a = 66000;
  short b;

  b = a; // <- 暗黙の型変換

  printf("%d\n", b);
  return 0;
}

実行結果
$ ./test
464

以下のオプションを試しましたが、上記のソースでは
何の警告も出ませんでした。
-W
-Wall
-Wconversion
-Wimplicit

ご存知の方いらっしゃいましたら、どうかお助け下さい。
質問投稿日時:08/04/18 13:45
質問番号:3956989
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答10pt

回答者:hidebun http://d.hatena.ne.jp/yupo5656/20040830/p2
のように、警告が出なかったようですね。
このブログの方は、splintというコードチェックツールを紹介されていましたが。

#1さんが書かれているように、4.3から警告できるようになったようです。
GCC 4.3 Release Series(Changes, New Features, and Fixes):
http://gcc.gnu.org/gcc-4.3/changes.html

The -Wconversion option has been modified. Its purpose now is to warn for implicit conversions that may alter a value. This new behavior is available for both C and C++.
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/18 15:16
回答番号:No.2
この回答へのお礼Lintを使う発想はありませんでした。
目から鱗です。

シンプルなソースならsplint、GCC拡張コードとかが含まれる
移植性の低いコードにはGCC4.3といった形でソースコードチェックを
実施してみます。

ありがとうございました。

回答

良回答20pt

回答者:colder version 4.3では、-Wconversion で警告が出ました。
それ以前のversionでは、おそらく無理です。
種類:回答
どんな人:一般人
自信:自信あり
回答日時:08/04/18 14:47
回答番号:No.1
この回答へのお礼4.3の新機能だったんですね。
「以下のオプションを試しましたが、」と書きましたが、GCC4.3では
試していませんでした。
スミマセン。

GCC4.3とNo2様のsplintの両方を試してみて、使いやすそうな方を
検討してみます。
ありがとうございました。
 
最新から表示回答順に表示良回答のみ表示