w6c: append() accepts struct CALL rvalue elements (#34)
Evaluate the call pre-grow into a per-site scratch, receiving by the N_LET matrix (sret / float / odd-tail / GP), then grow, slot, sized ladder. Both stages, byte-identical. The two reject pins graduate to 16B GP accept rows; three new fixtures cover 24B GP, 3B/4B tails, 16B float, and 40B sret.
This commit is contained in:
18
test/wcc/data/r34_append_struct_call_float/case.ww
Normal file
18
test/wcc/data/r34_append_struct_call_float/case.ww
Normal file
@@ -0,0 +1,18 @@
|
||||
//ww:run-exit 0
|
||||
// #34 close, float leg: a float-bearing <=16B struct CALL element is
|
||||
// received on independent SSE/GP return cursors (the #171a matrix).
|
||||
package main;
|
||||
type flt16 = struct { x: f64, n: i64 };
|
||||
fn mkflt(v: f64, n: i64) flt16 = {
|
||||
let e: flt16; e.x = v; e.n = n; return e;
|
||||
};
|
||||
fn main() i32 = {
|
||||
let fs: []flt16 = [];
|
||||
append(fs, mkflt(2.5, 11i64));
|
||||
append(fs, mkflt(0.25, 13i64));
|
||||
if (fs.len != 2) { return 1; };
|
||||
if (fs[0].n != 11i64 || fs[1].n != 13i64) { return 2; };
|
||||
if (fs[0].x != 2.5) { return 3; };
|
||||
if (fs[1].x != 0.25) { return 4; };
|
||||
return 0;
|
||||
};
|
||||
Reference in New Issue
Block a user