@@ -31,14 +31,14 @@ function(append value)
3131endfunction ()
3232
3333function (test_san_flags return_var flags )
34- set (QUIET_BACKUP ${CMAKE_REQUIRED_QUIET} )
35- set (CMAKE_REQUIRED_QUIET TRUE )
36- unset (${return_var} CACHE )
37- set (FLAGS_BACKUP ${CMAKE_REQUIRED_FLAGS} )
38- set (CMAKE_REQUIRED_FLAGS "${flags} " )
39- check_cxx_source_compiles("int main() { return 0; }" ${return_var} )
40- set (CMAKE_REQUIRED_FLAGS "${FLAGS_BACKUP} " )
41- set (CMAKE_REQUIRED_QUIET "${QUIET_BACKUP} " )
34+ set (QUIET_BACKUP ${CMAKE_REQUIRED_QUIET} )
35+ set (CMAKE_REQUIRED_QUIET TRUE )
36+ unset (${return_var} CACHE )
37+ set (FLAGS_BACKUP ${CMAKE_REQUIRED_FLAGS} )
38+ set (CMAKE_REQUIRED_FLAGS "${flags} " )
39+ check_cxx_source_compiles("int main() { return 0; }" ${return_var} )
40+ set (CMAKE_REQUIRED_FLAGS "${FLAGS_BACKUP} " )
41+ set (CMAKE_REQUIRED_QUIET "${QUIET_BACKUP} " )
4242endfunction ()
4343
4444if (USE_SANITIZER)
@@ -57,11 +57,13 @@ if(USE_SANITIZER)
5757 message (STATUS "Testing with Address sanitizer" )
5858 set (SANITIZER_ADDR_FLAG "-fsanitize=address" )
5959 test_san_flags(SANITIZER_ADDR_AVAILABLE ${SANITIZER_ADDR_FLAG} )
60- if (SANITIZER_ADDR_AVAILABLE)
60+ if (SANITIZER_ADDR_AVAILABLE)
6161 message (STATUS " Building with Address sanitizer" )
6262 append ("${SANITIZER_ADDR_FLAG} " SANITIZER_SELECTED_FLAGS)
6363 else ()
64- message (FATAL_ERROR "Address sanitizer not available for ${CMAKE_CXX_COMPILER} " )
64+ message (
65+ FATAL_ERROR
66+ "Address sanitizer not available for ${CMAKE_CXX_COMPILER} " )
6567 endif ()
6668 endif ()
6769
@@ -75,15 +77,18 @@ if(USE_SANITIZER)
7577 message (STATUS "Testing with Memory sanitizer" )
7678 endif ()
7779 test_san_flags(SANITIZER_MEM_AVAILABLE ${SANITIZER_MEM_FLAG} )
78- if (SANITIZER_MEM_AVAILABLE)
80+ if (SANITIZER_MEM_AVAILABLE)
7981 if (USE_SANITIZER MATCHES "([Mm]emory[Ww]ith[Oo]rigins)" )
80- message (STATUS " Building with MemoryWithOrigins sanitizer" )
82+ message (STATUS " Building with MemoryWithOrigins sanitizer" )
8183 else ()
82- message (STATUS " Building with Memory sanitizer" )
84+ message (STATUS " Building with Memory sanitizer" )
8385 endif ()
8486 append ("${SANITIZER_MEM_FLAG} " SANITIZER_SELECTED_FLAGS)
8587 else ()
86- message (FATAL_ERROR "Memory [With Origins] sanitizer not available for ${CMAKE_CXX_COMPILER} " )
88+ message (
89+ FATAL_ERROR
90+ "Memory [With Origins] sanitizer not available for ${CMAKE_CXX_COMPILER} "
91+ )
8792 endif ()
8893 endif ()
8994
@@ -94,57 +99,69 @@ if(USE_SANITIZER)
9499 append ("-fsanitize-blacklist=${BLACKLIST_FILE} " SANITIZER_UB_FLAG)
95100 endif ()
96101 test_san_flags(SANITIZER_UB_AVAILABLE ${SANITIZER_UB_FLAG} )
97- if (SANITIZER_UB_AVAILABLE)
102+ if (SANITIZER_UB_AVAILABLE)
98103 message (STATUS " Building with Undefined Behaviour sanitizer" )
99104 append ("${SANITIZER_UB_FLAG} " SANITIZER_SELECTED_FLAGS)
100105 else ()
101- message (FATAL_ERROR "Undefined Behaviour sanitizer not available for ${CMAKE_CXX_COMPILER} " )
106+ message (
107+ FATAL_ERROR
108+ "Undefined Behaviour sanitizer not available for ${CMAKE_CXX_COMPILER} "
109+ )
102110 endif ()
103111 endif ()
104112
105113 if (USE_SANITIZER MATCHES "([Tt]hread)" )
106114 message (STATUS "Testing with Thread sanitizer" )
107115 set (SANITIZER_THREAD_FLAG "-fsanitize=thread" )
108116 test_san_flags(SANITIZER_THREAD_AVAILABLE ${SANITIZER_THREAD_FLAG} )
109- if (SANITIZER_THREAD_AVAILABLE)
117+ if (SANITIZER_THREAD_AVAILABLE)
110118 message (STATUS " Building with Thread sanitizer" )
111119 append ("${SANITIZER_THREAD_FLAG} " SANITIZER_SELECTED_FLAGS)
112120 else ()
113- message (FATAL_ERROR "Thread sanitizer not available for ${CMAKE_CXX_COMPILER} " )
121+ message (
122+ FATAL_ERROR "Thread sanitizer not available for ${CMAKE_CXX_COMPILER} "
123+ )
114124 endif ()
115125 endif ()
116126
117127 if (USE_SANITIZER MATCHES "([Ll]eak)" )
118128 message (STATUS "Testing with Leak sanitizer" )
119129 set (SANITIZER_LEAK_FLAG "-fsanitize=leak" )
120130 test_san_flags(SANITIZER_LEAK_AVAILABLE ${SANITIZER_LEAK_FLAG} )
121- if (SANITIZER_LEAK_AVAILABLE)
131+ if (SANITIZER_LEAK_AVAILABLE)
122132 message (STATUS " Building with Leak sanitizer" )
123133 append ("${SANITIZER_LEAK_FLAG} " SANITIZER_SELECTED_FLAGS)
124134 else ()
125- message (FATAL_ERROR "Thread sanitizer not available for ${CMAKE_CXX_COMPILER} " )
135+ message (
136+ FATAL_ERROR "Thread sanitizer not available for ${CMAKE_CXX_COMPILER} "
137+ )
126138 endif ()
127139 endif ()
128140
129141 if (USE_SANITIZER MATCHES "([Cc][Ff][Ii])" )
130142 message (STATUS "Testing with Control Flow Integrity(CFI) sanitizer" )
131143 set (SANITIZER_CFI_FLAG "-fsanitize=cfi" )
132144 test_san_flags(SANITIZER_CFI_AVAILABLE ${SANITIZER_CFI_FLAG} )
133- if (SANITIZER_CFI_AVAILABLE)
145+ if (SANITIZER_CFI_AVAILABLE)
134146 message (STATUS " Building with Control Flow Integrity(CFI) sanitizer" )
135147 append ("${SANITIZER_LEAK_FLAG} " SANITIZER_SELECTED_FLAGS)
136148 else ()
137- message (FATAL_ERROR "Control Flow Integrity(CFI) sanitizer not available for ${CMAKE_CXX_COMPILER} " )
149+ message (
150+ FATAL_ERROR
151+ "Control Flow Integrity(CFI) sanitizer not available for ${CMAKE_CXX_COMPILER} "
152+ )
138153 endif ()
139154 endif ()
140155
141156 message (STATUS "Sanitizer flags: ${SANITIZER_SELECTED_FLAGS} " )
142157 test_san_flags(SANITIZER_SELECTED_COMPATIBLE ${SANITIZER_SELECTED_FLAGS} )
143- if (SANITIZER_SELECTED_COMPATIBLE)
158+ if (SANITIZER_SELECTED_COMPATIBLE)
144159 message (STATUS " Building with ${SANITIZER_SELECTED_FLAGS} " )
145160 append ("${SANITIZER_SELECTED_FLAGS} " CMAKE_C_FLAGS CMAKE_CXX_FLAGS )
146161 else ()
147- message (FATAL_ERROR " Sanitizer flags ${SANITIZER_SELECTED_FLAGS} are not compatible." )
162+ message (
163+ FATAL_ERROR
164+ " Sanitizer flags ${SANITIZER_SELECTED_FLAGS} are not compatible." )
148165 endif ()
149166 elseif (MSVC )
150167 if (USE_SANITIZER MATCHES "([Aa]ddress)" )
0 commit comments