运行夹板
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
is part of the C99 spec,据说Splint支持(插入引用)。
这里发生了什么?如何让夹板识别__thread
?
答案 0 :(得分:6)
__thread
不在C99中。它是GNU C扩展 - 您链接的部分在Extensions to the C Language Family之内。它描述了对C99标准变更的扩展,可能是为了准备在未来的标准修订中采用它。
答案 1 :(得分:3)
从splint FAQ,只需将-D__thread=
添加到splint命令行。当splint检查代码时,这将导致从代码中删除__thread
关键字。我在这里假设splint不是特别具有线程感知,并且无法使用通过关键字传达给GCC的信息。