@@ -337,14 +337,31 @@ endfunction()
337
337
if (SANITIZER_ENABLE_LEGACY_SUPPORT OR USE_SANITIZER )
338
338
set (SANITIZER_LEGACY_SUPPORT ON )
339
339
340
- set_sanitizer_options (address DEFAULT -fno-omit-frame-pointer )
341
- set_sanitizer_options (leak DEFAULT -fno-omit-frame-pointer )
342
- set_sanitizer_options (memory DEFAULT -fno-omit-frame-pointer )
343
- set_sanitizer_options (memorywithorigins DEFAULT SANITIZER memory
344
- -fno-omit-frame-pointer -fsanitize-memory-track-origins )
345
- set_sanitizer_options (undefined DEFAULT -fno-omit-frame-pointer )
346
- set_sanitizer_options (thread DEFAULT -fno-omit-frame-pointer )
347
- set_sanitizer_options (cfi DEFAULT -fno-omit-frame-pointer )
340
+ # The older variants used to add this flag, but since MSVC doesn't support it,
341
+ # do a check and add it only if available
342
+ set (QUIET_BACKUP ${CMAKE_REQUIRED_QUIET} )
343
+ set (CMAKE_REQUIRED_QUIET TRUE )
344
+ unset (SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS )
345
+ check_cxx_compiler_flag (-fno-omit-frame-pointer
346
+ SANITIZER_OMIT_FRAME_POINTER_AVAILABLE )
347
+ set (CMAKE_REQUIRED_QUIET "${QUIET_BACKUP} " )
348
+ if (SANITIZER_OMIT_FRAME_POINTER_AVAILABLE )
349
+ set (SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS -fno-omit-frame-pointer )
350
+ endif ()
351
+
352
+ set_sanitizer_options (address DEFAULT
353
+ ${SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS} )
354
+ set_sanitizer_options (leak DEFAULT ${SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS} )
355
+ set_sanitizer_options (memory DEFAULT
356
+ ${SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS} )
357
+ set_sanitizer_options (
358
+ memorywithorigins DEFAULT SANITIZER memory
359
+ ${SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS} -fsanitize-memory-track-origins )
360
+ set_sanitizer_options (undefined DEFAULT
361
+ ${SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS} )
362
+ set_sanitizer_options (thread DEFAULT
363
+ ${SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS} )
364
+ set_sanitizer_options (cfi DEFAULT ${SANITIZER_LEGACY_DEFAULT_COMMON_OPTIONS} )
348
365
349
366
set (USE_SANITIZER
350
367
""
0 commit comments