Browse Source

+ bugs 280 to 289 adapted

pierre 26 years ago
parent
commit
eefa07408a
11 changed files with 221 additions and 0 deletions
  1. 19 0
      tests/tbf0281.pp
  2. 9 0
      tests/tbf0284.pp
  3. 48 0
      tests/tbs0280.pp
  4. 33 0
      tests/tbs0282.pp
  5. 12 0
      tests/tbs0283.pp
  6. 9 0
      tests/tbs0284b.pp
  7. 18 0
      tests/tbs0285.pp
  8. 5 0
      tests/tbs0286.pp
  9. 21 0
      tests/tbs0287.pp
  10. 36 0
      tests/tbs0288.pp
  11. 11 0
      tests/tbs0289.pp

+ 19 - 0
tests/tbf0281.pp

@@ -0,0 +1,19 @@
+{$mode objfpc}
+
+type
+  test_one = class
+     protected
+       fTest : String;
+     public
+       property Test: String READ fTest WRITE fTest;
+       procedure Testen(Test: BOolean);
+                        { ^ duplicate identifier? }
+  end;
+
+
+procedure test_one.testen(test: boolean);
+begin
+end;
+
+begin
+end.

+ 9 - 0
tests/tbf0284.pp

@@ -0,0 +1,9 @@
+uses tbs0284b;
+{$HINTS ON}
+type
+  o2=object(o1)
+    p : longint;
+  end;
+
+begin
+end.

+ 48 - 0
tests/tbs0280.pp

@@ -0,0 +1,48 @@
+{$mode objfpc}
+{$H+}
+
+program memhole;
+
+{$ifdef go32v2}
+uses
+   dpmiexcp;
+{$endif go32v2}
+
+type
+  TMyClass = class
+    s: String;
+  end;
+  plongint = ^longint;
+
+procedure dotest;
+
+var
+  c: TMyClass;
+  s : string;
+
+begin
+  s:='world';
+  s:='Hallo '+s;
+  writeln((plongint(s)-4)^);
+  c := TMyClass.Create;
+  writeln(longint(c.s));
+  c.s := Copy('Test', 1, 4);
+  writeln((plongint(c.s)-4)^);
+  c.free;
+end;
+
+var
+   membefore : longint;
+begin
+  membefore:=memavail;
+  writeln(memavail);
+  dotest;
+  writeln(memavail);
+  if membefore<>memavail then
+    begin
+      Writeln('Memory hole using ansi strings in classes');
+      Halt(1);
+    end
+  else
+    Writeln('No memory hole unsing ansi strings in classes');
+end.

+ 33 - 0
tests/tbs0282.pp

@@ -0,0 +1,33 @@
+
+type very____long_____string___identifier= string[200];
+
+procedure test(very__long_variable01: very____long_____string___identifier;
+               very__long_variable02: very____long_____string___identifier;
+               very__long_variable03: very____long_____string___identifier;
+               very__long_variable04: very____long_____string___identifier;
+               very__long_variable05: very____long_____string___identifier;
+               very__long_variable06: very____long_____string___identifier;
+               very__long_variable07: very____long_____string___identifier;
+               very__long_variable08: very____long_____string___identifier;
+               very__long_variable09: very____long_____string___identifier;
+               very__long_variable10: very____long_____string___identifier;
+               very__long_variable11: very____long_____string___identifier;
+               very__long_variable12: very____long_____string___identifier;
+               very__long_variable13: very____long_____string___identifier;
+               very__long_variable14: very____long_____string___identifier;
+               very__long_variable15: very____long_____string___identifier;
+               very__long_variable16: very____long_____string___identifier;
+               very__long_variable17: very____long_____string___identifier;
+               very__long_variable18: very____long_____string___identifier);
+begin
+  writeln('hi!');
+end;
+
+begin
+  writeln('vreemd!');
+  test('','','','','','','','','','',
+       '','','','','','','','');
+end.
+
+
+

+ 12 - 0
tests/tbs0283.pp

@@ -0,0 +1,12 @@
+const dirsep = '\';
+
+begin
+  if dirsep = '/'
+    then
+      begin
+        writeln('bug!');
+        Halt(1);
+      end
+    else
+      writeln('ok');
+end.

+ 9 - 0
tests/tbs0284b.pp

@@ -0,0 +1,9 @@
+unit tbs0284b;
+interface
+type
+  o1=object
+    p : longint;
+  end;
+
+implementation
+end.

+ 18 - 0
tests/tbs0285.pp

@@ -0,0 +1,18 @@
+{$asmmode intel}
+
+TYPE something = RECORD big:LONGINT; small:BYTE; END;
+
+FUNCTION typesize:INTEGER; ASSEMBLER;
+ASM
+     MOV EAX, TYPE something
+END;
+
+BEGIN
+  writeln(typesize);
+  if typesize<>sizeof(something) then
+    begin
+      Writeln('Error in type inside intel asm');
+      Halt(1);
+    end;
+END.
+

+ 5 - 0
tests/tbs0286.pp

@@ -0,0 +1,5 @@
+var
+  c : char;
+begin
+  c:=#$08d;
+end.

+ 21 - 0
tests/tbs0287.pp

@@ -0,0 +1,21 @@
+var
+  b,bb : boolean;
+begin
+  b:=(true > false);
+  if b then
+   writeln('ok 1')
+  else
+   halt(1);
+  b:=true;
+  b:=(b > false);
+  if b then
+   writeln('ok 2')
+  else
+   halt(1);
+  b:=false;
+  bb:=true;
+  if b<bb then
+   writeln('ok 3')
+  else
+   halt(1);
+end.

+ 36 - 0
tests/tbs0288.pp

@@ -0,0 +1,36 @@
+{$mode objfpc}
+
+uses sysutils;
+const
+  test_run : boolean = false;
+
+type
+  zz=class(tobject)
+    procedure test;virtual;
+    procedure test1;virtual;
+  end;
+procedure zz.test;
+begin
+  writeln('ok');
+  test_run:=true;
+end;
+procedure zz.test1;
+begin
+  try
+    raise exception.create('zz');
+  except
+    on e:exception do test;
+  end;
+end;
+var
+  z:zz;
+begin
+  z:=zz.create;
+  z.test1;
+  z.destroy;
+  if not test_run then
+    begin
+      Writeln('Problem with virtual method in except block');
+      Halt(1);
+    end;
+end.

+ 11 - 0
tests/tbs0289.pp

@@ -0,0 +1,11 @@
+
+procedure p;
+type
+  k1 = word;
+begin
+end;
+
+type
+  k2 = word;
+begin
+end.