ASan will have false negatives on the memory accesses performed in the code which isn't compiled with ASan. It works fine, otherwise. FWIW, UBSan (-fsanitize=undefined) follows the same rule. For this reason it's common to combine them and build once with -fsanitize=address,undefined. Don't forget to pass that while linking too.
ThreadSanitizer requires that all code with atomic accesses be instrumented.
MemorySanitizer requires that all code which writes to a byte in memory be instrumented.