C++ Cppcheck can';t检查第三个参数?

C++ Cppcheck can';t检查第三个参数?,c++,cppcheck,C++,Cppcheck,这是我的.cfg <?xml version="1.0"?> <def format="1"> <function name="wcscpy_s"> <arg nr="1"> <not-uninit/> </arg> <arg nr="2"> <not-uninit/> </arg

这是我的.cfg

<?xml version="1.0"?>
<def format="1">
  <function name="wcscpy_s">
        <arg nr="1">
            <not-uninit/>
        </arg>
        <arg nr="2">
            <not-uninit/>
        </arg>
        <arg nr="3">
            <not-uninit/>
        </arg>
    </function>
</def>
错误是:

D:\staff>cppcheck D:\staff\test.cpp --library=my.cfg
Checking D:\staff\test.cpp...
[D:\staff\test.cpp:4]: (error) Uninitialized variable: a
[D:\staff\test.cpp:5]: (error) Uninitialized variable: a
显然,它没有找到第三个参数,它也是统一的。 我将文件更改为:

int main() {
    char a[100];
    wcscpy_s(
        1,
        1,
        a);
}
现在它没有显示任何错误。 所以我很困惑。
Cppcheck无法检查第三个参数?

当然这不是有意的。我认为这是由一些旧代码造成的,这些代码只用于处理一些特殊的函数

你能为此制作一张罚单吗?

最新版本的Cppcheck(1.70 dev)能够检测到此问题:

$ cppcheck test.cpp  --library=my.cfg
Checking test.cpp...
[test.cpp:4]: (error) Uninitialized variable: a
[test.cpp:5]: (error) Uninitialized variable: a
[test.cpp:6]: (error) Uninitialized variable: a

哦,天哪,谁认为用XML描述C++函数是个好主意?Cppcheck知道函数是如何工作的,这是非常好的。xml是一种有很好的工具支持的格式。我想你也同意Cppcheck知道函数是如何工作的。那么我们如何配置wcscpy_的工作方式呢。我认为没有太多的选择。
$ cppcheck test.cpp  --library=my.cfg
Checking test.cpp...
[test.cpp:4]: (error) Uninitialized variable: a
[test.cpp:5]: (error) Uninitialized variable: a
[test.cpp:6]: (error) Uninitialized variable: a