Hi everyone,
this is an OS X specific patch that adds a dyld initializer (marked with __attribute__((constructor))) which just calls AsanInitFromRtl. The idea is to ensure that the ASan runtime gets initialized early (i.e. before other initializers/constructors) even when DYLD_INSERT_LIBRARIES is not used. In that case, the interceptors are not installed (on OS X, DYLD_INSERT_LIBRARIES is required for interceptors to work), and therefore ASan gets currently initialized quite late -- from the main executable's module initializer. The following issues are a consequence of this:
- https://code.google.com/p/address-sanitizer/issues/detail?id=363
- https://code.google.com/p/address-sanitizer/issues/detail?id=357
Both of them are fixed with this patch.
This test case has weird indentation. Can you run clang-format just to make sure?