Wie deaktiviere ich eine Warnung in Delphi über "Rückgabewert ... könnte undefiniert sein"?

8

Ich habe eine Funktion, die mich warnt:

  

[DCC-Warnung] filename.pas (6939): W1035 Rückgabewert der Funktion 'function' könnte undefiniert sein

Die Funktion ist jedoch sauber, klein und hat einen bekannten, erwarteten Rückgabewert. Die erste Anweisung in der Funktion lautet:

%Vor%

und es gibt keine lokale Variable oder Parameter namens Result .

Gibt es irgendeine pragmaähnliche Anweisung, mit der ich diese Methode umgehen kann, um diese Warnung zu entfernen? Dies ist Delphi 2007.

Leider funktioniert das Hilfesystem dieser Delphi-Installation nicht, daher kann ich die Hilfe für diese Warnung jetzt nicht aufrufen.

Wer weiß von Anfang an, was ich tun kann?

    
Lasse Vågsæther Karlsen 14.09.2008, 15:40
quelle

6 Antworten

6

Sind Sie sicher, dass Sie alles getan haben, um die Warnung zu lösen? Vielleicht könnten Sie den Code für uns veröffentlichen?

Sie können die Warnung lokal auf diese Weise deaktivieren:

%Vor%     
Lars Truijens 14.09.2008, 15:49
quelle
3

Ich bin mir nicht sicher, ob ich den Code für diese Einheit sehen möchte ... schließlich tritt der Fehler in Zeile 6939 auf ... Vielleicht wurde eine interne Compiler-Tabelle überschritten?

    
Lars Fosdal 16.09.2008 06:21
quelle
1

Es scheint in Delphi eine Art Bug zu geben. Lesen Sie diesen Beitrag, der letzte Kommentar verweist auf andere Fehlerberichte, die Sie vielleicht haben:

Ссылка

    
Espo 14.09.2008 15:49
quelle
1

Das {$ WARN NO_RETVAL OFF} ist was du suchst, aber generell finde ich heraus, warum so etwas passiert. Sie könnten es anders formatieren und sehen, ob das hilft.

Haben Sie irgendwelche fließenden Befehle wie Exit da drin? Erhebst du direkt Ausnahmen? Hat Ihre case-Anweisung am Ende einen anderen Wert, der einen Wert für Ergebnis festlegt?

Könnte versuchen, diese Elemente zu optimieren und zu sehen, ob das auch die Warnung beseitigt.

    
Jim McKeeth 15.09.2008 03:00
quelle
1

Um eine gute Antwort zu bekommen, müssen Sie den Code posten. Im Allgemeinen wird der Delphi-Compiler diese Warnung ausgeben, wenn es einen möglichen Code-Pfad gibt, der dazu führen könnte, dass das Ergebnis nicht definiert wird. Manchmal ist dieser Codepfad weniger als offensichtlich.

    
Nick Hodges 15.09.2008 21:08
quelle
1

Es gibt einen solchen Fehler im Delphi-Compiler, zumindest seit Delphi4: Wenn die Summe der Anzahl von Funktionsparametern (einschließlich Selbst und Ergebnis) und lokalen Variablen 31 übersteigt, verursacht das Probleme. Zum Beispiel kann es W1035-Warnungen schreiben (das Ergebnis könnte undefiniert sein). Es kann nicht verwendete Variablen verpassen. Probieren Sie dieses Projekt einfach aus:

%Vor%

Es würde 31 Hinweis, nicht 40.

verursachen     
Abelevich 25.05.2010 16:45
quelle

Tags und Links