AddressSanitizer is great. It's been around for a long time now though, the only thing that's new is that it now has Xcode integration. (And Apple marketing apparently thought that the name was better with a space in the middle, like they think that "LLVM Compiler" is a better name than clang.)
Interestingly enough, the x86 processor has a BOUND instruction, which was supposed to be used for array bounds checking and would throw interrupt 5 on error.
AMD removed BOUND as part of the 64-bit transition. Intel is adding a similar feature to Skylake (Aug 2015) called "Intel Memory Protection Extensions" (MPX).
> A very biased conclusion: Intel MPX might be useful for in-struct buffer overflow detection, and for general buffer overflow detection in programs with lots of arrays and few pointers. However AddressSanitizer (and, if implemented, AddressSanitizerInHardware) is more useful: faster, finds more bugs, easier to deploy.