2015-02-14 4 views
12

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)

+0

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

+0

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

+0

Haben Sie einen Fehler gemeldet? –

Antwort

1

Dies als von Xcode behoben ist 6,3 (6D570).