The definitions in sanitizer_common may conflict with definitions from system headers because:
- The runtime includes the system headers after the project headers (as per LLVM coding guidelines).
- lib/sanitizer_common/sanitizer_internal_defs.h pollutes the namespace of everything defined after it, which is all/most of the sanitizer .h and .cc files and the included system headers with: using namespace __sanitizer; // NOLINT
This patch solves the problem by introducing the namespace only within the sanitizer namespaces as proposed by Dmitry.
(TODO: This needs to be tested on Linux since we do not build a few sanitizers on macOS. I'll probably have to do more cleanup once I test on Linux.)