From 353f87ebc396bf2dc7102e98178759105f8239ab Mon Sep 17 00:00:00 2001 From: Duo Wang Date: Sat, 2 Dec 2023 12:23:39 -0800 Subject: [PATCH] turn off lld string tail merging when ASAN is turned on --- llvm/cmake/modules/HandleLLVMOptions.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 6a3c49edc912d..671600c4631c7 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -988,6 +988,9 @@ if(LLVM_USE_SANITIZER) endif() # Prepare ASAN runtime if needed if (LLVM_USE_SANITIZER MATCHES ".*Address.*") + # lld string tail merging interacts badly with ASAN on Windows, turn it off here + # See https://github.com/llvm/llvm-project/issues/62078 + append("/opt:nolldtailmerge" CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS) if (${CMAKE_MSVC_RUNTIME_LIBRARY} MATCHES "^(MultiThreaded|MultiThreadedDebug)$") append("/wholearchive:clang_rt.asan-${arch}.lib /wholearchive:clang_rt.asan_cxx-${arch}.lib" CMAKE_EXE_LINKER_FLAGS)