LINUX.ORG.RU

История изменений

Исправление red75prim, (текущая версия) :

Это генерирует одну инструкцию, но это UB по стандарту, хотя по факту работать будет…

Наличие UB зависит от того на что этот uint8_t* указывает.

Указатель на переменную типа uint8_t на стеке? Несомненный UB независимо от выравнивания (доступ к объекту по указателю не совпадающему с эффективным типом объекта)

Указатель на аллоцированную память? Зависит от того что в этой аллоцированной памяти хранится. Если эффективный тип объекта по адресу в указателе это uint32_t, то можно читать писать без проблем. А что там хранится определяется первой записью в эту область памяти.

Указатель на 32-х битный аппаратный регистр отмапленный в этот адрес? По-моему, UB.

Исправление red75prim, :

Это генерирует одну инструкцию, но это UB по стандарту, хотя по факту работать будет…

Наличие UB зависит от того на что этот uint8_t* указывает.

Указатель на переменную типа uint8_t на стеке? Несомненный UB независимо от выравнивания (доступ к объекту по указателю не совпадающему с эффективным типом объекта)

Указатель на аллоцированную память? Зависит от того что в этой аллоцированной памяти хранится. Если эффективный тип объекта по адресу в указателе это uint32_t, то можно читать писать без проблем. А что там хранится определяется первой записью в эту область памяти.

Указатель на аппаратный регистр отмапленный в этот адрес? По-моему, UB.

Исходная версия red75prim, :

Это генерирует одну инструкцию, но это UB по стандарту, хотя по факту работать будет…

Наличие UB зависит от того на что этот uint8_t* указывает.

Указатель на переменную типа uint8_t на стеке? Несомненный UB (доступ к объекту по указателю не совпадающему с эффективным типом объекта)

Указатель на аллоцированную память? Зависит от того что в этой аллоцированной памяти хранится. Если эффективный тип объекта по адресу в указателе это uint32_t, то можно читать писать без проблем. А что там хранится определяется первой записью в эту область памяти.

Указатель на аппаратный регистр отмапленный в этот адрес? По-моему, UB.