Skip to content

Commit

Permalink
[asan][windows][tests] support MSVC compiler-id in asan tests (llvm#1…
Browse files Browse the repository at this point in the history
…09706)

This follows up on llvm#108255 to
allow actually running the test suite with MSVC. Note, however, that
MSVC can't yet build compiler-rt, most tests don't yet pass with msvc,
and building and testing with different compilers is ill-supported.
Follow ups will fix the first two issues, the third is future work.

Note that `/Zi` is removed from the clang-cl command line, but lit as a
whole adds `-gcodeview`, so there should still be debug info.
  • Loading branch information
barcharcraz committed Sep 24, 2024
1 parent 71ca9fc commit a6bdf3f
Showing 1 changed file with 16 additions and 6 deletions.
22 changes: 16 additions & 6 deletions compiler-rt/test/asan/lit.cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,12 +153,16 @@ def build_invocation(compile_flags, with_lto=False):
if platform.system() == "Windows":
# MSVC-specific tests might also use the clang-cl.exe driver.
if target_is_msvc:
clang_cl_cxxflags = [
"-Wno-deprecated-declarations",
"-WX",
"-D_HAS_EXCEPTIONS=0",
"-Zi",
] + target_cflags
clang_cl_cxxflags = (
[
"-WX",
"-D_HAS_EXCEPTIONS=0",
]
+ config.debug_info_flags
+ target_cflags
)
if config.compiler_id != "MSVC":
clang_cl_cxxflags = ["-Wno-deprecated-declarations"] + clang_cl_cxxflags
clang_cl_asan_cxxflags = ["-fsanitize=address"] + clang_cl_cxxflags
if config.asan_dynamic:
clang_cl_asan_cxxflags.append("-MD")
Expand Down Expand Up @@ -286,6 +290,12 @@ def build_invocation(compile_flags, with_lto=False):
[config.compiler_rt_libdir, os.environ.get("PATH", "")]
)

# msvc needs to be instructed where the compiler-rt libraries are
if config.compiler_id == "MSVC":
config.environment["LIB"] = os.path.pathsep.join(
[config.compiler_rt_libdir, config.environment.get("LIB", "")]
)

# Default test suffixes.
config.suffixes = [".c", ".cpp"]

Expand Down

0 comments on commit a6bdf3f

Please sign in to comment.