On Darwin, there is an issue with llvm-symbolizer and atos, where we cannot properly symbolize when mixing x86_64 and x86_64h modules within one process. This is a very common case on macOS (x86_64h is backwards compatible, so when there is no x86_64h slice, a regular x86_64 is loaded instead). This currently makes some compiler-rt tests fail on Haswell+ Darwin machines.
This patch teaches asan_symbolize.py to read an architecture suffix on module names (e.g. ":x86_64") and pass that option to atos and llvm-symbolizer. Follow-up patches will fix the same problem when invoking llvm-symbolizer directly from sanitizers.