Hello, developers,
I think, I have been found a bug in FPC 1.0.4. In OBJFPC mode the boolean type fields of some record work strange. F.e.:
type
sc = record
......
d: boolean;
......
end;
psc = ^sc;
var
l: TList;
a: psc;
.....
//Creating
for i:=0 to x do begin new(a); a^.d:=false; l.Add(a); end;
.....
//Initializing
for i:=0 to l.Count-1 do if Anything then a(l.Items[i])^.d:=not
a(l.Items[i])^.d;
.....
//Using
for i:=0 to l.Count-1 do if a(l.Items[i])^.d then DoSomething; //here
//the values of d field are incorrect, but values of other fields are
//correctI made in my program operations like these. l object and psc type are declared in a global definitions unit (used in every other unit in program). a variable is declared in current unit.
I initialize l in one unit, and use in in another one. But from the other unit (and also outside the for..do where I initialize l, but in the same unit) the values of boolean field are incorrect. Values of other type fields are correct. At the end I used char type instead of boolean ('Y'=true 'N'=false) and with chars all worked correctly.
Best regards,
grizly
