Переменный спецификатор потерян во время преобразования
Это средство проверки деактивировано в Polyspace® по умолчанию как Вы Анализ кода. Смотрите Средства проверки, Деактивированные в Polyspace, когда Вы Кодируете Анализ По умолчанию (Polyspace Bug Finder Access).
Этот дефект происходит во время преобразования указателя, когда один указатель имеет спецификатор, и другой не делает. Например, при преобразовании от const int*
к int*
, преобразование удаляет const
спецификатор.
Этот дефект применяется только для проектов в C.
Спецификаторы, такие как const
или volatile
в объявлении указателя:
const int* ptr;
const
или volatile
. Эти спецификаторы действуют как инструкции к компилятору. Например, const
объект, как предполагается, не изменяется в коде и volatile
объект, как предполагается, не оптимизирован далеко компилятором.Если второй указатель указывает на тот же объект, но не использует тот же спецификатор, спецификатор на первом указателе больше не действителен. Например, если const int*
указатель и int*
точка указателя к тому же объекту, можно изменить объект через второй указатель и нарушить контракт, подразумеваемый const
спецификатор в первом указателе.
Если вы намереваетесь преобразовать от одного указателя до другого, объявите оба указателя с теми же спецификаторами.
Группа: Программирование |
Язык: C |
Значение по умолчанию: Off |
Синтаксис командной строки: QUALIFIER_MISMATCH |
Удар: низко |
ID CWE: 704 |