I'm pretty sure that all of these are handled in ATS2 by linear or dependent types, but there is one I'm not sure about.
It is possible I've gotten the categorizations wrong but this is my understanding:
dependent:
Signed integer overflow
Dereferencing a NULL Pointer
linear:
Violating Type Rules (e.g. use castfn in ATS2 where appropriate, and use the correct views)
Use of an uninitialized variable
linear or dependent:
Dereferences of Wild Pointers and Out of Bounds Array Accesses
other:
Oversized Shift Amount (I'm not sure about this one, but it seems that it is possible to do this safely, if not necessarily as efficiently as doing it unsafely. But I think dependent types could be used to do this safely, as you just define the shift amount as a size < 32).