[adlint-user-ja:93] Re: システムヘッダファイル内での構文エラー
Open source and free source code static analyzer
Brought to you by:
asamiogis
From: Yutaka Y. <ya...@us...> - 2014-05-07 04:22:18
|
矢野尾です。 AdLint 3.2.12 では C99 の可変引数マクロに対応していないのが原因です。 かなり乱暴な方法ですが、とりあえずはトークン置換機能を使って、 define_smartio_variants マクロの呼び出しを削除してみると構文エラーは 逃げれそうです。 adlint_traits.yml ファイルの、arbitrary_substitution: 項目を下記のよう に変更してお試し下さい。 arbitrary_substitutions: ...その他の設定... "define_smartio_variants(__adlint__any);": "" # <- 追加 この設定により、AdLint 解析中のプリプロセス直後に define_smartio_variants(任意のトークン); の部分を削除するようになります。 ソースコード中から上記を単純に削除してしまうので、fprintf などの標準 ライブラリ関数のプロトタイプ宣言が無くなってしまい、余計な警告が増えて しまうかと思いますが、その部分は無視してください。 # やはり、可変引数マクロにもきちんと対応しないとだめですね。。。 # 時間を見つけて AdLint 3.2.14 でやってみたいと思います。 -- 矢野尾 裕 <ya...@us...> |