Быстрая проблема с использованием max() и min() последовательно при архивировании на Xcode

В разделе "Компиляция быстрых файлов" во время архивации он сказал, что конкретный файл имел эту ошибку:

PHI node has multiple entries for the same basic block with different incoming values!
  %31 = phi i64 [ 3, %385 ], [ %386, %385 ], [ 1, %29 ], !dbg !1370
label %385
i64 3
  %386 = phi i64 [ %23, %27 ], !dbg !1433
LLVM ERROR: Broken function found, compilation aborted!

После комментирования кода файла некоторое время я обнаружил, что следующие строки кода были проблемой:

var normalizedStrikes = max(1, strikes)
normalizedStrikes = min(normalizedStrikes, 3)

После многих попыток я обнаружил, что не могу использовать max(), а затем min(), вот что решило проблему для меня:

var normalizedStrikes = strikes
if (normalizedStrikes <= 0) {
    normalizedStrikes = 1
}
normalizedStrikes = min(normalizedStrikes, 3)

Еще одна очень приятная вещь, которую я обнаружил, заключается в том, что если я изменю условие на "< 1", он выдаст ту же ошибку. Хороший материал.

var normalizedStrikes = strikes
if (normalizedStrikes < 1) {
    normalizedStrikes = 1
}
normalizedStrikes = min(normalizedStrikes, 3)

Мой вопрос: почему это произошло?

Btw Я использую Xcode Version 6.1.1 (6A2008a)

Ответы

Ответ 1

Это разрешено с Xcode 6.3 (6D570).