unsafe array size problem
If the size of type SIZE = 64 bits, then when passing an array, after dereferencing an unsafe pointer, len of array is -1, not max(size)
MODULE Test78;
TYPE
Unsafe64 = POINTER { UNSAFE, UNTRACED } TO ARRAY MAX(SIZE) OF CHAR;
Unsafe32 = POINTER { UNSAFE, UNTRACED } TO ARRAY MAX(SIGNED32) OF CHAR;
PROCEDURE Do*;
VAR str: ARRAY 64 OF CHAR;
VAR ref32 := ADDRESS OF str[0]: Unsafe32;
VAR ref64 := ADDRESS OF str[0]: Unsafe64;
PROCEDURE P(CONST str: ARRAY OF CHAR);
BEGIN
TRACE(LEN(str));
END P;
BEGIN
TRACE(LEN(ref32^), LEN(ref64^));
P(ref32^); (* 2147483647 *)
P(ref64^); (*! -1 *)
END Do;
END Test78.
Test78.Do~