For gpc mailing list: this email comes as a follow-up of this bug report <https://sourceware.org/bugzilla/show_bug.cgi?id=17815> https://sourceware.org/bugzilla/show_bug.cgi?id=17815 The start of the thread can be found at: <https://sourceware.org/ml/gdb-patches/2015-01/msg00164.html> https://sourceware.org/ml/gdb-patches/2015-01/msg00164.html Pedro asked:
How about adding this to the test suite?
The whole testsuite/gdb.pascal is almost empty,
I never invested time to develop it :(
At the time I started it, GPC (the GNU pascal compiler)
was still active, but development apparently
stopped since quite some time.
I am unable to install GPC, which means that I cannot test it.
Would a testsuite that supports only Free Pascal be acceptable?
Do you actually mean, whether it's ok for a new
test (not test suite) to go in untested on GPC? It certainly is.
Better test on FPC than nowhere. :-)
That is indeed what I meant.
AFAICS, the tests themselves don't really care which compiler
is in use other than for marking xfails; you just call
gdb_compile_pascal,
and that works with either. That's my impression from quickly
skimming testsuite/lib/pascal.exp.
The problem is that GPC and Free Pascal support several pascal 'dialects'. But this requires command line options. The -Mobjfpc option is required for Free Pascal compiler to understand class type definition, but is rejected in default mode. I expect GNU GPC to also reject class in 'normal' mode... Maybe someone on the gpc mailing list knows if classes are supported by GPC and if it requires a special compiler option. Pierre Muller FYI: Here is the example code that is included in the bug report. $ cat ~/pas/test/test-class-pascal.pas type TA = class public x, y : integer; constructor Create; function check(b : TA) : boolean; destructor Done; virtual; end; constructor TA.Create; begin x:=-1; y:=-1; end; destructor TA.Done; begin end; function TA.check (b : TA) : boolean; begin check:=(x < b.x); end; var a, b : TA; begin a:=TA.Create; b:=TA.Create; a.x := 67; a.y := 33; a.check (b); end.