Code: Select all
$ type z5.pas
program z5(input, output);
type
pstr = varying [1812] of char;
procedure test1(xmlstr : pstr);
begin
writeln(xmlstr);
end;
begin
writeln('start');
test1('<methodResponse>' +
'<params>' +
'<param>' +
'<value><i4>123</i4></value>' +
'</param>' +
'</params>' +
'</methodResponse>');
end.
$ pas z5
$ link z5
$ r z5
start
<methodResponse><params><param><value><i4>123</i4></value></param></params></methodResponse>
$ type z6.pas
program z6(input, output);
type
pstr = varying [1813] of char;
procedure test1(xmlstr : pstr);
begin
writeln(xmlstr);
end;
begin
writeln('start');
test1('<methodResponse>' +
'<params>' +
'<param>' +
'<value><i4>123</i4></value>' +
'</param>' +
'</params>' +
'</methodResponse>');
end.
$ pas z6
$ link z6
$ r z6
start
%SYSTEM-F-ACCVIO, access violation, reason mask=05, virtual address=000000007ACDA000, PC=FFFF830009A4B279, PS=0000001B
%TRACE-F-TRACEBACK, symbolic stack dump follows
image module routine line rel PC abs PC
LIBOTS 0 0000000080002279 FFFF830009A4B279
z6 Z6 TEST1 6 000000000000008F 000000008000008F
z6 Z6 Z6 14 000000000000005B 000000008000005B
0 FFFF8300081FC0A6 FFFF8300081FC0A6
DCL 0 00000000800677FB 000000007ADFF7FB
%TRACE-I-END, end of TRACE stack dump
Added in 46 minutes 9 seconds:
And:
$ pas/ver
VSI Pascal x86-64 V6.3-143 (GEM 50XC4) on OpenVMS x86_64 V9.2-2
Added in 22 minutes 6 seconds:
In the real program I got other errors with 1800. But it worked with 800. So the 1812-1813 difference seems to depend on the specific context.
Not sure how useful this note is, but ...
Added in 17 minutes 41 seconds:
And the real program works fine on Alpha with 32000.