Size: a a a

Compiler Development

2019 September 28

Dv

Dr. Friedrich von Never in Compiler Development
Признаться, я не могу понять, что оно пытается тут сделать
источник

M

MaxGraey in Compiler Development
но вот для c > 2 это уже не прокатит
источник

E

EgorBo in Compiler Development
думаю тут просто оптимизации деления подъехали
источник

E

EgorBo in Compiler Development
я в оригинале юзал 3
источник

E

EgorBo in Compiler Development
а не 2
источник

M

MaxGraey in Compiler Development
Просто signed и для 2 это будет рабоать:
(2147483647 << 1) >>> 1  -> 2147483647
Для > 2 уже нет:
(2147483647 << 2) >>> 2  -> 1073741823
источник

M

MaxGraey in Compiler Development
MaxGraey
Просто signed и для 2 это будет рабоать:
(2147483647 << 1) >>> 1  -> 2147483647
Для > 2 уже нет:
(2147483647 << 2) >>> 2  -> 1073741823
И то, если x > 0
источник

VK

Val Krylov in Compiler Development
Alexander Zaitsev
ну блин. берешь, делаешь UB и всё :)
Для UB плюсы есть. :) Лучше по дефолту транслировать как в дотнете, а остальное модификаторами вроде checked, nooverflow (UB), clamped, ... Так и будет когда-нибудь.
источник

E

EgorBo in Compiler Development
А здесь кто-нибудь знает — какие CPU инструкции может юзать clang или gcc когда не указан -march/-mcpu ?
(ну или когда указан generic) ?
источник

E

EgorBo in Compiler Development
по идее SSE,SSE2 на х64 всегда будет
источник

E

EgorBo in Compiler Development
а еще?
источник

SS

Sergey Sverdlov in Compiler Development
EgorBo
удивительный мир программирования
Я вот все думаю, какого черта все эти разговорчики про безопасность с защитой от NPE, mutable-immutable и пр. при том, что переполнение целых не фиксируется...
источник

M

MaxGraey in Compiler Development
в Rust можно атомарно или глобально это фиксировать
источник

M

MaxGraey in Compiler Development
В C/C++ можно микстовать signed и unsigned арифметику и максимум что будет - это варнинги
источник

SS

Sergey Sverdlov in Compiler Development
Допустим, Rust - хорошо, а как быть с явами и шарпами, на которых в миллионы раз больше пишется
источник

AK

Andrei Kurosh in Compiler Development
В шарпе есть checked
источник

SS

Sergey Sverdlov in Compiler Development
MaxGraey
В C/C++ можно микстовать signed и unsigned арифметику и максимум что будет - это варнинги
Ну, с Си какой спрос...
источник

M

MaxGraey in Compiler Development
В Swift все операции по умолчанию checked
источник

SS

Sergey Sverdlov in Compiler Development
MaxGraey
В Swift все операции по умолчанию checked
Вот это гуд!
источник

M

MaxGraey in Compiler Development
&- , &+, &* - это unchecked
источник