Add use_asan option for MSVC to enable AddressSanitizer
Exposes AddressSanitizer support in MSVC compiler. Can be installed via individual components in the Visual Studio 2019 Installer. Disabled by default. Compile the engine with `scons use_asan=yes`.
This commit is contained in:
parent
adf233ed04
commit
53901d870b
1 changed files with 7 additions and 0 deletions
|
|
@ -72,6 +72,7 @@ def get_opts():
|
|||
BoolVariable("use_llvm", "Use the LLVM compiler", False),
|
||||
BoolVariable("use_thinlto", "Use ThinLTO", False),
|
||||
BoolVariable("use_static_cpp", "Link MinGW/MSVC C++ runtime libraries statically", True),
|
||||
BoolVariable("use_asan", "Use address sanitizer (ASAN)", False),
|
||||
]
|
||||
|
||||
|
||||
|
|
@ -306,6 +307,12 @@ def configure_msvc(env, manual_msvc_config):
|
|||
env.Prepend(CPPPATH=[p for p in os.getenv("INCLUDE").split(";")])
|
||||
env.Append(LIBPATH=[p for p in os.getenv("LIB").split(";")])
|
||||
|
||||
# Sanitizers
|
||||
if env["use_asan"]:
|
||||
env.extra_suffix += ".s"
|
||||
env.Append(LINKFLAGS=["/INFERASANLIBS"])
|
||||
env.Append(CCFLAGS=["/fsanitize=address"])
|
||||
|
||||
# Incremental linking fix
|
||||
env["BUILDERS"]["ProgramOriginal"] = env["BUILDERS"]["Program"]
|
||||
env["BUILDERS"]["Program"] = methods.precious_program
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue