summaryrefslogtreecommitdiff
path: root/tests/tbs/tb0254.pp
diff options
context:
space:
mode:
authorfpc <fpc@3ad0048d-3df7-0310-abae-a5850022a9f2>2005-05-16 18:37:41 +0000
committerfpc <fpc@3ad0048d-3df7-0310-abae-a5850022a9f2>2005-05-16 18:37:41 +0000
commitf206a9c2b1ae1d8727ca27a96d448b61fdb4c766 (patch)
treef28256ff9964c1fc7c0f7fb00891268a117b745d /tests/tbs/tb0254.pp
downloadfpc-f206a9c2b1ae1d8727ca27a96d448b61fdb4c766.tar.gz
initial import
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@1 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'tests/tbs/tb0254.pp')
-rw-r--r--tests/tbs/tb0254.pp42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/tbs/tb0254.pp b/tests/tbs/tb0254.pp
new file mode 100644
index 0000000000..03573d6b4b
--- /dev/null
+++ b/tests/tbs/tb0254.pp
@@ -0,0 +1,42 @@
+{ Old file: tbs0294.pp }
+{ parameter with the same name as function is allowed in tp7/delphi Yes, but in BP this leads to being unable to set the return value ! }
+
+{$mode tp}
+{ this is allowed in BP !!!
+ but its complete nonsense because
+ this code sets parameter test
+ so the return value can not be set at all !!!!!
+ of course in Delphi you can use result so there it
+ makes sense to allow this ! PM }
+function test(var test:longint):longint;
+var
+ x : longint;
+begin
+ { in BP the arg is change here !! }
+ test:=1;
+ x:=3;
+end;
+
+function st(var st : string) : string;
+begin
+ st:='OK';
+end;
+
+var t : longint;
+ myst : string;
+begin
+ t:=2;
+ myst:='Before';
+ test(t);
+ st(myst);
+ if (t<>1) then
+ begin
+ writeln('Test arg in Test function is not handled like in BP');
+ halt(1);
+ end;
+ if (myst<>'OK') then
+ begin
+ writeln('St arg in St string function is not handled like in BP');
+ halt(1);
+ end;
+end.