mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 00:25:35 +08:00
Added support for using address sanitizer with clang-cl.
This commit is contained in:
@@ -186,6 +186,18 @@ msvc:contains(QMAKE_CXXFLAGS, /permissive-): QMAKE_CXXFLAGS *= /FIpermissivework
|
|||||||
################################
|
################################
|
||||||
|
|
||||||
clang_cl {
|
clang_cl {
|
||||||
|
# Address Sanitizer
|
||||||
|
# https://stackoverflow.com/a/48585886/1639256
|
||||||
|
# http://lists.llvm.org/pipermail/cfe-dev/2016-April/048288.html
|
||||||
|
contains(QMAKE_CXXFLAGS, -fsanitize=address) {
|
||||||
|
SANITIZER_LIB_DIR = $$system(clang -print-resource-dir)\lib\windows
|
||||||
|
equals(WORD_SIZE,32): SANITIZER_LIB_SUFFIX = i386.lib
|
||||||
|
equals(WORD_SIZE,64): SANITIZER_LIB_SUFFIX = x86_64.lib
|
||||||
|
LIBS += $$SANITIZER_LIB_DIR\clang_rt.asan_dynamic-$$SANITIZER_LIB_SUFFIX
|
||||||
|
QMAKE_LFLAGS += -wholearchive:$$SANITIZER_LIB_DIR\clang_rt.asan_dynamic_runtime_thunk-$$SANITIZER_LIB_SUFFIX
|
||||||
|
QMAKE_LFLAGS += -include:__asan_seh_interceptor
|
||||||
|
}
|
||||||
|
|
||||||
# Suppress warnings in Qt headers
|
# Suppress warnings in Qt headers
|
||||||
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$obj $src
|
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$obj $src
|
||||||
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$@ $<
|
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH:-I$$system_path($$[QT_HOST_PREFIX])=/imsvc $$system_path($$[QT_HOST_PREFIX])) -Fo$@ $<
|
||||||
|
|||||||
Reference in New Issue
Block a user