[fpc-devel]fpc1010 linux problem
Rimgaudas Laucius
rimga at ktl.mii.lt
Thu Mar 25 14:18:34 CET 2004
hello,
1) first i can't submit err to err database because of issue (i do not know
what it means):
You have an error in your SQL syntax near ' ,"hi we found problem in fpc1010
version. fpc106 does not have it. it says t' at line 1
2) we found problem in fpc1010 version. fpc106 does not have it. it says
that found incompatible types conversion and stops, but fpc1010 gererates
internal error. problem found in linux.
err listing:
vs at jurate:~/problems$ fpc valant.pas
Free Pascal Compiler version 1.0.10 [2003/06/26] for i386
Copyright (c) 1993-2003 by Florian Klaempfl
Target OS: Linux for i386
Compiling valant.pas
Assembling mikro
valant.s: Assembler messages:
valant.s:325: Error: `%dl' not allowed with `movl'
valant.s:328: Error: `%dl' not allowed with `movl'
valant.s:349: Error: `%dl' not allowed with `movl'
valant.s:352: Error: `%dl' not allowed with `movl'
valant.pas(115) Error: Error while assembling exitcode 1
valant.pas(115) Fatal: There were 2 errors compiling module, stopping
program code:
{
TASK:MIKRO
LANG:PASCAL
}
{ Vitalijus Valantiejus, KOdainiÖ ÷Rytoņ vidurinO mokykla, 11a klasO }
program mikro;
const dat = 'schema.dat';
rez = 'schema.rez';
type TReiksme = (rZ, rA, rU); { Ųema, aukÕta, neŲinoma }
PEl = ^TEl;
TEl = record
In1, In2: PEl;
hasIn: byte;
Tipas: char;
r: TReiksme;
end;
TKrastai = array [1..20] of TEl; { ?Ojimai ir iÕOjimai }
TVidurys = array [1..100] of TEl; { I ir A elementai laikomi
atskiruose masyvuose}
procedure ReadData(var n, k: longint; var p, g: TKrastai; var a, i:
TVidurys);
var b: text;
j, r,
es, eg: longint; { SiuntOjas ir gavOjas }
c1, c2: char;
pes, peg: PEl;
begin
assign(b, dat);
reset(b);
readln(b, n, k);
for j := 1 to n do
begin
read(b, c1);
if c1 = '1' then p[j].r := rA
else p[j].r := rZ;
end;
readln(b, r);
for j := 1 to r do
begin
read(b, c1);
read(b, es);
read(b, c2); // Tarpas
read(b, c2);
readln(b, eg);
if c1 = 'A' then pes := @a[es]
else if c1 = 'I' then pes := @i[es]
else if c1 = 'P' then pes := @p[es];
if c2 = 'A' then peg := @a[eg]
else if c2 = 'I' then peg := @i[eg]
else if c2 = 'G' then peg := @g[eg];
pes^.tipas := c1;
peg^.tipas := c2;
if peg^.hasIn = 0 then
peg^.In1 := pes
else
peg^.In2 := pes;
inc(peg^.hasIn);
end;
close(b);
end;
procedure CalcOut(El: PEl);
var r1, r2: TReiksme;
begin
r1 := El^.In1^.r;
if r1 = rU then CalcOut(El^.In1);
r1 := El^.In1^.r;
if El^.hasin > 1 then
begin
r2 := El^.In2^.r;
if r2 = rU then CalcOut(El^.In2);
r2 := El^.In2^.r;
end
else r2 := r1;
if El^.tipas = 'A' then
El^.r := TReiksme(not (boolean(r1) or boolean(r2)))
else if El^.tipas = 'I' then
El^.r := TReiksme(not (boolean(r1) and boolean(r2)))
else if El^.tipas = 'G' then
El^.r := r1;
end;
procedure Solve(var g: TKrastai; k: longint);
var b: text;
j: integer;
begin
assign(b, 'schema.rez');
rewrite(b);
for j := 1 to k do
begin
CalcOut(@g[j]);
if g[j].r = rZ then
write(b, '0')
else
write(b, '1');
end;
writeln(b);
close(b);
end;
var n, k, j: longint;
p, g: TKrastai;
a, i: TVidurys;
begin
for j := 1 to 100 do
begin
a[j].r := rU;
i[j].r := rU;
end;
ReadData(n, k, p, g, a, i);
Solve(g, k);
end.
More information about the fpc-devel
mailing list