AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CompilerSwitch ... noch'n Bug

Ein Thema von himitsu · begonnen am 27. Dez 2013 · letzter Beitrag vom 28. Dez 2013
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.857 Beiträge
 
Delphi 12 Athens
 
#1

AW: CompilerSwitch ... noch'n Bug

  Alt 27. Dez 2013, 23:24
Es ist aber im IFDEF drin, das nicht erfüllt ist. Dementsprechend interessiert den Compiler auch nur ein Ende. Es wäre umgekehrt ein Bug, wenn etwas beachtet würde obwohl das IFDEF nicht erfüllt ist.

Wird das IFDEF erfüllt, wird es ja auch korrekt als falsche Direktive erkannt.

Würde das nicht so funktionieren, könnte man auch nicht neue Direktiven vor alten Delphiversionen mit IFDEF verstecken. Das wäre daher ein gravierendes Problem.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: CompilerSwitch ... noch'n Bug

  Alt 27. Dez 2013, 23:58
Es ist aber im IFDEF drin, das nicht erfüllt ist...
Aber nach dem ELSE muss er doch suchen, oder? Also muss er sich doch eh jede Zeile anschauen. Der Präprozessor ist einfach nur zu gnädig, und das ist blöd. Verstehe nicht, weshalb die keinen anständigen Tokenizer (bezüglich der Compilerdirektiven) dort eingebaut haben.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: CompilerSwitch ... noch'n Bug

  Alt 28. Dez 2013, 00:17
Och, hätte wenigstens eine Warnung über unbekannte Direktive erwartet,
aber jetzt wo du es sagst ... joar, hast schon Recht.

Dennoch blöd, daß der Rechtschreibfehler nicht gleich auffällt, so wie beim normalen IF-THEN-ELSE.
War nett, daß ich bestimmt fast eine 1/4 Stunde versenkt hatte und bissl sauer reagierte, als mich der Fehler grade etwas generft hatte.



Und das mit dem IFEND ... gerade da gibt es das Problem.
Ich weiß nicht seit wann es "kaputt"-gemacht wurde.

Delphi-Quellcode:
{$IFDEF ConditionalExpressions}
  {$IF Irgendwas}
    ...
  {ENDIF}
{ENDIF}
Das funktioniert jetzt, aber früher nicht, also da wo das IFDEF fehlschlägt, dann mit dem ersten "falschen" ENDIF endet und beim nächsen ENDIF knallt, denn eigentlich hat es so auszusehen
Delphi-Quellcode:
{$IFDEF ConditionalExpressions}
  {$IF Irgendwas}
    ...
  {IFEND}
{ENDIF}
Zumindestens in XE3 und ich glaub auch noch in XE4 meckerte (unterstrich) noch das ErrorInsight den "Fehler" korrekt, auch wenn der Compiler es durchläßt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.857 Beiträge
 
Delphi 12 Athens
 
#4

AW: CompilerSwitch ... noch'n Bug

  Alt 28. Dez 2013, 09:25
Aber nach dem ELSE muss er doch suchen, oder? Also muss er sich doch eh jede Zeile anschauen. Der Präprozessor ist einfach nur zu gnädig, und das ist blöd. Verstehe nicht, weshalb die keinen anständigen Tokenizer (bezüglich der Compilerdirektiven) dort eingebaut haben.
Der erkennt das ja, das ist ja gar nicht das Problem. Das Problem ist, dass du diese Warnungen dann für alle unbekannten Direktiven zukünftiger Delphiversionen bekommen würdest, wenn du mit einer älteren Delphiversion kompilierst, obwohl außen herum ein IFDEF ist und diese Direktiven also eigentlich außen vor bleiben sollen.

Das Problem in diesem Fall ist mir schon klar, aber trotzdem ist es so einfach nicht lösbar...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: CompilerSwitch ... noch'n Bug

  Alt 28. Dez 2013, 11:30
Das Problem ist, dass du diese Warnungen dann für alle unbekannten Direktiven zukünftiger Delphiversionen bekommen würdest, wenn du mit einer älteren Delphiversion kompilierst, obwohl außen herum ein IFDEF ist und diese Direktiven also eigentlich außen vor bleiben sollen.
Hm... grffnzl. Ok.
  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 11:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz