Mercurial > hg > CbC > CbC_llvm
view compiler-rt/test/hwasan/lit.cfg.py @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 1f2b6ac9f198 |
children |
line wrap: on
line source
# -*- Python -*- import os # Setup config name. config.name = "HWAddressSanitizer" + getattr(config, "name_suffix", "default") # Setup source root. 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_common_cflags = clang_cflags + ["-fsanitize=hwaddress", "-fuse-ld=lld"] if config.target_arch == "x86_64" and config.enable_aliases == "1": clang_hwasan_common_cflags += ["-fsanitize-hwaddress-experimental-aliasing"] else: config.available_features.add("pointer-tagging") if config.target_arch == "x86_64": # The callback instrumentation used on x86_64 has a 1/64 chance of choosing a # stack tag of 0. This causes stack tests to become flaky, so we force tags # to be generated via calls to __hwasan_generate_tag, which never returns 0. # TODO: See if we can remove this once we use the outlined instrumentation. clang_hwasan_common_cflags += ["-mllvm", "-hwasan-generate-tags-with-calls=1"] clang_hwasan_cflags = clang_hwasan_common_cflags + [ "-mllvm", "-hwasan-globals", "-mllvm", "-hwasan-use-short-granules", "-mllvm", "-hwasan-instrument-landing-pads=0", "-mllvm", "-hwasan-instrument-personality-functions", ] clang_hwasan_oldrt_cflags = clang_hwasan_common_cflags + [ "-mllvm", "-hwasan-use-short-granules=0", "-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 def build_invocation(compile_flags): return " " + " ".join([config.clang] + compile_flags) + " " config.substitutions.append(("%clangxx ", build_invocation(clang_cxxflags))) config.substitutions.append(("%clang_hwasan ", build_invocation(clang_hwasan_cflags))) config.substitutions.append( ("%clang_hwasan_oldrt ", build_invocation(clang_hwasan_oldrt_cflags)) ) config.substitutions.append( ("%clangxx_hwasan ", build_invocation(clang_hwasan_cxxflags)) ) config.substitutions.append( ("%clangxx_hwasan_oldrt ", build_invocation(clang_hwasan_oldrt_cxxflags)) ) config.substitutions.append(("%compiler_rt_libdir", config.compiler_rt_libdir)) default_hwasan_opts_str = ":".join( ["disable_allocator_tagging=1", "random_tags=0", "fail_without_syscall_abi=0"] + config.default_sanitizer_opts ) if default_hwasan_opts_str: config.environment["HWASAN_OPTIONS"] = default_hwasan_opts_str default_hwasan_opts_str += ":" config.substitutions.append( ("%env_hwasan_opts=", "env HWASAN_OPTIONS=" + default_hwasan_opts_str) ) # Default test suffixes. config.suffixes = [".c", ".cpp"] if config.host_os not in ["Linux", "Android"] or not config.has_lld: config.unsupported = True