12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- { %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.
|