Mar*_*ark 5 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.)
*** Cannot continue.
Run Code Online (Sandbox Code Playgroud)
更新:
% 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.)
Run Code Online (Sandbox Code Playgroud)
阅读夹板 FAQ14 后,我试图消除非标准关键字:
% 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.
Run Code Online (Sandbox Code Playgroud)
__gnuc_va_list在这种特殊情况下,声明为非标准关键字无济于事。我觉得这splint是一个强大的工具,但它需要对它解析的几乎所有代码进行注释。我错了吗?