summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/opt/tcse3.pp
blob: b271a140b6d529b15dcea18b70ffbeef316d87f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{ %OPT=-O2}
function forms(s: string; len: word): string;
begin
  str(len,forms);
  forms := s + ', ' + forms;
end;

procedure wrt2(s: string);
begin
  if s <> 'e 123, 4' then
    begin
      writeln('bug!');
      halt(1);
    end;
end;

type
  pstring = ^string;
  ta = array[0..254] of pstring;
  tb = array[0..254] of byte;

procedure t(var sel: ta; var selhigh: tb);
var
  ml, i: byte;
begin
  i := 5;
  ml := 8;
  new(sel[i]);
  sel[i]^ := 'testje 123';
  selhigh[i] := 5;
  wrt2(forms(copy(sel[i]^,selhigh[i]+1,255),ml-selhigh[i]+1));
end;

var
  a: ta;
  b: tb;

begin
  t(a,b);
end.