__threadのスプリントバーフ、これはC99の一部です
-
01-10-2019 - |
質問
スプリントを実行します
matt@stanley:~/cpfs$ splint -paramuse +gnuextensions cpfs.c
この行で停止します:
__thread int cpfs_errno;
解析エラーで:
cpfs.c:127:13: Parse Error: Non-function declaration: __thread : int. (For help on parse errors, see splint -help parseerrors.) *** Cannot continue.
ドキュメントとうがいをチェックする __thread
. 。でも __thread
C99仕様の一部です, 、スプリントがサポートしていると言われています(参照を挿入)。
何が起きてる?スプリントに認識するにはどうすればよいですか __thread
?
解決
から スプリントFAQ, 、追加するだけです -D__thread=
スプリントコマンドラインに。これは、削除する効果があります __thread
スプリントがそれを調べている間、コードからのキーワード。ここでは、スプリントは特にスレッド認識ではなく、キーワードによってGCCに伝えられた情報を使用できないと仮定しています。
他のヒント
__thread
C99にはありません。それはGNU C拡張です - あなたがリンクしたセクションは内にあります C言語ファミリへの拡張. 。おそらく、標準の将来の改訂でそれを採用する準備として、C99標準の変更の観点から拡張を説明しています。
所属していません StackOverflow