Size: a a a

2020 June 04

p

polunin.ai in rust_offtopic
конкретно в твоем варианте компилятор все соптимизировал, он даже не понял что там УБ
источник

DO

Dmitry Olyenyov in rust_offtopic
я еще какой-то пример видел, там типа переменная a получается в результате UB, и есть две ветки
if(a == 0){v1} if(v!=0) {v2} и ни одна из веток не исполняется. :)
источник

SK

Sergey Korotkov in rust_offtopic
Dmitry Olyenyov
я еще какой-то пример видел, там типа переменная a получается в результате UB, и есть две ветки
if(a == 0){v1} if(v!=0) {v2} и ни одна из веток не исполняется. :)
Потому что a и v разные переменные?)
источник

DO

Dmitry Olyenyov in rust_offtopic
ой,  :)
источник

DO

Dmitry Olyenyov in rust_offtopic
ну там одна и та же переменная была в примере :)
источник

p

polunin.ai in rust_offtopic
UB говорит что поведение программы неопределено
источник

DO

Dmitry Olyenyov in rust_offtopic
типа как с NaN
источник

p

polunin.ai in rust_offtopic
поэтому скомпилироваться может любая дичь
источник

p

polunin.ai in rust_offtopic
попробуй создать две &mut ссылки на одну переменную в раст
источник

DO

Dmitry Olyenyov in rust_offtopic
Вооот, а почему бы компилятору сразу на такое не ругаться?..
источник

p

polunin.ai in rust_offtopic
он тоже дичь полную выдаст
источник

DO

Dmitry Olyenyov in rust_offtopic
через unsafe?
источник

p

polunin.ai in rust_offtopic
Dmitry Olyenyov
через unsafe?
да
источник

p

polunin.ai in rust_offtopic
Dmitry Olyenyov
Вооот, а почему бы компилятору сразу на такое не ругаться?..
я же говорю, компилятор не всегда может статически определить присутсвие УБ в коде
источник

DO

Dmitry Olyenyov in rust_offtopic
Да, но он зачем-то начинает дичь творить, мог бы падать с ошибкой?..
источник

p

polunin.ai in rust_offtopic
даже человек может потратить несколько часов прежде чем найдет УБ
источник

p

polunin.ai in rust_offtopic
Dmitry Olyenyov
Да, но он зачем-то начинает дичь творить, мог бы падать с ошибкой?..
предполагается что данного случая не произойдет никогда, в этом суть UB
источник

SK

Sergey Korotkov in rust_offtopic
Dmitry Olyenyov
Да, но он зачем-то начинает дичь творить, мог бы падать с ошибкой?..
Кто дичь творить начинает?
источник

p

polunin.ai in rust_offtopic
компилятор всегда считает что действия программы будут определенными спецификацией. если человек совершает действие которое не определено спецификацией, компилятор компилирует как буд-то этого действия нет
источник

DO

Dmitry Olyenyov in rust_offtopic
компилятор. Начинает странно оптимизировать.
источник