An array expression is not allowed as an argument to a user function unless it is an array of scalars of known size. Consequently, any array of scalars of arithmetic type may be passed to a user function, but there may be problems with arrays of varying-length strings.
However, array expressions are not supported in any GENERIC reference. Mismatched parameter and argument arrays are also not supported in any GENERIC reference.
The following example shows a numeric array expression supported in a call:
dcl x entry, (y(10),z(10)) fixed bin(31);
call x(y + z);
The following unprototyped call would be flagged since it requires a string expression of unknown size:
dcl a1 entry;
dcl (b(10),c(10)) char(20) var;
call a1(b || c);However, the following prototyped call would not be flagged:
dcl a2 entry(char(30) var);
dcl (b(10),c(10)) char(20) var;
call a2(b || c);