QA@IT
«質問へ戻る

質問を投稿

ANSI C チェッカーはないものか

最近、ruby 2.0.0devを gcc -ansi でコンパイルするようにフラグを弄った者です。

ところがこの指定はWindows(mingw等)やいくつかのUnix系環境で問題があり、どうやら筋が悪かったということらしく、後から他の人に回避コードをたくさん入れられてわりと凹んでいます。

ANSIチェックはgccでやらせずに専用のlintとかを使うべきだ、というふうに言われて、まあそれはそれで一理あるものの、問題はそのようなANSIチェックができるlintがなかなか見当たらないということにあります。

そこで伺いたいのですが、ANSI Cから逸脱したプログラム のみ を警告してくれるようなものはどこかにございませんでしょうか。

ポイント:

  • 静的解析でバグを見つけたいわけではなく、移植性の観点からANSI Cを逸脱しないようにするのが目的。
  • ライブラリ関数の引数の型がどうとかはrubyの側でどうにも対処できないのでそういうのを警告されても困るだけである。文法の誤りを回避できれば当面の用は足りる。
  • できればTravis CIで自動的にチェックさせたいのでTravisのVMでも動くものが好ましい。
  • (実績)gcc -ansiには難あり

よろしくおねがいします。

最近、ruby 2.0.0devを `gcc -ansi` でコンパイルするように[フラグを弄った](http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=36038&view=revision)者です。

ところがこの指定はWindows(mingw等)やいくつかのUnix系環境で問題があり、どうやら筋が悪かったということらしく、後から他の人に回避コードをたくさん入れられてわりと凹んでいます。

ANSIチェックはgccでやらせずに専用のlintとかを使うべきだ、というふうに言われて、まあそれはそれで一理あるものの、問題はそのようなANSIチェックができるlintがなかなか見当たらないということにあります。

そこで伺いたいのですが、ANSI Cから逸脱したプログラム **のみ** を警告してくれるようなものはどこかにございませんでしょうか。

ポイント:

  * 静的解析でバグを見つけたいわけではなく、移植性の観点からANSI Cを逸脱しないようにするのが目的。
  * ライブラリ関数の引数の型がどうとかはrubyの側でどうにも対処できないのでそういうのを警告されても困るだけである。文法の誤りを回避できれば当面の用は足りる。
  * できればTravis CIで自動的にチェックさせたいのでTravisのVMでも動くものが好ましい。
  * (実績)`gcc -ansi`には難あり

よろしくおねがいします。