2014-10-08 10 views
6

Recentemente ho riscontrato doppia dichiarazione return (una di queste è stata aggiunta per errore) nel nostro progetto e mi chiedo perché lo compiler non mostri un avviso per quello ?!L'istruzione di reso non verrà mai eseguita avviso

Ok, ho aggiunto -Wunreachable-code ad altre bandiere di avvertimento, ma ancora senza fortuna.

Got avvertimento - con un codice da eseguire dopo return dichiarazione:

enter image description here

non ha ottenuto avvertimento, ma ancora non verrà mai eseguito secondo return dichiarazione. enter image description here

Anche se aggiungo qualcosa di simile, ancora nessun avviso

enter image description here

C'è bandiera di avvertimento in più per questo, o compilatore non è abbastanza intelligente?

+2

perché il metodo restituisce l'uscita prima dell'esecuzione che codifica –

+0

per entrambi gli esempi, quindi cosa? – Injectios

+0

per entrambi gli esempi il tuo metodo non esegue mai dopo il ritorno –

risposta

2

Buona cattura!

-Wunreachable-code non segnala un avviso e non c'è nessun altro flag di avviso che farebbe.
Neanche l'analizzatore statico rileva questo errore!

(Testato con XCode 6.1 GM 2)

+0

ma tutti gli avvisi spariranno ... Suppongo che non sia appropriato per topicstarter. – Vlad

+0

Perché tutti gli avvisi dovrebbero scomparire? '-Wunreachable-code' abilita ** altri ** avvertimenti, sebbene non accetterà quello menzionato dall'argomento topic. – fluidsonic

+0

Intendevo avvertenze su altri "codici morti". – Vlad

-1

Prova questo ...

-(NSString*) makeSomeStringForMe { 

    NSString *someString = @"some string"; 

    return someString; 

} 
+0

Potresti modificare la tua domanda per aggiungere una spiegazione di cosa fa questo codice e come risponde alla domanda? – Kenster

0

Uso -Wno-unreachable-code per il file in fasi di creazione.

Problemi correlati