2015-02-14 10 views
12

On "Compilazione file Swift" passo durante l'archiviazione, ha detto che un particolare file ha avuto questo errore:problema Swift utilizzando max() e min() in sequenza durante l'archiviazione su 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! 

Dopo aver commentato il codice del file per un po 'ho scoperto che le seguenti righe di codice sono stati il ​​problema:

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

Dopo aver provato un sacco di cose che ho scoperto che non potevo usare max() e poi min(), ecco che cosa risolto il problema per me:

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

Un'altra cosa molto carina che ho trovato è che se cambio la condizione in "< 1", si genera lo stesso errore. Roba buona.

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

La mia domanda è: perché è successo?

Btw che sto usando Xcode Versione 6.1.1 (6A2008a)

+0

Questo è un bug piuttosto interessante. L'ho duplicato sul mio ambiente di sviluppo. Il compilatore veloce è ancora abbastanza nuovo, ed è pieno di bug. Migliorerà col tempo. – HalR

+0

Bel posto con questo, stavo ottenendo un errore simile: 'Nodo PHI ha più voci per lo stesso blocco di base con diversi valori in entrata!' '% 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 doppia [% 5, voce%], DBG 252' 'LLVM ERRORE:!! funzione rotto trovata, la compilazione interrotta' E grazie al tuo post ho trovato il problema era con:! 'progresso = min (1 , max (0, progresso)) ' Inoltre, ho notato solo l'errore si è verificato durante la creazione della configurazione di rilascio che eseguiva Optimisations ... Ancora grazie! – Rich

+0

Hai fatto un bug su questo? –

risposta

1

Questo viene risolto come di Xcode 6.3 (6D570).