История изменений
Исправление jpegqs, (текущая версия) :
Так нельзя сделать. Можно написать на ассемблере функцию что будет создавать нужные указатели. Эта защита похожа на адрес санитайзер.
Эти указатели не совместимы со стандартом Си. Можно сконвертировать указатель в intptr, но нельзя обратно.
Поэтому, например, нельзя сделать выравнивание указателя вот так:
p = (char*)(((intptr_t)p + 15) & ~15);
Нужно так:
p += -(intptr_t)p & 15;
Исходная версия jpegqs, :
Так нельзя сделать. Можно написать на ассемблере функцию что будет создавать нужные указатели. Эта защита похожа на адрес санитайзер.
Эти указатели не совместимы со стандартом Си. Можно сконвертировать указатель в intptr, но нельзя обратно.
Поэтому, например, нельзя сделать выравнивание указателя вот так:
p = (char*)(((intptr_p)p + 15) & ~15);
Нужно так:
p += -(intptr_p)p & 15;