Несоответствие между объявлениями функций или переменных
Эта проверка деактивирована в Polyspace по умолчанию® по мере анализа You Code. Смотрите Checkers Deactivated in Polyspace как You Code Default Analysis (Polyspace Bug Finder Access).
Этот дефект возникает, когда объявление функции или переменной не совпадает с другими образцами функции или переменной.
Когда происходит несоответствие между двумя объявлениями переменных в разных модулях компиляции, типичный линкер следует алгоритму, чтобы выбрать одно объявление для переменной. Если вы ожидаете объявления переменной, которое отличается от выбранного линкером, можно увидеть неожиданные результаты, когда используется переменная.
Аналогичная проблема может возникнуть при несоответствии в объявлениях функций.
Исправление зависит от типа несоответствия объявления. Если оба объявления действительно ссылаются на один и тот же объект, используйте одно и то же объявление. Если объявления ссылаются на различные объекты, измените имена одной из переменных. Если вы меняете имя переменной, не забудьте изменить ее во всех местах, где она используется.
Иногда несоответствия объявления могут возникнуть, потому что на объявления влияют предыдущие директивы предварительной обработки. Например, объявление происходит в макросе, и макрос определяется на одном пути включения, но не определен в другом. Эти несоответствия деклараций могут быть сложными для отладки. Идентифицируйте расхождения между двумя путями включения и исправьте конфликтующие определения макросов.
Если вы не хотите устранять проблему, добавьте комментарии к своему результату или коду, чтобы избежать другой проверки. Смотрите Адрес Результаты Polyspace через исправления ошибок или обоснования.
Группа: Программирование |
Язык: C | C++ |
По умолчанию: On |
Синтаксис командной строки: DECL_MISMATCH |
Влияние: Высокий |
ИДЕНТИФИКАТОР CWE: 685, 686 |