@@ -176,43 +176,46 @@ elseif(UNIX OR MINGW)
176
176
# very upset. Tell it that it's okay and that we love it
177
177
# unconditionally.
178
178
append (CMAKE_CCXX_NOWARN_FLAGS "-Wno-pass-failed" )
179
- if (DNNL_USE_CLANG_SANITIZER MATCHES "Memory(WithOrigin)?" )
180
- if (NOT DNNL_CPU_THREADING_RUNTIME STREQUAL "SEQ" )
181
- message (WARNING "Clang OpenMP is not compatible with MSan! "
182
- "Expect a lot of false positives!" )
183
- endif ()
184
- append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=memory" )
185
- if (DNNL_USE_CLANG_SANITIZER STREQUAL "MemoryWithOrigin" )
186
- append (CMAKE_CCXX_SANITIZER_FLAGS
187
- "-fsanitize-memory-track-origins=2" )
179
+
180
+ if (DEFINED DNNL_USE_CLANG_SANITIZER )
181
+ if (DNNL_USE_CLANG_SANITIZER MATCHES "Memory(WithOrigin)?" )
182
+ if (NOT DNNL_CPU_THREADING_RUNTIME STREQUAL "SEQ" )
183
+ message (WARNING "Clang OpenMP is not compatible with MSan! "
184
+ "Expect a lot of false positives!" )
185
+ endif ()
186
+ append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=memory" )
187
+ if (DNNL_USE_CLANG_SANITIZER STREQUAL "MemoryWithOrigin" )
188
+ append (CMAKE_CCXX_SANITIZER_FLAGS
189
+ "-fsanitize-memory-track-origins=2" )
190
+ append (CMAKE_CCXX_SANITIZER_FLAGS
191
+ "-fno-omit-frame-pointer" )
192
+ endif ()
193
+ set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
194
+ elseif (DNNL_USE_CLANG_SANITIZER STREQUAL "Undefined" )
195
+ append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=undefined" )
188
196
append (CMAKE_CCXX_SANITIZER_FLAGS
189
- "-fno-omit-frame-pointer" )
197
+ "-fno-sanitize=function,vptr" ) # work around linking problems
198
+ append (CMAKE_CCXX_SANITIZER_FLAGS "-fno-omit-frame-pointer" )
199
+ set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
200
+ elseif (DNNL_USE_CLANG_SANITIZER STREQUAL "Address" )
201
+ append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=address" )
202
+ set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
203
+ elseif (DNNL_USE_CLANG_SANITIZER STREQUAL "Thread" )
204
+ append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=thread" )
205
+ set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
206
+ elseif (DNNL_USE_CLANG_SANITIZER STREQUAL "Leak" )
207
+ append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=leak" )
208
+ set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
209
+ else ()
210
+ message (FATAL_ERROR
211
+ "Unsupported Clang sanitizer '${DNNL_USE_CLANG_SANITIZER} '" )
212
+ endif ()
213
+ if (DNNL_ENABLED_CLANG_SANITIZER )
214
+ message (STATUS
215
+ "Using Clang ${DNNL_ENABLED_CLANG_SANITIZER} "
216
+ "sanitizer (experimental!)" )
217
+ append (CMAKE_CCXX_SANITIZER_FLAGS "-g -fno-omit-frame-pointer" )
190
218
endif ()
191
- set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
192
- elseif (DNNL_USE_CLANG_SANITIZER STREQUAL "Undefined" )
193
- append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=undefined" )
194
- append (CMAKE_CCXX_SANITIZER_FLAGS
195
- "-fno-sanitize=function,vptr" ) # work around linking problems
196
- append (CMAKE_CCXX_SANITIZER_FLAGS "-fno-omit-frame-pointer" )
197
- set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
198
- elseif (DNNL_USE_CLANG_SANITIZER STREQUAL "Address" )
199
- append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=address" )
200
- set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
201
- elseif (DNNL_USE_CLANG_SANITIZER STREQUAL "Thread" )
202
- append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=thread" )
203
- set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
204
- elseif (DNNL_USE_CLANG_SANITIZER STREQUAL "Leak" )
205
- append (CMAKE_CCXX_SANITIZER_FLAGS "-fsanitize=leak" )
206
- set (DNNL_ENABLED_CLANG_SANITIZER "${DNNL_USE_CLANG_SANITIZER} " )
207
- elseif (NOT DNNL_USE_CLANG_SANITIZER STREQUAL "" )
208
- message (FATAL_ERROR
209
- "Unsupported Clang sanitizer '${DNNL_USE_CLANG_SANITIZER} '" )
210
- endif ()
211
- if (DNNL_ENABLED_CLANG_SANITIZER )
212
- message (STATUS
213
- "Using Clang ${DNNL_ENABLED_CLANG_SANITIZER} "
214
- "sanitizer (experimental!)" )
215
- append (CMAKE_CCXX_SANITIZER_FLAGS "-g -fno-omit-frame-pointer" )
216
219
endif ()
217
220
218
221
if (DNNL_USE_CLANG_TIDY MATCHES "(CHECK|FIX)" AND ${CMAKE_VERSION} VERSION_LESS "3.6.0" )
0 commit comments