C 夹板:要求不要检查系统标题
有没有办法阻止splint分析包含的系统头、POSIX、libc等。?我使用C 夹板:要求不要检查系统标题,c,static-analysis,splint,C,Static Analysis,Splint,有没有办法阻止splint分析包含的系统头、POSIX、libc等。?我使用-warnposix-preproc运行: % splint -warnposix -preproc my.c /usr/include/unistd.h:220:8: Parse Error: Non-function declaration: __BEGIN_DECLS : int. (For help on parse errors, see splint -help parseerrors.)
-warnposix-preproc
运行:
% splint -warnposix -preproc my.c
/usr/include/unistd.h:220:8: Parse Error: Non-function declaration:
__BEGIN_DECLS : int. (For help on parse errors, see splint -help
parseerrors.)
*** Cannot continue.
更新:
% splint +posixlib +unixlib -I/path/to/myheaders -I/usr/include/x86_64-linux-gnu my.c
/usr/include/asm-generic/int-ll64.h:19:24: Parse Error:
Suspect missing struct or union keyword: __signed__ :
int. (For help on parse errors, see splint -help parseerrors.)
阅读后,我试图消除非标准关键字:
% splint +posixlib +unixlib -D__signed__= -I/path/to/myheaders -I/usr/include/x86_64-linux-gnu my.c
/usr/include/x86_64-linux-gnu/sys/syslog.h:200:66: Parse Error:
Inconsistent function parameter syntax: __gnuc_va_list :
<any>. (For help on parse errors, see splint -help parseerrors.)
*** Cannot continue.
%splint+posixlib+unixlib-D_uuuu-signed_uuu=-I/path/to/myheaders-I/usr/include/x86_64-linux-gnu my.c
/usr/include/x86_64-linux-gnu/sys/syslog.h:200:66:解析错误:
函数参数语法不一致:_gnuc_va_列表:
. (有关分析错误的帮助,请参阅splint-help parseerrors。)
***无法继续。
在这种特殊情况下,将
\uu gnuc\u va\u list
声明为非标准关键字没有帮助。我觉得splint
是一个强大的工具,但它需要对它解析的几乎所有代码进行注释。我错了吗?文档:@jxh,谢谢你的评论。请看我的更新。我想知道有没有办法问splint
根本不检查系统标题?您还应该阅读:正如前面的常见问题解答所建议的那样。@jxh,我做了,但是声明非标准关键字无助于splint
绕过。我更新了原始帖子。请尝试签名,而不是空的。另外,+gnuextensions
。