Size: a a a

2021 May 01

EG

Emmanuel Goldstein in rust_offtopic
Внешне выглядит что это про side effects, которые изменяют execution environment, который совершенно не обязательно процессор
источник

EG

Emmanuel Goldstein in rust_offtopic
В моей интуиции volatile может лежать в регистре, если на него ни разу не взяли ссылку
источник

B

Börgar in rust_offtopic
да, но мы уже взяли поинтер
источник

EG

Emmanuel Goldstein in rust_offtopic
Ваще 4.2, если не прописано, что операция должна делать, то это UB.
*ptr прописано только для объектов и функций, стало быть, делать это не с  объектом и не с функцией — UB
источник

EG

Emmanuel Goldstein in rust_offtopic
Ты не можешь объявить адрес volatile, только переменную. И у тебя нет переменной, которая лежит на 0x1337
источник

B

Börgar in rust_offtopic
6.7.3.6 видимо
источник

B

Börgar in rust_offtopic
а всмысле не могу?
источник

EG

Emmanuel Goldstein in rust_offtopic
А как?
источник

EG

Emmanuel Goldstein in rust_offtopic
Ты ж не можешь сделать volatile 0x1337;
источник

AN

Alex Noname in rust_offtopic
мой поинт был в том что в ядре там скорее всего сравниваются с NULL указатели которые не из адресс спейса пользователя. поэтому там нету указателей на адресс 0
источник

B

Börgar in rust_offtopic
volatile int *
источник

EG

Emmanuel Goldstein in rust_offtopic
Это у тебя сам pointer будет volatile, а не память за ним
источник

EG

Emmanuel Goldstein in rust_offtopic
Не?
источник

B

Börgar in rust_offtopic
неа, int * volatile тогда поинтер
источник

EG

Emmanuel Goldstein in rust_offtopic
Подожди, неважно, это требует только выполнять всё по правилам abstract machine
источник

EG

Emmanuel Goldstein in rust_offtopic
Которые никак не учитывают возможности чтения не-объекта
источник

EG

Emmanuel Goldstein in rust_offtopic
Это про запрет оптимизаций, а не про то, что ты можешь нарушать правила
источник

AN

Alex Noname in rust_offtopic
если же пользователь заммапил NULL и собрал gcc то он ссзб :(
источник

B

Börgar in rust_offtopic
а импл гарантирует нам там объект
источник

EG

Emmanuel Goldstein in rust_offtopic
Импл это компилятор, а не платформа
источник