SaiphC Address Sanitizer* Valgrind**
Detecting memory access violations
Out-of-bounds access of stack-allocated array +++ + -
Out-of-bounds access of heap-allocated array +++ + +
Out-of-bounds access of global array +++ - -
Null (and uninitialized) pointer dereference +++ +++ +++
Use-after-free (stack-allocated) ++ - -
Use-after-free (heap-allocated) ++ - +
Double free ++ + +
Reachable Dangling Pointer ++ - -
Stack overflow +++ - -
Error Reporting
Reports the cause +++ + +
Reports source location +++ + +
Reports backtrace +++ + +
Linking type supported
Static linking
Dynamic linking

+++always, ++very high probability, +most times, -never, and ✔ supported
* clang-7.0.0; ** valgrind-3.10

Run this demo with ASAN and valgrind to see the difference