AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Warnung/Hint bei signed/unsigned Zuweisung erzwingen
Thema durchsuchen
Ansicht
Themen-Optionen

Warnung/Hint bei signed/unsigned Zuweisung erzwingen

Ein Thema von hellion · begonnen am 10. Jun 2010 · letzter Beitrag vom 10. Jun 2010
Antwort Antwort
hellion

Registriert seit: 10. Jun 2010
4 Beiträge
 
#1

Warnung/Hint bei signed/unsigned Zuweisung erzwingen

  Alt 10. Jun 2010, 12:14
Hallo,

kann man den Delphi-Compiler erzwingen, eine Warnung bei Zuweisung von signed/unsigned Variablen auszulösen? z.B. im folgenden Fall:

procedure f1();
var
li : longint;
lw : longword;
begin
li := -1;
lw := li; // ==> hier findet eine Bereichsüberschreitung statt.
...
end;

In diesem Fall gibt Delphi keine Warnung aus. Die Anweisung ist aber gefährlich, da zur Laufzeit eine Exception ausgelöst werden kann!
Wann man dagegen "li := li + lw" schreibt, dann wird folgende Warnung erzeugt: "W1024: Combining signed and unsigned types - widened both operands"
Auch im ersten Fall hätte ganz gerne die Warnung W1024 oder eine alternatibe Warnung. Ich kenne PC-Lint für C - man wird bei solchen Zuweisungen hingewiesen!
Ich habe den CodeHealer und den Peganza Pascal Analyzer ausprobiert, diese lösen keine Warnung aus!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.078 Beiträge
 
Delphi 12 Athens
 
#2

AW: Warnung/Hint bei signed/unsigned Zuweisung erzwingen

  Alt 10. Jun 2010, 12:18
Zitat:
li := -1;
Ist doch OK so?

lw := -1; Hier würde aber ein Compiler-Fehler ausgelöst.
(läßt sich nicht kompilieren)

Ansonsten wüßte ich keine Möglichkeit das andere Melden zu lassen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.078 Beiträge
 
Delphi 12 Athens
 
#3

AW: Warnung/Hint bei signed/unsigned Zuweisung erzwingen

  Alt 10. Jun 2010, 12:29
Zitat:
li := -1;
Ist doch OK so?

lw := -1; Hier würde aber ein Compiler-Fehler ausgelöst.
(läßt sich nicht kompilieren)

Ansonsten wüßte ich keine Möglichkeit das andere Melden zu lassen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Warnung/Hint bei signed/unsigned Zuweisung erzwingen

  Alt 10. Jun 2010, 13:13
Warum gibts hier zwei mal den gleichen Beitrag von himitsu?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
ele

Registriert seit: 18. Feb 2009
129 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Warnung/Hint bei signed/unsigned Zuweisung erzwingen

  Alt 10. Jun 2010, 17:45
Eventuell könnten die QA Audits da weiterhelfen. Habs nicht ausprobiert.
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Warnung/Hint bei signed/unsigned Zuweisung erzwingen

  Alt 10. Jun 2010, 19:47
Stimmt, der Compiler meckert da nix an. Und bei aktivierte Bereichspruefung kommt erst zur Laufzeit eine Exeception.

Ich vermute, dass das Thema bei der Analyse bisher stiefmuetterlich behandelt wurde, weil eigentlich ergibt es Sinn darauf schon beim Kompilieren zu testen (= Warnung). Da wirst du wohl im Moment um ene Audit nicht herumkommen, falls du keine Runtime-Tests mit aktivierter Bereichspruefung machen kannst. Ansonsten kann man vllt. den von dir benutzten Pascal-Tester erweitern (kenn ich leider nicht)?
Manuel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz