summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/tnoext3.pp
blob: d10e20fa7d1e4d2b2054f0712e4692deae969b87 (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
{ %norun }
{$x-}
uses
  variants;

type
  tobj = object
    constructor init;
    destructor done;
  end;
   
 constructor tobj.init;
   begin
   end;

 destructor tobj.done;
   begin
   end;

procedure testcomplexassignments;
var
  s1,s2: shortstring;
  a1,a2: ansistring;
  w1,w2: widestring;
  u1,u2: unicodestring;
  v1,v2: variant;
  arr: array[1..4] of char;
  c: char;
  wc: widechar;
  p: pchar;
  pw: pwidechar;
  darr: array of char;
begin
  s1:=s2;
  a1:=a2;
  w1:=w2;
  u1:=u2;
  v1:=v2;
  s1:=arr;
  a1:=arr;
  w1:=arr;
  u1:=arr;
  arr:=s1;
  arr:=a1;
  arr:=w1;
  arr:=u1;
  s1:=c;
  a1:=c;
  w1:=c;
  u1:=c;
  s1:=wc;
  a1:=wc;
  w1:=wc;
  u1:=wc;
  s1:=p;
  a1:=p;
  w1:=p;
  u1:=p;
  s1:=pw;
  a1:=pw;
  w1:=pw;
  u1:=pw;
  v1:=darr;
end;


procedure testval;
var
  ss: shortstring;
  b: byte;
  w: word;
  c: cardinal;
  q: qword;
  si: shortint;
  i: smallint;
  l: longint;
  ii: int64;
begin
  val(ss,b,w);
  val(ss,c,b);
{$ifdef cpu64}
  val(ss,q,ii);
{$endif}
  val(ss,q,si);
  val(ss,si,i);
  val(ss,i,l);
{$ifdef cpu64}
  val(ss,l,ii);
{$endif}
  val(ss,ii,l);
end;

var
  o: tobj;
  po: ^tobj;
begin
  o.init;
  new(po,init);
  dispose(po,done);
end.