AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Delphi und FPC compiler problem
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi und FPC compiler problem

Ein Thema von KodeZwerg · begonnen am 15. Aug 2022 · letzter Beitrag vom 15. Aug 2022
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Delphi und FPC compiler problem

  Alt 15. Aug 2022, 14:02
Für mich schaut das nicht wirklich nach einem Bug aus, sondern ist vermutlich "As Designed".
Ein Bug ist es ja dennoch.
Man macht ja extra ein IF/IFDEF drumrum, damit der Teil darin nicht beachtet wird, wenn man schon weiß, dass es das nicht gibt.

Wenn der Compiler/Parser nun dennoch da rein sieht, dann ist es sein Problem.

Wenn er es sich dennoch ansehen will/muß, und er von einem vorherrigen IF/IFDEF bereits weiß, dass der Teil garnicht benutzt wird, dann sollte er zumindestens die "Prüfbedingungung" bis zum abschließenden } ignorieren.



Ich vermute es geht darauf hinaus, seitdem Delphi IFEND und ENDIF als "gleich" betrachtet, bzw. krankhaft zwanghaft versucht ALLES auf Eines umzubiegen,
und seitdem auch die Dinge drinen parsen muß, um das "richtige" Ende zu finden.

Früher war es einfach, alles vom IFDEF bis zum "nächsten" ENDIF oder ELSE und IF/IFEND wurde ignoriert.
Ging ja ursprünglich auch nicht anders, weil damals die "alten" Compiler $IF noch garnicht kannten.
Delphi-Quellcode:
{$IFDEF ConditionalDefines}
  {$IF ...}

  {$IFEND}
{$ENDIF}
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Aug 2022 um 14:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi und FPC compiler problem

  Alt 15. Aug 2022, 14:16
Die erste Reaktion war diese Schreibweise, die ja auch schon von Frank in die Runde geworfen wurde:
Delphi-Quellcode:
{$IFDEF FPC}
  {$IF Declared(FPC_VERSION) and (FPC_VERSION >= 3)}
    {$DEFINE UNICODE}
  {$IFEND}
{$ENDIF FPC}
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi und FPC compiler problem

  Alt 15. Aug 2022, 14:39
Ich vermute es geht darauf hinaus, seitdem Delphi IFEND und ENDIF als "gleich" betrachtet, bzw. krankhaft zwanghaft versucht ALLES auf Eines umzubiegen,
und seitdem auch die Dinge drinen parsen muß, um das "richtige" Ende zu finden.
Das Problem besteht seit Anfang an, seit es die IF Anweisung gibt, die Defines und Konstanten auswerten kann. Wie ich bereits gschrieben habe, geht das auch in D7 nicht und verhält sich da genau geleich. Mit deiner erwähnten Änderung hat das wohl nichts zu tun.

@Uwe Raabe
Ok das finde ich dann sogar eine elegante Lösung für das Problem.

Geändert von Rolf Frei (15. Aug 2022 um 14:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi und FPC compiler problem

  Alt 15. Aug 2022, 22:28
Ich vermute es geht darauf hinaus, seitdem Delphi IFEND und ENDIF als "gleich" betrachtet, bzw. krankhaft zwanghaft versucht ALLES auf Eines umzubiegen,
und seitdem auch die Dinge drinen parsen muß, um das "richtige" Ende zu finden.

Früher war es einfach, alles vom IFDEF bis zum "nächsten" ENDIF oder ELSE und IF/IFEND wurde ignoriert.
Ging ja ursprünglich auch nicht anders, weil damals die "alten" Compiler $IF noch garnicht kannten.
Delphi-Quellcode:
{$IFDEF ConditionalDefines}
  {$IF ...}

  {$IFEND}
{$ENDIF}
{$LEGACYIFEND ON} ändert leider nichts.
Gruß vom KodeZwerg
  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 08:45 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-2025 by Thomas Breitkreuz