Wie eine Warnung in Delphi deaktivieren „Rückgabewert ... könnte undefiniert sein“?

StackOverflow https://stackoverflow.com/questions/61418

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe eine Funktion, die mir die folgende Warnung gibt:

  

[DCC Warning] filename.pas (6939): W1035 Wert der Funktion 'Funktion' Return könnte undefiniert sein

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

Result := '';

und es gibt keine lokalen Variable oder Parameter aufgerufen Result entweder.

Gibt es irgendeine Art von Pragma-ähnlicher Richtlinie ich diese Methode umgeben kann mit dieser Warnung entfernen? Dies ist Delphi 2007.

Leider ist das Hilfesystem auf dieser Delphi-Installation nicht funktioniert, deshalb kann ich nicht die Hilfe für diese Warnung Pop-up jetzt.

Wer weiß, weg von der Oberseite des Kopfes, was ich tun kann?

War es hilfreich?

Lösung

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

Sie können die Warnung vor Ort auf diese Weise deaktivieren:

{$WARN NO_RETVAL OFF}
function func(...): string;
begin
  ...
end;
{$WARN NO_RETVAL ON}

Andere Tipps

Ich bin nicht sicher, dass ich den Code für dieses Gerät sehen wollen ... nach allem, der Fehler tritt in Zeile 6939 ... Vielleicht sind einige interne Compiler-Tabelle überschritten wurden?

Es scheint eine Art von Fehlern in Delphi zu sein. Lesen Sie diesen Beitrag, die letzten Kommentar Links zu anderen Bug-Reports, die das eine sein, die Sie bekommen haben:

http://qc.codegear.com/wc/qcmain.aspx ? d = 8144

Der {$ WARN NO_RETVAL OFF} ist, was Sie suchen, aber im Allgemeinen möchte ich herausfinden, warum Sachen wie dies geschieht. Sie sollten erwägen es anders Formatierung und zu sehen, ob das hilft.

Haben Sie einen Fluss Befehle wie Beenden Veränderung da drin? Haben Sie direkt Ausnahmen auslösen, etc? Gibt es in Ihrem Fall Aussage ein anderes am Ende hat, die einen Wert auf Ergebnis setzt?

könnte versuchen, diese Elemente zwicken und sehen, ob das die Warnung auch beseitigt.

Um eine gute Antwort auf diese zu bekommen, werden Sie nach dem Code müssen. In der Regel werden die Delphi-Compiler dieser Warnung geben, wenn es ein möglicher Codepfad ist, die nicht definiert ist, in dem Ergebnis führen könnten. Manchmal ist der Codepfad ist weniger als offensichtlich.

Es ist so ein Fehler in Delphi-Compiler, da zumindest Delphi4: Wenn Summe der Zahlen der Funktion der Parameter (einschließlich Selbst und Ergebnis) und lokale Variablen 31 überschreitet, es Probleme verursacht. Zum Beispiel kann es schreiben W1035 Warnungen (Ergebnis könnte undefiniert). Es kann nicht verwendet Variablen fehlen. Versuchen Sie einfach, dieses Projekt:

program TestCompilerProblems;

procedure Proc;
var
  a01, a02, a03, a04, a05, a06, a07, a08, a09, a10,
  a11, a12, a13, a14, a15, a16, a17, a18, a19, a20,
  a21, a22, a23, a24, a25, a26, a27, a28, a29, a30,
  a31, a32, a33, a34, a35, a36, a37, a38, a39, a40: Integer;
begin
end;

begin
  Proc;
end.

Es würde 31 Hinweis verursacht, nicht mehr als 40.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top