Квалификатор переменной теряется во время преобразования
Эта проверка деактивируется в анализе 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 |
| По умолчанию: Откл. |
Синтаксис командной строки: QUALIFIER_MISMATCH |
| Воздействие: Низкий |
| CWE ID: 704 |