Any usage of offset from the ptr module is likely wrong, because it uses size_of instead of nonzero_size_of. The iterators and slice implementations are two examples.
struct Foo;
let xs = ~[Foo, Foo, Foo];
println(fmt!("%?", xs.slice(0, 2).to_owned())) // prints `~[]`