Hallo zusammen,
für die Version 2.2.4 habe ich einen mutmaßlichen Bug im FreePascal-Compiler gefunden. Um den Bug zu separieren habe ich ein Demo-Projekt geschrieben, welches diesem Beitrag angehängt ist.
Ich bitte Euch, die Demo-Datei mit einer aktuellen Version des Compilers zu testen und dabei zu prüfen, ob der Bug noch auftritt. Wenn ja, mache ich einen Bugreport.
Wie im Demoprojekt zu erkennen, stellt der Compiler bei der Übergabe der Variable "Number" nicht fest, dass die Datentypen zueinander inkompatibel sind. Dieser Bug tritt nur im Delphi-Mode auf, der am Anfang der Unit eingestellt wird.
Viele Grüße, Euklid
EDIT: _X_ berichtete mir über den IRC, dass das Problem mit FPC-Version 2.4.0-2 behoben ist.
FPC: Typenprüfung misslingt
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
FPC: Typenprüfung misslingt
- Dateianhänge
-
Demo.tar.gz
- Projekt zur Reproduktion des Bugs.
- (158.97 KiB) 100-mal heruntergeladen
-
- Beiträge: 359
- Registriert: Mi 27. Mai 2009, 20:54
- OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
- CPU-Target: x86
- Wohnort: Cottbus
Re: FPC: Typenprüfung misslingt
Das ist nicht direkt ein Fehler.
Du übergibst im Endeffekt einfach nur einen Pointer, für den Funktionsaufruf ist das auch in diesem Fall wirklich nichts weiter als ein untypisierter Pointer.
Du übergibst im Endeffekt einfach nur einen Pointer, für den Funktionsaufruf ist das auch in diesem Fall wirklich nichts weiter als ein untypisierter Pointer.
-
- Beiträge: 475
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: FPC: Typenprüfung misslingt
Also bei mir kommt:
Code: Alles auswählen
Hint: Start of reading config file /home/ingo/dev/fpc/lib/fpc/etc/fpc.cfg
Hint: End of reading config file /home/ingo/dev/fpc/lib/fpc/etc/fpc.cfg
Free Pascal Compiler version 2.5.1 [2010/11/04] for x86_64
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Linux for x86-64
Compiling project1.lpr
Compiling unit1.pas
unit1.pas(48,14) Error: Incompatible type for arg no. 1: Got "PTestTypArray", expected "PTestTyp"
unit1.pas(36,18) Hint: Found declaration: TForm1.Test(PTestTyp);
unit1.pas(60) Fatal: There were 1 errors compiling module, stopping
mfg Ingo
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: FPC: Typenprüfung misslingt
Technisch ja - dennoch sind es völlig verschiedene Typen und ich fände es unschön, wenn der FPC dies nicht erkennen würde.Teekeks hat geschrieben:Du übergibst im Endeffekt einfach nur einen Pointer, für den Funktionsaufruf ist das auch in diesem Fall wirklich nichts weiter als ein untypisierter Pointer.
Glücklicherweise scheinen neuere Versionen des fpc die Typenprüfung korrekt durchzuführen.

Danke Euch für Eure Tests und Eure Gedanken!
- Euklid