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>
<arg nr="3">
<not-uninit/>
</arg>
</function>
</def>

И я использую его, чтобы проверить удар Cpp файл.

int main() {
char a[100];
wcscpy_s(
a,
a,
a);
}

И ошибка:

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 не может проверить третьи параметры?

0

Решение

Конечно, это не случайно. Я думаю, что это вызвано некоторым старым кодом, который предназначался только для обработки некоторых специальных функций.

Вы можете создать тикет об этом?
http://trac.cppcheck.net/

0

Другие решения

Последняя версия 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
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector