Description
The following code writes beyond the end of Buffer r0 inside the JIT-compiled code. Given the schedule, I believe the minimum viable output size is 1024 + 16, starting at -1, not 1024 starting at zero, so it should be failing a bounds check, but it's not.
Var x;
const int size = 1024;
Func h;
h(x) = {0, 0};
RDom r(0, size);
h(r) = {h(r - 1)[0], 0};
Var xo, xi;
h.split(x, xo, xi, 16, TailStrategy::RoundUp);
Buffer<int> r0(size);
Buffer<int> r1(size);
h.realize({r0, r1});