2014-10-08 13 views
6

Ich bin kürzlich mit Doppel return Aussage (einer von ihnen wurde versehentlich hinzugefügt) in unserem Projekt und wundern, warum compiler zeigt keine Warnung dafür ?!Return-Anweisung wird nie ausgeführt werden Warnung

Ok, ich habe -Wunreachable-code zu anderen Warnflaggen hinzugefügt, aber immer noch kein Glück.

Warnung Got - mit einem Code nach return Anweisung auszuführen:

enter image description here

nicht bekommen Warnung aber noch zweite return Anweisung nie ausgeführt werden. enter image description here

Auch wenn ich so etwas wie dies hinzufügen, noch keine Warnung

enter image description here

Gibt es zusätzliche Warn-Flag für das, oder Compiler ist nicht intelligent genug?

+2

weil Ihre Methode Exit vor dem Ausführen zurückgibt, dass Codes –

+0

für beide Beispiele, also was? – Injectios

+0

für beide Beispiele Ihre Methode nie nach der Rückkehr ausführen –

Antwort

2

Guter Fang!

-Wunreachable-code meldet keine Warnung und es gibt keine andere Warnmeldung, die dies tun würde.
Nicht einmal der Static Analyzer fängt diesen Fehler auf!

(Getestet mit XCode 6.1 GM 2)

+0

aber alle Warnungen werden verschwinden ... Ich denke, es ist nicht für Topicstarter geeignet. – Vlad

+0

Warum sollten alle Warnungen verschwinden? '-Wunreachable-code' aktiviert ** more ** Warnungen, obwohl es nicht die vom Starter angesprochene abfängt. – fluidsonic

+0

Ich meinte Warnungen über andere "tote Code". – Vlad

-1

Try this ...

-(NSString*) makeSomeStringForMe { 

    NSString *someString = @"some string"; 

    return someString; 

} 
+0

) Könnten Sie Ihre Frage bearbeiten, um eine Erklärung darüber zu geben, was dieser Code macht und wie er die Frage anspricht? – Kenster

0

Verwenden -Wno-unreachable-code für Ihre Datei in Build Phasen.

Verwandte Themen