//ww:run // #10 positive (converted from the retired idx_dot_aggret_subtail_loud tripwire): // an in-cap aggregate-returning CALL into a 14B-tail-6 STRUCT field of an indexed // element (arr[i].x = mk()). Pre-#10 both stages LOUD-STOPped this 3/5/6/7-tail // materialise; #10 stores the FULL register into the ceil-8-padded scratch, so the // over-stored bytes die in the pad and every member round-trips. main returns 0 // only if all members AND the neighbour pad survived (else a distinct nonzero). // cstage-only RUN by harness design (T1): this shape's [N]s14 local frame size // diverges cs!=ww (task #9, slotsize-vs-natural, benign — both stages compute // correct values) so it cannot enter the T2 byte-id corpus. Reverting #10 re-arms // the loud-stop -> this case fails to compile (rc!=0) -> reddens. package main; type t14 = struct { a:i16,b:i16,c:i16,d:i16,e:i16,f:i16,g:i16 }; type s14 = struct { x: t14, pad: i16 }; fn mk() t14 = { return t14{a=10i16,b=20i16,c=30i16,d=40i16,e=50i16,f=60i16,g=70i16}; }; export fn main() i32 = { let arr: [2]s14; arr[1].pad = 999i16; arr[1].x = mk(); if (arr[1].x.a != 10i16) { return 1; }; if (arr[1].x.b != 20i16) { return 2; }; if (arr[1].x.c != 30i16) { return 3; }; if (arr[1].x.d != 40i16) { return 4; }; if (arr[1].x.e != 50i16) { return 5; }; if (arr[1].x.f != 60i16) { return 6; }; // tail byte 0-1 if (arr[1].x.g != 70i16) { return 7; }; // tail byte 2-3 (dropped pre-#10) if (arr[1].pad != 999i16) { return 8; }; // tail MOVQ must not smash pad return 0; };