mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-17 10:39:33 +02:00
+ several files for bugs that should fail
This commit is contained in:
parent
9cfedd8bb0
commit
b39d738e62
@ -27,7 +27,11 @@ ts010015.pp tests typed files.
|
||||
ts010016.pp tests conversion of smallsets in normsets in consts
|
||||
ts010017.pp tests the problem of iocheck inside iocheck routines
|
||||
ts010018.pp tests the problem of enums inside objects
|
||||
|
||||
ts010019.pp tests problems of name mangling
|
||||
ts010020.pp tests for const strings problems if const is a single char.
|
||||
ts010021.pp test for long mangled names (they are strings, ie no longer then
|
||||
255 chars (but they have to be allways shorten the same way !!)
|
||||
ts010022.pp tests a problem of writing pchar in files
|
||||
ts10100.pp tests for delphi object model
|
||||
-
|
||||
ts101xx.pp
|
||||
|
@ -4,7 +4,7 @@
|
||||
with compilation and execution tests.
|
||||
|
||||
Standard way :
|
||||
'make all' will try to compile all the sources
|
||||
'make tests' will try to compile all the sources
|
||||
will printout a list of errors
|
||||
- programs that do not compile but should
|
||||
- programs that do compile when they should create an error !
|
||||
|
9
tests/tbf0036.pp
Normal file
9
tests/tbf0036.pp
Normal file
@ -0,0 +1,9 @@
|
||||
program bug0036;
|
||||
|
||||
{Discovered by Daniel Mantione.}
|
||||
|
||||
var a:array[0..31] of char;
|
||||
|
||||
begin
|
||||
a:=' '; {Incorrect Pascal statement, but why a protection error?}
|
||||
end.
|
21
tests/tbf0060.pp
Normal file
21
tests/tbf0060.pp
Normal file
@ -0,0 +1,21 @@
|
||||
Program Test;
|
||||
|
||||
{ No errors -- problems is due to the fact that the rules for type
|
||||
compatibility (p.47 language guide) -- are not respected, in other words
|
||||
in case statements there is no type checking whatsoever in fpc!!
|
||||
I think that these are separate cases:
|
||||
1st case) s32bit,u32bit,u8bit,s8bit,s16bit,u16bit
|
||||
2nd case) uchar
|
||||
3rd case) bool8bit
|
||||
These are not /should not be compatible with each other in a case
|
||||
statement imho - CEC
|
||||
}
|
||||
|
||||
var
|
||||
myvar:char;
|
||||
Begin
|
||||
case myvar of
|
||||
1: ;
|
||||
#2: ;
|
||||
end;
|
||||
end.
|
3
tests/tbf0061.pp
Normal file
3
tests/tbf0061.pp
Normal file
@ -0,0 +1,3 @@
|
||||
Begin
|
||||
55ms;
|
||||
end.
|
3
tests/tbf0085.pp
Normal file
3
tests/tbf0085.pp
Normal file
@ -0,0 +1,3 @@
|
||||
Begin
|
||||
writeln(l);
|
||||
end.
|
15
tests/tbf0086.pp
Normal file
15
tests/tbf0086.pp
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
var
|
||||
v: word;
|
||||
w: shortint;
|
||||
z: byte;
|
||||
y: integer;
|
||||
|
||||
type
|
||||
zz: shortint = 255;
|
||||
Begin
|
||||
y:=64000;
|
||||
z:=32767;
|
||||
w:=64000;
|
||||
v:=-1;
|
||||
end.
|
15
tests/tbf0087.pp
Normal file
15
tests/tbf0087.pp
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
BP Error message is 'Pointer variable Expected'
|
||||
}
|
||||
type
|
||||
tobj=object
|
||||
l : longint;
|
||||
constructor init;
|
||||
end;
|
||||
var
|
||||
o : tobj;
|
||||
begin
|
||||
new(o); {This will create a internal error 9999}
|
||||
new(o,init); {This will create a Segfault and Core Dump under linux}
|
||||
end.
|
||||
|
3
tests/tbf0088.pp
Normal file
3
tests/tbf0088.pp
Normal file
@ -0,0 +1,3 @@
|
||||
Begin
|
||||
typeof(x1); { Gives out an internal error -- better then 9999 though }
|
||||
end.
|
3
tests/tbf0089.pp
Normal file
3
tests/tbf0089.pp
Normal file
@ -0,0 +1,3 @@
|
||||
Begin
|
||||
sizeof(x);
|
||||
end.
|
20
tests/tbf0148.pp
Normal file
20
tests/tbf0148.pp
Normal file
@ -0,0 +1,20 @@
|
||||
unit test;
|
||||
|
||||
interface
|
||||
|
||||
Function t(a: Byte): byte;
|
||||
Function DoT(b: byte): Byte;
|
||||
|
||||
implementation
|
||||
|
||||
Function t(a: Byte): Byte;
|
||||
var f: byte;
|
||||
Begin
|
||||
DoT := f;
|
||||
End;
|
||||
|
||||
Function DoT(b: byte): Byte;
|
||||
Begin
|
||||
End;
|
||||
|
||||
end.
|
17
tests/tbf0153.pp
Normal file
17
tests/tbf0153.pp
Normal file
@ -0,0 +1,17 @@
|
||||
{$asmmode att}
|
||||
|
||||
procedure asmfunc(p:pointer);assembler;
|
||||
asm
|
||||
{
|
||||
this is changed into movl %eax,(%ebx+8) which is not correct, and tp7
|
||||
also doesn't allow 'mov p[bx],ax' or 'mov p+bx,ax'
|
||||
|
||||
Solution: for parameters and locals the index must be turned off
|
||||
|
||||
Don't forget to check the intel assembler also
|
||||
}
|
||||
movl %eax,p(%ebx)
|
||||
end;
|
||||
|
||||
begin
|
||||
end.
|
8
tests/tbf0158.pp
Normal file
8
tests/tbf0158.pp
Normal file
@ -0,0 +1,8 @@
|
||||
program tmp;
|
||||
|
||||
var
|
||||
Molo :Boolean;
|
||||
|
||||
begin
|
||||
Molo := 1; { This should give out a Type mismatch error ! }
|
||||
end.
|
14
tests/tbf0164.pp
Normal file
14
tests/tbf0164.pp
Normal file
@ -0,0 +1,14 @@
|
||||
type t1r = record
|
||||
a, b: Byte;
|
||||
end;
|
||||
t2r = record
|
||||
l1, l2: Array[1..4] Of t1r;
|
||||
end;
|
||||
|
||||
|
||||
Var r: t2r;
|
||||
|
||||
begin
|
||||
with r.l1[counter] Do
|
||||
Inc(a)
|
||||
end.
|
10
tests/tbf0166.pp
Normal file
10
tests/tbf0166.pp
Normal file
@ -0,0 +1,10 @@
|
||||
type
|
||||
punknown=^unknown;
|
||||
|
||||
t=object
|
||||
procedure p(i:unknown);
|
||||
end;
|
||||
|
||||
begin
|
||||
end.
|
||||
|
9
tests/tbf0167.pp
Normal file
9
tests/tbf0167.pp
Normal file
@ -0,0 +1,9 @@
|
||||
type ObjTest = Object
|
||||
End;
|
||||
|
||||
Procedure ObjTest;
|
||||
Begin
|
||||
end;
|
||||
|
||||
Begin
|
||||
end.
|
6
tests/tbf0168.pp
Normal file
6
tests/tbf0168.pp
Normal file
@ -0,0 +1,6 @@
|
||||
var bset: set of 0..31;
|
||||
b: byte;
|
||||
|
||||
Begin
|
||||
bset := bset + b;
|
||||
End.
|
11
tests/tbf0172.pp
Normal file
11
tests/tbf0172.pp
Normal file
@ -0,0 +1,11 @@
|
||||
type
|
||||
rec=record
|
||||
a : longint;
|
||||
end;
|
||||
|
||||
var
|
||||
r1 : rec absolute $40:$49;
|
||||
begin
|
||||
with r1 do
|
||||
a:=1;
|
||||
end.
|
9
tests/tbf0173.pp
Normal file
9
tests/tbf0173.pp
Normal file
@ -0,0 +1,9 @@
|
||||
var
|
||||
secondbug : word;
|
||||
procedure p;assembler;
|
||||
begin
|
||||
if secondbug=0 then;
|
||||
end;
|
||||
|
||||
begin
|
||||
end.
|
@ -1,3 +1,6 @@
|
||||
|
||||
{ this program shows a possible problem
|
||||
of name mangling in FPC (PM) }
|
||||
procedure test;
|
||||
|
||||
function a : longint;
|
||||
|
Loading…
Reference in New Issue
Block a user