Re[8]: Как такое написать по Сиплюсплюсному?
От: rg45 СССР  
Дата: 28.03.25 06:49
Оценка:
Здравствуйте, vopl, Вы писали:

_>>если байт это 8бит то в C++ он имеет 257 значений


V>Можешь разъяснить/продемонстрировать процитированное пожалуйста?


Я воспринял это как гиперболу (художественное преувеличение).
--
Справедливость выше закона. А человечность выше справедливости.
Re[8]: Как такое написать по Сиплюсплюсному?
От: kov_serg Россия  
Дата: 28.03.25 07:57
Оценка:
Здравствуйте, vopl, Вы писали:

V>Здравствуйте, kov_serg, Вы писали:


_>>если байт это 8бит то в C++ он имеет 257 значений


V>Можешь разъяснить/продемонстрировать процитированное пожалуйста?


{all_possible_values}+{POISON}

https://llvm.org/devmtg/2020-09/slides/Lee-UndefPoison.pdf

https://godbolt.org/z/od1cbjMfv

ps: из плюсов теперь clang по умолчанию так больше не делает и надо специально указывать это параметром.
Re[9]: Как такое написать по Сиплюсплюсному?
От: vopl Россия  
Дата: 28.03.25 08:40
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Здравствуйте, vopl, Вы писали:


V>>Здравствуйте, kov_serg, Вы писали:


_>>>если байт это 8бит то в C++ он имеет 257 значений


V>>Можешь разъяснить/продемонстрировать процитированное пожалуйста?


_>{all_possible_values}+{POISON}


_>https://llvm.org/devmtg/2020-09/slides/Lee-UndefPoison.pdf


_>https://godbolt.org/z/od1cbjMfv


_>ps: из плюсов теперь clang по умолчанию так больше не делает и надо специально указывать это параметром.


А.. Ученый изнасиловал журналиста) Poison не является дополнительным значением в домен типа, он представляет собой лишь маркер на уровне оптимизатора. Например, обрати внимание на страницу 14, там демонстрируется что undef вполне себе поглащает poison, и если бы poison был 257-ым то как бы он влез в 256-местный undef?
Re[10]: Как такое написать по Сиплюсплюсному?
От: kov_serg Россия  
Дата: 28.03.25 10:28
Оценка: :)
Здравствуйте, vopl, Вы писали:

V>А.. Ученый изнасиловал журналиста) Poison не является дополнительным значением в домен типа, он представляет собой лишь маркер на уровне оптимизатора.

Еще как является. Он используется на уровне оптимизатора и представляет не представимое значение.

V>Например, обрати внимание на страницу 14, там демонстрируется что undef вполне себе поглащает poison, и если бы poison был 257-ым то как бы он влез в 256-местный undef?

Я про то что poison может возвращаться из функции. И эта модель использется компилятором. То что этого не умеет железо это вообще не важно.
Такая же фигня с указателями, компилятор таскает дополнительную информацию с указателями и когда он её теряет получаем UB. (например при попытке 64битный указатель сложить в 64 инт, получаем потерю информации).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.