summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/CMakeLists.txt10
-rw-r--r--compiler-rt/cmake/Modules/AddCompilerRT.cmake9
-rw-r--r--compiler-rt/cmake/Modules/CompilerRTCompile.cmake10
-rw-r--r--compiler-rt/lib/asan/tests/CMakeLists.txt19
-rw-r--r--compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt20
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/aligned_mallocs.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/allocators_sanity.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/beginthreadex.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/bitfield.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/bitfield_uaf.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/calloc_left_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/calloc_right_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/calloc_uaf.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/crt_initializers.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_aligned_mallocs.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_allocators_sanity.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_host.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_intercept_memcpy.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_intercept_strlen.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_malloc_left_oob.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_malloc_uaf.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_noreturn.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_left_oob.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_with_dtor_left_oob.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_poison_unpoison.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc4
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/double_free.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/double_operator_delete.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/global_const_string.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/global_const_string_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/hello_world.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/intercept_memcpy.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/intercept_strdup.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/intercept_strlen.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/malloc_left_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/malloc_right_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/malloc_uaf.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/operator_array_new_left_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/operator_array_new_right_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/operator_array_new_uaf.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/operator_array_new_with_dtor_left_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/operator_delete_wrong_argument.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/operator_new_left_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/operator_new_right_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/operator_new_uaf.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/realloc_left_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/realloc_right_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/realloc_uaf.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/stack_array_left_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/stack_array_right_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/stack_array_sanity.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/thread_simple.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/thread_stack_array_left_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/thread_stack_array_right_oob.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/thread_stack_reuse.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/thread_stress.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/use_after_realloc.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/windows_h.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_heap.cc2
-rw-r--r--compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc2
-rw-r--r--compiler-rt/test/asan/lit.cfg29
63 files changed, 124 insertions, 111 deletions
diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt
index da49e5ecd97..b64893d693c 100644
--- a/compiler-rt/CMakeLists.txt
+++ b/compiler-rt/CMakeLists.txt
@@ -61,12 +61,8 @@ if (NOT COMPILER_RT_STANDALONE_BUILD)
# Windows where we need to use clang-cl instead.
if(NOT MSVC)
set(COMPILER_RT_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
- set(COMPILER_RT_TEST_COMPILER_EXE "-o")
- set(COMPILER_RT_TEST_COMPILER_OBJ "-o")
else()
- set(COMPILER_RT_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang-cl.exe)
- set(COMPILER_RT_TEST_COMPILER_EXE "-Fe")
- set(COMPILER_RT_TEST_COMPILER_OBJ "-Fo")
+ set(COMPILER_RT_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe)
endif()
else()
# Take output dir and install path from the user.
@@ -80,8 +76,6 @@ else()
option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
# Use a host compiler to compile/link tests.
set(COMPILER_RT_TEST_COMPILER ${CMAKE_C_COMPILER} CACHE PATH "Compiler to use for testing")
- set(COMPILER_RT_TEST_COMPILER_EXE "-o")
- set(COMPILER_RT_TEST_COMPILER_OBJ "-o")
if (NOT LLVM_CONFIG_PATH)
find_program(LLVM_CONFIG_PATH "llvm-config"
@@ -131,7 +125,7 @@ endif()
if("${COMPILER_RT_TEST_COMPILER}" MATCHES "clang[+]*$")
set(COMPILER_RT_TEST_COMPILER_ID Clang)
-elseif("${COMPILER_RT_TEST_COMPILER}" MATCHES "clang-cl.exe$")
+elseif("${COMPILER_RT_TEST_COMPILER}" MATCHES "clang.*.exe$")
set(COMPILER_RT_TEST_COMPILER_ID Clang)
else()
set(COMPILER_RT_TEST_COMPILER_ID GNU)
diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
index 69c30e364cd..78d2492d197 100644
--- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake
@@ -118,10 +118,16 @@ set(COMPILER_RT_GTEST_PATH ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest)
set(COMPILER_RT_GTEST_SOURCE ${COMPILER_RT_GTEST_PATH}/src/gtest-all.cc)
set(COMPILER_RT_GTEST_CFLAGS
-DGTEST_NO_LLVM_RAW_OSTREAM=1
+ -DGTEST_HAS_RTTI=0
-I${COMPILER_RT_GTEST_PATH}/include
-I${COMPILER_RT_GTEST_PATH}
)
+if(MSVC)
+ # Clang doesn't support SEH on Windows yet.
+ list(APPEND COMPILER_RT_GTEST_CFLAGS -DGTEST_HAS_SEH=0)
+endif()
+
# Link objects into a single executable with COMPILER_RT_TEST_COMPILER,
# using specified link flags. Make executable a part of provided
# test_suite.
@@ -147,9 +153,8 @@ macro(add_compiler_rt_test test_suite test_name)
separate_arguments(TEST_LINK_FLAGS)
endif()
add_custom_target(${test_name}
- # MSVS CL doesn't allow a space between -Fe and the output file name.
COMMAND ${COMPILER_RT_TEST_COMPILER} ${TEST_OBJECTS}
- ${COMPILER_RT_TEST_COMPILER_EXE}"${output_bin}"
+ -o "${output_bin}"
${TEST_LINK_FLAGS}
DEPENDS ${TEST_DEPS})
# Make the test suite depend on the binary.
diff --git a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
index 4885c82e765..2d1dd22e3dc 100644
--- a/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+++ b/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
@@ -17,15 +17,21 @@ macro(clang_compile object_file source)
else()
string(REPLACE " " ";" global_flags "${CMAKE_C_FLAGS}")
endif()
+ # On Windows, CMAKE_*_FLAGS are built for MSVC but we use the GCC clang.exe
+ # which doesn't support flags starting with "/smth". Replace those with
+ # "-smth" equivalents.
+ if(MSVC)
+ string(REGEX REPLACE "^/" "-" global_flags "${global_flags}")
+ string(REPLACE ";/" ";-" global_flags "${global_flags}")
+ endif()
# Ignore unknown warnings. CMAKE_CXX_FLAGS may contain GCC-specific options
# which are not supported by Clang.
list(APPEND global_flags -Wno-unknown-warning-option)
set(compile_flags ${global_flags} ${SOURCE_CFLAGS})
add_custom_command(
OUTPUT ${object_file}
- # MSVS CL doesn't allow a space between -Fo and the object file name.
COMMAND ${COMPILER_RT_TEST_COMPILER} ${compile_flags} -c
- ${COMPILER_RT_TEST_COMPILER_OBJ}"${object_file}"
+ -o "${object_file}"
${source_rpath}
MAIN_DEPENDENCY ${source}
DEPENDS ${SOURCE_DEPS})
diff --git a/compiler-rt/lib/asan/tests/CMakeLists.txt b/compiler-rt/lib/asan/tests/CMakeLists.txt
index 470543f6365..9a34cb062a2 100644
--- a/compiler-rt/lib/asan/tests/CMakeLists.txt
+++ b/compiler-rt/lib/asan/tests/CMakeLists.txt
@@ -26,24 +26,29 @@ set(ASAN_UNITTEST_COMMON_CFLAGS
-I${COMPILER_RT_SOURCE_DIR}/lib
-I${COMPILER_RT_SOURCE_DIR}/lib/asan
-I${COMPILER_RT_SOURCE_DIR}/lib/sanitizer_common/tests
+ -fno-rtti
+ -O2
-Wno-format
- -Werror=sign-compare
- -O2)
-append_if(COMPILER_RT_HAS_G_FLAG -g ASAN_UNITTEST_COMMON_CFLAGS)
-append_if(COMPILER_RT_HAS_Zi_FLAG -Zi ASAN_UNITTEST_COMMON_CFLAGS)
+ -Werror=sign-compare)
append_if(COMPILER_RT_HAS_WNO_VARIADIC_MACROS_FLAG -Wno-variadic-macros ASAN_UNITTEST_COMMON_CFLAGS)
+# -gline-tables-only must be enough for ASan, so use it if possible.
+if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang")
+ list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -gline-tables-only)
+else()
+ list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -g)
+endif()
+
if(MSVC)
# MSVC system headers and gtest use a lot of deprecated stuff.
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
-Wno-deprecated-declarations)
- # clang-cl doesn't support exceptions yet.
+ # clang doesn't support exceptions on Windows yet.
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
- /fallback
-D_HAS_EXCEPTIONS=0)
- # We should teach clang-cl to understand more pragmas.
+ # We should teach clang to understand more pragmas.
list(APPEND ASAN_UNITTEST_COMMON_CFLAGS
-Wno-unknown-pragmas
-Wno-undefined-inline)
diff --git a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt
index 331117b248c..a374adbe7be 100644
--- a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt
+++ b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt
@@ -38,28 +38,28 @@ set(SANITIZER_TEST_CFLAGS_COMMON
-I${COMPILER_RT_SOURCE_DIR}/include
-I${COMPILER_RT_SOURCE_DIR}/lib
-I${COMPILER_RT_SOURCE_DIR}/lib/sanitizer_common
- -DGTEST_HAS_RTTI=0
+ -fno-rtti
-O2
-Werror=sign-compare
-Wno-non-virtual-dtor)
-append_if(COMPILER_RT_HAS_G_FLAG -g SANITIZER_TEST_CFLAGS_COMMON)
-append_if(COMPILER_RT_HAS_Zi_FLAG -Zi SANITIZER_TEST_CFLAGS_COMMON)
-
-append_if(COMPILER_RT_HAS_FNO_RTTI_FLAG -fno-rtti SANITIZER_TEST_CFLAGS_COMMON)
-append_if(COMPILER_RT_HAS_GR_FLAG -GR- SANITIZER_TEST_CFLAGS_COMMON)
+# -gline-tables-only must be enough for these tests, so use it if possible.
+if(COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang")
+ list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -gline-tables-only)
+else()
+ list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -g)
+endif()
if(MSVC)
- # System headers and gtest use a lot of deprecated stuff.
+ # MSVC system headers and gtest use a lot of deprecated stuff.
list(APPEND SANITIZER_TEST_CFLAGS_COMMON
-Wno-deprecated-declarations)
- # clang-cl doesn't support exceptions yet.
+ # clang doesn't support exceptions on Windows yet.
list(APPEND SANITIZER_TEST_CFLAGS_COMMON
- /fallback
-D_HAS_EXCEPTIONS=0)
- # We should teach clang-cl to understand more pragmas.
+ # We should teach clang to understand more pragmas.
list(APPEND SANITIZER_TEST_CFLAGS_COMMON
-Wno-unknown-pragmas
-Wno-undefined-inline)
diff --git a/compiler-rt/test/asan/TestCases/Windows/aligned_mallocs.cc b/compiler-rt/test/asan/TestCases/Windows/aligned_mallocs.cc
index bbbc423c7ba..df740b64e51 100644
--- a/compiler-rt/test/asan/TestCases/Windows/aligned_mallocs.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/aligned_mallocs.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/allocators_sanity.cc b/compiler-rt/test/asan/TestCases/Windows/allocators_sanity.cc
index 55cfdfff0f2..66a862d7aca 100644
--- a/compiler-rt/test/asan/TestCases/Windows/allocators_sanity.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/allocators_sanity.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/beginthreadex.cc b/compiler-rt/test/asan/TestCases/Windows/beginthreadex.cc
index 12e2b1f5074..f2b2b4511ad 100644
--- a/compiler-rt/test/asan/TestCases/Windows/beginthreadex.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/beginthreadex.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/bitfield.cc b/compiler-rt/test/asan/TestCases/Windows/bitfield.cc
index e1a3fc854c9..253a759b98d 100644
--- a/compiler-rt/test/asan/TestCases/Windows/bitfield.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/bitfield.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/bitfield_uaf.cc b/compiler-rt/test/asan/TestCases/Windows/bitfield_uaf.cc
index 63f3941e8a9..f49d671e3eb 100644
--- a/compiler-rt/test/asan/TestCases/Windows/bitfield_uaf.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/bitfield_uaf.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/calloc_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/calloc_left_oob.cc
index 71399a75a1a..459025bde92 100644
--- a/compiler-rt/test/asan/TestCases/Windows/calloc_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/calloc_left_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/calloc_right_oob.cc b/compiler-rt/test/asan/TestCases/Windows/calloc_right_oob.cc
index fcf313878a6..c976b87d970 100644
--- a/compiler-rt/test/asan/TestCases/Windows/calloc_right_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/calloc_right_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/calloc_uaf.cc b/compiler-rt/test/asan/TestCases/Windows/calloc_uaf.cc
index 5a1d9366f35..db5e70741b7 100644
--- a/compiler-rt/test/asan/TestCases/Windows/calloc_uaf.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/calloc_uaf.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/crt_initializers.cc b/compiler-rt/test/asan/TestCases/Windows/crt_initializers.cc
index 55449127d85..084f8a45e18 100644
--- a/compiler-rt/test/asan/TestCases/Windows/crt_initializers.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/crt_initializers.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t | FileCheck %s
// This is a test for http://code.google.com/p/address-sanitizer/issues/detail?id=305
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_aligned_mallocs.cc b/compiler-rt/test/asan/TestCases/Windows/dll_aligned_mallocs.cc
index db2b9d19b8d..8b2c4d6dd95 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_aligned_mallocs.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_aligned_mallocs.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: %run %t %t.dll | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_allocators_sanity.cc b/compiler-rt/test/asan/TestCases/Windows/dll_allocators_sanity.cc
index 2f3f78fe846..1d31f37ca90 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_allocators_sanity.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_allocators_sanity.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: %run %t %t.dll | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_host.cc b/compiler-rt/test/asan/TestCases/Windows/dll_host.cc
index 470d3fadd20..5eb710e55c8 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_host.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_host.cc
@@ -2,7 +2,7 @@
//
// Just make sure we can compile this.
// The actual compile&run sequence is to be done by the DLL tests.
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
//
// Get the list of ASan wrappers exported by the main module RTL:
// RUN: dumpbin /EXPORTS %t | grep -o "__asan_wrap[^ ]*" | grep -v @ | sort | uniq > %t.exported_wrappers
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_intercept_memcpy.cc b/compiler-rt/test/asan/TestCases/Windows/dll_intercept_memcpy.cc
index 8a69e7d6a95..9541135407b 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_intercept_memcpy.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_intercept_memcpy.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_intercept_strlen.cc b/compiler-rt/test/asan/TestCases/Windows/dll_intercept_strlen.cc
index caac42647e1..f41d47858be 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_intercept_strlen.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_intercept_strlen.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_malloc_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/dll_malloc_left_oob.cc
index 8064b83cbce..0653ea45f6e 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_malloc_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_malloc_left_oob.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_malloc_uaf.cc b/compiler-rt/test/asan/TestCases/Windows/dll_malloc_uaf.cc
index 5842999fdf3..b286380ac44 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_malloc_uaf.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_malloc_uaf.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_noreturn.cc b/compiler-rt/test/asan/TestCases/Windows/dll_noreturn.cc
index 4b5bf33aae8..6ec90725145 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_noreturn.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_noreturn.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
#include <process.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_left_oob.cc
index 509e0afe015..e52345eab52 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_left_oob.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
extern "C" __declspec(dllexport)
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_with_dtor_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_with_dtor_left_oob.cc
index 09302c3deb8..c61d4eb29f5 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_with_dtor_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_with_dtor_left_oob.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
struct C {
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_poison_unpoison.cc b/compiler-rt/test/asan/TestCases/Windows/dll_poison_unpoison.cc
index 24f98dd39e4..d486cb12225 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_poison_unpoison.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_poison_unpoison.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
#include <sanitizer/asan_interface.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cc b/compiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cc
index 22d99705569..6cd74c265b8 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: env ASAN_OPTIONS=detect_stack_use_after_return=1 not %run %t %t.dll 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc
index a84eeb9fa2f..8f53623419c 100644
--- a/compiler-rt/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -O0 %p/dll_host.cc -Fe%t
-// RUN: %clangxx_asan -LD -O0 %s -Fe%t.dll
+// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
+// RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
// RUN: not %run %t %t.dll 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/double_free.cc b/compiler-rt/test/asan/TestCases/Windows/double_free.cc
index 6745c59ae65..18a9fcb44a7 100644
--- a/compiler-rt/test/asan/TestCases/Windows/double_free.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/double_free.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/double_operator_delete.cc b/compiler-rt/test/asan/TestCases/Windows/double_operator_delete.cc
index 1cd7080d8d2..55a6d0921cf 100644
--- a/compiler-rt/test/asan/TestCases/Windows/double_operator_delete.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/double_operator_delete.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/global_const_string.cc b/compiler-rt/test/asan/TestCases/Windows/global_const_string.cc
index 6d17b245a20..8c147c917c8 100644
--- a/compiler-rt/test/asan/TestCases/Windows/global_const_string.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/global_const_string.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/global_const_string_oob.cc b/compiler-rt/test/asan/TestCases/Windows/global_const_string_oob.cc
index b54a2bb5aa4..3b66b8f14de 100644
--- a/compiler-rt/test/asan/TestCases/Windows/global_const_string_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/global_const_string_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/hello_world.cc b/compiler-rt/test/asan/TestCases/Windows/hello_world.cc
index 2ef37d00006..400ca1b3eac 100644
--- a/compiler-rt/test/asan/TestCases/Windows/hello_world.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/hello_world.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/intercept_memcpy.cc b/compiler-rt/test/asan/TestCases/Windows/intercept_memcpy.cc
index 73ce951b3dd..89eb175fdcc 100644
--- a/compiler-rt/test/asan/TestCases/Windows/intercept_memcpy.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/intercept_memcpy.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/intercept_strdup.cc b/compiler-rt/test/asan/TestCases/Windows/intercept_strdup.cc
index 1bc235f5a33..0a40d8634f0 100644
--- a/compiler-rt/test/asan/TestCases/Windows/intercept_strdup.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/intercept_strdup.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/intercept_strlen.cc b/compiler-rt/test/asan/TestCases/Windows/intercept_strlen.cc
index 62a5be8b3c1..928a286bedf 100644
--- a/compiler-rt/test/asan/TestCases/Windows/intercept_strlen.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/intercept_strlen.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/malloc_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/malloc_left_oob.cc
index 2f6516e7332..ec133c393da 100644
--- a/compiler-rt/test/asan/TestCases/Windows/malloc_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/malloc_left_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/malloc_right_oob.cc b/compiler-rt/test/asan/TestCases/Windows/malloc_right_oob.cc
index ba1bf93ed0a..9975316d3e0 100644
--- a/compiler-rt/test/asan/TestCases/Windows/malloc_right_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/malloc_right_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/malloc_uaf.cc b/compiler-rt/test/asan/TestCases/Windows/malloc_uaf.cc
index 3f873ccb628..f58478947bf 100644
--- a/compiler-rt/test/asan/TestCases/Windows/malloc_uaf.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/malloc_uaf.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/operator_array_new_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/operator_array_new_left_oob.cc
index 082cf4c45ea..81b709fe42e 100644
--- a/compiler-rt/test/asan/TestCases/Windows/operator_array_new_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/operator_array_new_left_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
int main() {
diff --git a/compiler-rt/test/asan/TestCases/Windows/operator_array_new_right_oob.cc b/compiler-rt/test/asan/TestCases/Windows/operator_array_new_right_oob.cc
index 1465fa06d51..079c78e829b 100644
--- a/compiler-rt/test/asan/TestCases/Windows/operator_array_new_right_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/operator_array_new_right_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/operator_array_new_uaf.cc b/compiler-rt/test/asan/TestCases/Windows/operator_array_new_uaf.cc
index f48d7a6f128..181799652cb 100644
--- a/compiler-rt/test/asan/TestCases/Windows/operator_array_new_uaf.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/operator_array_new_uaf.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/operator_array_new_with_dtor_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/operator_array_new_with_dtor_left_oob.cc
index 1702b51edce..c5bdba5f406 100644
--- a/compiler-rt/test/asan/TestCases/Windows/operator_array_new_with_dtor_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/operator_array_new_with_dtor_left_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
struct C {
diff --git a/compiler-rt/test/asan/TestCases/Windows/operator_delete_wrong_argument.cc b/compiler-rt/test/asan/TestCases/Windows/operator_delete_wrong_argument.cc
index 7358cbab826..c3e7daca55b 100644
--- a/compiler-rt/test/asan/TestCases/Windows/operator_delete_wrong_argument.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/operator_delete_wrong_argument.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/operator_new_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/operator_new_left_oob.cc
index 77454fa0caf..c077f11d68f 100644
--- a/compiler-rt/test/asan/TestCases/Windows/operator_new_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/operator_new_left_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/operator_new_right_oob.cc b/compiler-rt/test/asan/TestCases/Windows/operator_new_right_oob.cc
index e6df9c94dba..7a66d1714b9 100644
--- a/compiler-rt/test/asan/TestCases/Windows/operator_new_right_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/operator_new_right_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/operator_new_uaf.cc b/compiler-rt/test/asan/TestCases/Windows/operator_new_uaf.cc
index 350598ae95c..c435458f0c1 100644
--- a/compiler-rt/test/asan/TestCases/Windows/operator_new_uaf.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/operator_new_uaf.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/realloc_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/realloc_left_oob.cc
index 511e509da82..7d30e1d5c4a 100644
--- a/compiler-rt/test/asan/TestCases/Windows/realloc_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/realloc_left_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/realloc_right_oob.cc b/compiler-rt/test/asan/TestCases/Windows/realloc_right_oob.cc
index 3b0ad194f27..f741390bd4e 100644
--- a/compiler-rt/test/asan/TestCases/Windows/realloc_right_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/realloc_right_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/realloc_uaf.cc b/compiler-rt/test/asan/TestCases/Windows/realloc_uaf.cc
index 45c5598677a..c5b6953cf76 100644
--- a/compiler-rt/test/asan/TestCases/Windows/realloc_uaf.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/realloc_uaf.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/stack_array_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/stack_array_left_oob.cc
index 65385e23435..040d855b48e 100644
--- a/compiler-rt/test/asan/TestCases/Windows/stack_array_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/stack_array_left_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/stack_array_right_oob.cc b/compiler-rt/test/asan/TestCases/Windows/stack_array_right_oob.cc
index ac267bf7f27..a370246aa07 100644
--- a/compiler-rt/test/asan/TestCases/Windows/stack_array_right_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/stack_array_right_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/stack_array_sanity.cc b/compiler-rt/test/asan/TestCases/Windows/stack_array_sanity.cc
index 7dc75f8a6f5..1aef1a923d2 100644
--- a/compiler-rt/test/asan/TestCases/Windows/stack_array_sanity.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/stack_array_sanity.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t | FileCheck %s
#include <stdio.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cc b/compiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cc
index 1eb64429c2f..7955f268530 100644
--- a/compiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: env ASAN_OPTIONS=detect_stack_use_after_return=1 not %run %t 2>&1 | FileCheck %s
char *x;
diff --git a/compiler-rt/test/asan/TestCases/Windows/thread_simple.cc b/compiler-rt/test/asan/TestCases/Windows/thread_simple.cc
index 6afb0bf81c6..14bb82f042a 100644
--- a/compiler-rt/test/asan/TestCases/Windows/thread_simple.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/thread_simple.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_left_oob.cc b/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_left_oob.cc
index 30e8ce03348..17b9b1bf8ec 100644
--- a/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_left_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_left_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_right_oob.cc b/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_right_oob.cc
index 365288d6cbd..601a1b8a876 100644
--- a/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_right_oob.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_right_oob.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/thread_stack_reuse.cc b/compiler-rt/test/asan/TestCases/Windows/thread_stack_reuse.cc
index 49611d93b6c..7da3a807dac 100644
--- a/compiler-rt/test/asan/TestCases/Windows/thread_stack_reuse.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/thread_stack_reuse.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/thread_stress.cc b/compiler-rt/test/asan/TestCases/Windows/thread_stress.cc
index 3a0d9c5101c..74be8d88c66 100644
--- a/compiler-rt/test/asan/TestCases/Windows/thread_stress.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/thread_stress.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t
#include <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/use_after_realloc.cc b/compiler-rt/test/asan/TestCases/Windows/use_after_realloc.cc
index 6bd722bb3d0..9d2c025258f 100644
--- a/compiler-rt/test/asan/TestCases/Windows/use_after_realloc.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/use_after_realloc.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
#include <malloc.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/windows_h.cc b/compiler-rt/test/asan/TestCases/Windows/windows_h.cc
index c22118560ec..40cf5a10ad4 100644
--- a/compiler-rt/test/asan/TestCases/Windows/windows_h.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/windows_h.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: %run %t
// Just make sure we can parse <windows.h>
diff --git a/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_heap.cc b/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_heap.cc
index 0f43a6a9310..112dd5308d1 100644
--- a/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_heap.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_heap.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
class Parent {
diff --git a/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc b/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc
index 02c9b9f06bc..2859ecc521d 100644
--- a/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc
+++ b/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -O0 %s -Fe%t
+// RUN: %clang_cl_asan -O0 %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s
class Parent {
diff --git a/compiler-rt/test/asan/lit.cfg b/compiler-rt/test/asan/lit.cfg
index ef51266eb2c..ad9786f3eae 100644
--- a/compiler-rt/test/asan/lit.cfg
+++ b/compiler-rt/test/asan/lit.cfg
@@ -1,6 +1,7 @@
# -*- Python -*-
import os
+import platform
def get_required_attr(config, attr_name):
attr_value = getattr(config, attr_name, None)
@@ -32,19 +33,11 @@ else:
# FIXME: Review the set of required flags and check if it can be reduced.
target_cflags = [get_required_attr(config, "target_cflags")] + extra_linkflags
target_cxxflags = config.cxx_mode_flags + target_cflags
-clang_asan_static_cflags = ["-fsanitize=address"] + target_cflags
-
-clang_path = getattr(config, 'clang', None)
-if clang_path.find("clang-cl") == -1:
- clang_asan_static_cflags += ["-g",
- "-mno-omit-leaf-frame-pointer",
- "-fno-omit-frame-pointer",
- "-fno-optimize-sibling-calls"]
-else:
- clang_asan_static_cflags += ["-Zi",
- "-Wno-deprecated-declarations",
- "-D_HAS_EXCEPTIONS=0"]
-
+clang_asan_static_cflags = ["-fsanitize=address",
+ "-mno-omit-leaf-frame-pointer",
+ "-fno-omit-frame-pointer",
+ "-fno-optimize-sibling-calls",
+ "-g"] + target_cflags
clang_asan_static_cxxflags = config.cxx_mode_flags + clang_asan_static_cflags
if config.asan_dynamic:
@@ -76,6 +69,16 @@ if config.asan_dynamic:
config.substitutions.append( ("%clang_asan_static ", build_invocation(clang_asan_static_cflags)) )
config.substitutions.append( ("%clangxx_asan_static ", build_invocation(clang_asan_static_cxxflags)) )
+# Windows-specific tests might also use the clang-cl.exe driver.
+if platform.system() == 'Windows':
+ clang_cl_asan_cxxflags = ["-fsanitize=address",
+ "-Wno-deprecated-declarations",
+ "-D_HAS_EXCEPTIONS=0",
+ "-Zi"] + target_cflags
+ clang_invocation = build_invocation(clang_cl_asan_cxxflags)
+ clang_cl_invocation = clang_invocation.replace("clang.exe","clang-cl.exe")
+ config.substitutions.append( ("%clang_cl_asan ", clang_cl_invocation) )
+
# FIXME: De-hardcode this path.
asan_source_dir = os.path.join(
get_required_attr(config, "compiler_rt_src_root"), "lib", "asan")
OpenPOWER on IntegriCloud