문제

Running splint

matt@stanley:~/cpfs$ splint -paramuse +gnuextensions cpfs.c

Halts on this line:

__thread int cpfs_errno;

With a parse error:

cpfs.c:127:13: Parse Error: Non-function declaration: __thread :
               int. (For help on parse errors, see splint -help parseerrors.)
*** Cannot continue.

Checking the documentation and gargle comes up with no mention of __thread. However __thread is part of the C99 spec, which Splint allegedly supports (insert reference).

What's going on here? How can I get splint to recognize __thread?

도움이 되었습니까?

해결책

From the splint FAQ, just add -D__thread= to the splint command line. This will have the effect of removing the __thread keyword from the code while splint is examining it. I'm assuming here that splint is not particularly thread aware, and wouldn't be able to use the information that was conveyed to GCC by the keyword.

다른 팁

__thread is not in C99. It is a GNU C extension - the section you have linked to is within Extensions to the C Language Family. It describes the extension in terms of changes to the C99 standard, presumably as preparation to have it adopted in a future revision of the standard.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top