diff --git a/bugs/bug0201.pp b/bugs/bug0201.pp index 6d2ba4f98e..63f67c5a32 100644 --- a/bugs/bug0201.pp +++ b/bugs/bug0201.pp @@ -1,11 +1,14 @@ program bug0201; +{$asmmode att} + type rec = record a : DWord; b : Word; end; -function x(r1 : rec; r2 : rec; var r3 : rec); assembler; +procedure x(r1 : rec; r2 : rec; var r3 : rec); +begin asm movl r3, %edi @@ -17,6 +20,7 @@ asm addw r2.b, %cx movw %cx, rec.b(%edi) end; +end; var r1, r2, r3 : rec; diff --git a/bugs/bug0217.pp b/bugs/bug0217.pp new file mode 100644 index 0000000000..b743d4edcf --- /dev/null +++ b/bugs/bug0217.pp @@ -0,0 +1,18 @@ +{$ifdef fpc}{$mode tp}{$endif} + +type tmpproc=function:longint; + +function a:longint;{$ifndef fpc}far;{$endif} +begin + a:=-1; +end; + +procedure tmp(a: tmpproc); +begin + writeln(a); { "Cannot read/write variables of this type", TP kan dit +wel? } +end; + +begin + tmp(a); { de TP manier , in FPC moet dit zijn tmp(@a); } +end. diff --git a/bugs/bug0218.pp b/bugs/bug0218.pp new file mode 100644 index 0000000000..9075af9708 --- /dev/null +++ b/bugs/bug0218.pp @@ -0,0 +1,21 @@ +Program Wrong_Output; +{} +Var r:Extended; s:String; +{} +Begin + Writeln('Size of Extended type (r)=',SizeOf(r),' bytes'); + r:=0.000058184639; + Writeln('r=',r); + Writeln('r=',r:16:13); + Writeln('r=',r:15:12); + Writeln('r=',r:14:11); + Writeln('r=',r:13:10); + Writeln('r=',r:12:9); + Writeln('r=',r:11:8); + Writeln('r=',r:10:7); + Writeln('r=',r:9:6); + Writeln('r=',r:8:5); + Writeln('r=',r:7:4); + Str(r:7:4,s); + Writeln('r=',s,' (as string)') +End. diff --git a/bugs/bug0219.pp b/bugs/bug0219.pp new file mode 100644 index 0000000000..d04a6d1ba2 --- /dev/null +++ b/bugs/bug0219.pp @@ -0,0 +1,13 @@ +{ Should give '(' expected in line 6 } + + const + replaces=4; + replacetab : array[1..replaces,1..2] of string[32]=( + ':',' or colon', + 'mem8','mem or bits8', + 'mem16','mem or bits16', + 'mem32','mem or bits32' + ) +begin +end. + diff --git a/bugs/bug0220.pp b/bugs/bug0220.pp new file mode 100644 index 0000000000..49aa46335f --- /dev/null +++ b/bugs/bug0220.pp @@ -0,0 +1,9 @@ +type + a = array[0..100] of char; + +var + a1 : a; + s : string; +begin + s:=Copy(a1,1,10); +end. \ No newline at end of file diff --git a/bugs/bug0221.pp b/bugs/bug0221.pp new file mode 100644 index 0000000000..4b78bdda0a --- /dev/null +++ b/bugs/bug0221.pp @@ -0,0 +1,7 @@ +var + r : double; + c : char; +begin + r:=1.; + c:=^.; { this compile in tp7, c should contain 'n'/#110 } +end. \ No newline at end of file diff --git a/bugs/readme.txt b/bugs/readme.txt index 4757d4bca8..ef649e368f 100644 --- a/bugs/readme.txt +++ b/bugs/readme.txt @@ -241,10 +241,12 @@ Fixed bugs: bug0197.pp should produce an error: problem with c1:=c2