l2f problem
The following code does create an illeagal AST after b8:l2f:
module a;
export {NOTmain};
inline int + (int a, int b) { return _add_SxS_ (a, b); }
inline int - (int a, int b) { return _sub_SxS_ (a, b); }
inline int * (int a, int b) { return _mul_SxS_ (a, b); }
inline int - (int b) { return _sub_SxS_ (0, b); }
inline bool < (int a, int b) { return _lt_SxS_ (a, b); }
inline int[.] shape (int[*] a) { return _shape_A_ (a); }
inline int ++ (int a) { return _add_SxS_ (a, 1); }
inline int sel(int[.] idx, int[*] a) { return _sel_VxA_ (idx, a); }
inline int mpybslXII(int[.] y)
{ /* Scan of vector */
size = shape(y);
arg = with{}:genarray(size,1);
z = 42;
for ( i=1; i<size[[0]]; i++) {
z = z + 4 * 3;
}
return(z);
}
int NOTmain ()
{
z=mpybslXII( [2,3,1]);
return(z);
}