LINUX.ORG.RU

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

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

Можно и одну сделать, но нужно написать так:

Или num[1] + num[0]. То-ли у llvm c constrait propagation что-то не то, то-ли rust генерит IR, который говорит, что проверку на паники нельзя реордерить.

start:
  switch i64 %num.1, label %bb2 [
    i64 0, label %panic
    i64 1, label %panic1
  ], !prof !2

panic и panic1 - одно и то же. Непонятно почему llvm не сворачивает это в одну проверку.

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

Можно и одну сделать, но нужно написать так:

Или num[1] + num[0]. То-ли у llvm c constrait propagation что-то не то, то-ли rust генерит IR, который говорит, что проверку на паники нельзя реордерить.