diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2019-08-26 21:44:55 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2019-08-26 21:44:55 +0000 |
commit | ed4fefb0df94799d902fadeabef4161f729ff8ca (patch) | |
tree | 7ee29dc955191420164358cfd23fe8452c6f7640 | |
parent | 8853ac7e022c0b65fee6f33407ea28f3701446fd (diff) | |
download | bcm5719-llvm-ed4fefb0df94799d902fadeabef4161f729ff8ca.tar.gz bcm5719-llvm-ed4fefb0df94799d902fadeabef4161f729ff8ca.zip |
[hwasan] Fix test failure in r369721.
Try harder to emulate "old runtime" in the test.
To get the old behavior with the new runtime library, we need both
disable personality function wrapping and enable landing pad
instrumentation.
llvm-svn: 369977
-rw-r--r-- | compiler-rt/test/hwasan/lit.cfg.py | 9 | ||||
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp | 5 |
2 files changed, 9 insertions, 5 deletions
diff --git a/compiler-rt/test/hwasan/lit.cfg.py b/compiler-rt/test/hwasan/lit.cfg.py index d2e71ba6d57..eead8321972 100644 --- a/compiler-rt/test/hwasan/lit.cfg.py +++ b/compiler-rt/test/hwasan/lit.cfg.py @@ -11,15 +11,18 @@ config.test_source_root = os.path.dirname(__file__) # Setup default compiler flags used with -fsanitize=memory option. clang_cflags = [config.target_cflags] + config.debug_info_flags clang_cxxflags = config.cxx_mode_flags + clang_cflags -clang_hwasan_oldrt_cflags = clang_cflags + ["-fsanitize=hwaddress", "-fuse-ld=lld"] +clang_hwasan_common_cflags = clang_cflags + ["-fsanitize=hwaddress", "-fuse-ld=lld"] if config.target_arch == 'x86_64': # This does basically the same thing as tagged-globals on aarch64. Because # the x86_64 implementation is for testing purposes only there is no # equivalent target feature implemented on x86_64. - clang_hwasan_oldrt_cflags += ["-mcmodel=large"] -clang_hwasan_cflags = clang_hwasan_oldrt_cflags + ["-mllvm", "-hwasan-globals", + clang_hwasan_common_cflags += ["-mcmodel=large"] +clang_hwasan_cflags = clang_hwasan_common_cflags + ["-mllvm", "-hwasan-globals", "-mllvm", "-hwasan-instrument-landing-pads=0", "-mllvm", "-hwasan-instrument-personality-functions"] +clang_hwasan_oldrt_cflags = clang_hwasan_common_cflags + ["-mllvm", "-hwasan-instrument-landing-pads=1", + "-mllvm", "-hwasan-instrument-personality-functions=0"] + clang_hwasan_cxxflags = config.cxx_mode_flags + clang_hwasan_cflags clang_hwasan_oldrt_cxxflags = config.cxx_mode_flags + clang_hwasan_oldrt_cflags diff --git a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp index 8a1129aa9a0..ca67eee1bef 100644 --- a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp @@ -164,11 +164,12 @@ static cl::opt<bool> static cl::opt<bool> ClInstrumentLandingPads("hwasan-instrument-landing-pads", cl::desc("instrument landing pads"), cl::Hidden, - cl::init(false)); + cl::init(false), cl::ZeroOrMore); static cl::opt<bool> ClInstrumentPersonalityFunctions( "hwasan-instrument-personality-functions", - cl::desc("instrument personality functions"), cl::Hidden, cl::init(false)); + cl::desc("instrument personality functions"), cl::Hidden, cl::init(false), + cl::ZeroOrMore); static cl::opt<bool> ClInlineAllChecks("hwasan-inline-all-checks", cl::desc("inline all checks"), |