Во время фазы компиляции программное обеспечение отображает предупреждающее сообщение или сообщение об ошибке о неизвестном прототипе функции.
the prototype for function 'myfunc' is unknown
Чтобы определить типы данных для таких функций, Polyspace следует Стандарту C99 (ISO/IEC 9899:1999, Глава 6.5.2.2: Вызовы функции).
Тип возврата принят, чтобы быть int
.
Номер и тип аргументов определяются первым вызовом функции. Например, если функция берет один double
аргумент в первом вызове, для последующих вызовов, программное обеспечение принимает, что требуется один double
аргумент. Если вы передаете int
аргумент в последующем вызове, преобразовании из int
к double
происходит.
Во время соединяющейся фазы, если несоответствие находится между номером или типом аргументов или типом возврата в различных единицах компиляции, анализ следует за внутренним алгоритмом, чтобы разрешить это несоответствие и определить общий прототип.
Исходный код, который вы предоставили, не содержит прототипа функции. Например, функция объявляется во включать файле, который не может найти Polyspace.
Если вы #include
- d включать файл в вашем исходном коде, но не добавил его в ваш проект Polyspace, вы видите, что предыдущее предупреждает:
Warning: could not find include file "my_include.h"
Ищите объявление функции в своем исходном репозитории.
Если вы находите объявление функции во включать файле, добавьте папку, которая содержит включать файл.
В пользовательском интерфейсе десктопных решений Polyspace добавьте папку в свой проект.
Для получения дополнительной информации смотрите, Добавляют Исходные файлы для Анализа в Пользовательском интерфейсе Polyspace (Polyspace Bug Finder).
В командной строке используйте флаг -I
с polyspace-bug-finder-server
команда.
Для получения дополнительной информации смотрите -I
.