On „Kompilieren schnelle Dateien“ Schritt während der Archivierung, hieß es, dass eine bestimmte Datei diesen Fehler hatte:Swift Ausgabe mit max() und min() nacheinander bei der Archivierung auf 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!
Nach der Datei Code zu kommentieren für eine Weile fand ich, dass die folgenden Codezeilen aus der Ausgabe waren:
var normalizedStrikes = max(1, strikes)
normalizedStrikes = min(normalizedStrikes, 3)
nach dem Versuch, eine Menge Dinge heraus, dass ich entdeckte, dass ich nicht max() und dann min(), ist hier nutzen könnten, was löste das Problem für mich:
Eine andere sehr nette Sache, die ich gefunden habe, ist, dass, wenn ich die Bedingung zu "< 1" ändere, es den gleichen Fehler wirft. Gutes Zeug.
var normalizedStrikes = strikes
if (normalizedStrikes < 1) {
normalizedStrikes = 1
}
normalizedStrikes = min(normalizedStrikes, 3)
Meine Frage ist: warum ist das passiert?
Btw bin ich mit Xcode Version 6.1.1 (6A2008a)
Das ist ein ziemlich cooler Bug. Ich habe es in meiner Entwicklungsumgebung dupliziert. Der Swift-Compiler ist noch ziemlich neu und voller Bugs. Es wird mit der Zeit besser werden. – HalR
Schöne Stelle mit dieser, ich bekam einen ähnlichen Fehler: 'PHI-Knoten hat mehrere Einträge für den gleichen Basisblock mit verschiedenen eingehenden Werte!' '% 12 = phi double [% 9,% 8], [1.000000e +00,% 8], [0.000000e + 00,% 7], [1.000000e + 00,% 7],! Dbg! 254' 'label% 8' ' double 1.000000e + 00' '% 9 = phi double [% 5,% entry],! dbg! 252' 'LLVM FEHLER: Fehlerhafte Funktion gefunden, Kompilation abgebrochen!' Und dank deines Beitrags habe ich folgendes Problem gefunden: 'progress = min (1 , max (0, Fortschritt)) ' Ich merke auch nur den Fehler aufgetreten, während die Release-Konfiguration, die Optimierungen ...ausgeführt wurde Prost wieder! – Rich
Haben Sie einen Fehler gemeldet? –