@@ -0,0 +1,32 @@
+{ %OPT=-O3 }
+
+{$mode objfpc}
+program tval1a;
+function TryStrToInt(const s: string; out i: LongWord): boolean; inline;
+var
+ Error : word;
+begin
+ Val(s, i, Error);
+ TryStrToInt:=(Error=0)
+end;
+procedure DoTest;
+ Output: LongWord;
+ if TryStrToInt('Invalid', Output) then
+ Halt(1);
+ if not TryStrToInt('2', Output) then
+ Halt(2);
+ if Output <> 2 then
+ Halt(3);
+ DoTest(); { This is so "Output" is a local variable rather than global }
+ WriteLn('ok');
+end.
@@ -0,0 +1,35 @@
+program tval2a;
+const
+ SResStr = 'Invalid2';
+ if TryStrToInt(SResStr, Output) then
+ if not TryStrToInt(SResStr[8], Output) then