fpc/tests/tbs/tb0653.pp
Jonas Maebe 3129605195 --- Merging r40180 into '.':
U    compiler/ninl.pas
--- Recording mergeinfo for merge of r40180 into '.':
 U   .
--- Merging r40216 into '.':
U    compiler/htypechk.pas
G    compiler/ninl.pas
U    tests/tbf/tb0258.pp
A    tests/tbf/tb0259.pp
A    tests/tbf/tb0260.pp
A    tests/tbs/tb0653.pp
--- Recording mergeinfo for merge of r40216 into '.':
 G   .
--- Merging r40217 into '.':
U    compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r40217 into '.':
 G   .
--- Merging r40218 into '.':
G    compiler/systems/t_bsd.pas
--- Recording mergeinfo for merge of r40218 into '.':
 G   .

git-svn-id: branches/fixes_3_2@44000 -
2020-01-19 19:20:31 +00:00

65 lines
1.1 KiB
ObjectPascal

{ %norun }
{ %opt=-Sewn -vwn -O- }
{
Test for correct emitting of warnings/hints for uninitialized variables of management types
See also tbf/tb0258.pp
}
// Only hints about uninitialized managed variables must be issued for this code
{$mode objfpc}
type
TLongArray = array of longint;
procedure p;
var
a : TLongArray;
s: ansistring;
begin
setlength(a,100); // hint for local var
setlength(s,100); // hint for local var
a[1]:=1;
writeln(a[1]);
s[1]:='a';
writeln(s[1]);
end;
procedure svar(var s: ansistring; len: longint);
begin
setlength(s,len);
end;
procedure avar(var a: TLongArray; len: longint);
begin
setlength(a,len);
end;
procedure p2;
var
a : TLongArray;
s: ansistring;
begin
avar(a,100); // hint for local var
svar(s,100); // hint for local var
a[1]:=1;
writeln(a[1]);
s[1]:='a';
writeln(s[1]);
end;
function f2: ansistring;
begin
// Hint for the ansistring Result, since all contents of the Result
// after calling SetLength() is expected to be undefined.
setlength(Result,1);
Result[1]:='a';
end;
begin
p;
p2;
f2;
end.