@@ -75,6 +75,36 @@ function(_set_target_prefix_and_suffix target kind sdk)
75
75
endif ()
76
76
endfunction ()
77
77
78
+ function (_add_host_variant_swift_sanitizer_flags target )
79
+ if (LLVM_USE_SANITIZER )
80
+ if (LLVM_USE_SANITIZER STREQUAL "Address" )
81
+ set (_Swift_SANITIZER_FLAGS "-sanitize=address" )
82
+ elseif (LLVM_USE_SANITIZER STREQUAL "HWAddress" )
83
+ # Not supported?
84
+ elseif (LLVM_USE_SANITIZER MATCHES "Memory(WithOrigins)?" )
85
+ # Not supported
86
+ if (LLVM_USE_SANITIZER STREQUAL "MemoryWithOrigins" )
87
+ # Not supported
88
+ endif ()
89
+ elseif (LLVM_USE_SANITIZER STREQUAL "Undefined" )
90
+ set (_Swift_SANITIZER_FLAGS "-sanitize=undefined" )
91
+ elseif (LLVM_USE_SANITIZER STREQUAL "Thread" )
92
+ set (_Swift_SANITIZER_FLAGS "-sanitize=thread" )
93
+ elseif (LLVM_USE_SANITIZER STREQUAL "DataFlow" )
94
+ # Not supported
95
+ elseif (LLVM_USE_SANITIZER STREQUAL "Address;Undefined" OR
96
+ LLVM_USE_SANITIZER STREQUAL "Undefined;Address" )
97
+ set (_Swift_SANITIZER_FLAGS "-sanitize=address -sanitize=undefined" )
98
+ elseif (LLVM_USE_SANITIZER STREQUAL "Leaks" )
99
+ # Not supported
100
+ else ()
101
+ message (SEND_ERROR "unsupported value for LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER} " )
102
+ endif ()
103
+
104
+ target_compile_options (${name} PRIVATE $< $< COMPILE_LANGUAGE:Swift> :${_Swift_SANITIZER_FLAGS} > )
105
+ endif ()
106
+ endfunction ()
107
+
78
108
# Usage:
79
109
# _add_host_variant_c_compile_link_flags(name)
80
110
function (_add_host_variant_c_compile_link_flags name )
@@ -100,6 +130,8 @@ function(_add_host_variant_c_compile_link_flags name)
100
130
MACCATALYST_BUILD_FLAVOR ""
101
131
DEPLOYMENT_VERSION "${DEPLOYMENT_VERSION} " )
102
132
target_compile_options (${name} PRIVATE $< $< COMPILE_LANGUAGE:Swift> :-target;${target} > )
133
+
134
+ _add_host_variant_swift_sanitizer_flags (${name} )
103
135
endif ()
104
136
105
137
set (_sysroot
0 commit comments