[PATCH] Removing -fsanitize-address-zero-base-shadow

Hi,

we plan to remove -fsanitize-address-zero-base-shadow command line
flag from clang, and disable zero-base shadow support on all platforms
where it is not the default behavior.

- It is completely unused, as far as we know. And completely undocumented, too.
- It is ABI-incompatible with non-zero-base shadow, which means all
objects in a process must be built with the same setting. Failing to
do so results in a segmentation fault at runtime.
- It introduces a backward dependency of compiler-rt on user code,
which is uncommon and complicates testing.

For the reference, attaching patches to cfe, llvm and compiler-rt that
remove the flag and all support for it in the ASan instrumentation
pass and runtime library.

cfe.patch (7.73 KB)

compiler-rt.patch (9.66 KB)

llvm.patch (6.16 KB)

Hi,

we plan to remove -fsanitize-address-zero-base-shadow command line
flag from clang, and disable zero-base shadow support on all platforms
where it is not the default behavior.

- It is completely unused, as far as we know. And completely undocumented,
too.

Not completely undocumented:
https://code.google.com/p/address-sanitizer/wiki/ZeroBasedShadow
Still, I think we can nuke this code now. (== LGTM)

Sounds good. Thanks for the heads up.

-Greg

Can we have the __asan_init version bumped with the compiler-rt change?

Why do you want to change the API version?

Using old runtime with new compiler will result in a link failure
already. We don't get anything extra from bumping __asan_init version.