This bug appears when you use an enumerated type,
defined in a unit, in the "interface" of another unit
which is used by the first (complicated, eh? :) ).
Well, better look at the attached example to see
what I mean. I compiled the main program with
"--automake" and got "incompatible type" errors.
By the way, it would be nice if an updated "known
bugs" list was put in GPC's web page. That way, when
a program doesn't do what I expected, I would
know if it's GPC's fault or mine.
And finally, if there is a beta release, would you
please build some binaries? (Compiling GCC is too much
for my computer and me; last time I tried I ran out
of disk space after about two hours of compilation).
Well, that was all by now. Happy new year, and good luck
fixing the bug :)
Miguel.
uses
bugenum1,bugenum2;
begin
q(e1);
end.
unit bugenum1;
interface
type
enum = (e1,e2,e3,e4);
function q(v: enum): boolean;
implementation
uses
bugenum2;
function q(v: enum): boolean;
begin
q :=p(v,e1);
end;
end.
unit bugenum2;
interface
uses
bugenum1;
function p(v1,v2: enum): boolean;
implementation
function p(v1,v2: enum): boolean;
begin
p :=(v1=v2);
end;
end.