forked from OSchip/llvm-project
[ASan/Win] Use clang rather than clang-cl by default for lit tests. Make Windows-only tests explicitly use clang-cl.
Reviewed at http://reviews.llvm.org/D3893 llvm-svn: 209719
This commit is contained in:
parent
d74bdccafe
commit
82ee0433da
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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})
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue