diff --git a/cmake/CustomCommands.cmake b/cmake/CustomCommands.cmake
index 07a60c7c29095d0b7583eccb5b84daa931672860..7baa296e7ba67c9685dd8960af4d9311d52876c9 100644
--- a/cmake/CustomCommands.cmake
+++ b/cmake/CustomCommands.cmake
@@ -11,6 +11,15 @@ macro(add_cxx_compiler_flag _flag)
   endif()
 endmacro()
 
+macro(add_cxx_compiler_debug_flag _flag)
+  string(REPLACE "-" "_" _flag_var ${_flag})
+  check_cxx_compiler_flag("${_flag}" CXX_COMPILER_${_flag_var}_OK)
+
+  if(CXX_COMPILER_${_flag_var}_OK)
+    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} ${_flag}")
+  endif()
+endmacro()
+
 
 macro(add_c_compiler_flag _flag)
   string(REPLACE "-" "_" _flag_var ${_flag})
diff --git a/cmake/MoReFEMSettings.cmake b/cmake/MoReFEMSettings.cmake
index 53452c27ab1a16d72117c7d4a990681eb76ea682..260bebc9e2c817cb0b1cf6a2ea6488577c9b34b3 100644
--- a/cmake/MoReFEMSettings.cmake
+++ b/cmake/MoReFEMSettings.cmake
@@ -119,7 +119,8 @@ endif()
 
 
 if(MOREFEM_ASAN)
-    set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
+    add_cxx_compiler_debug_flag("-fno-omit-frame-pointer")
+    add_cxx_compiler_debug_flag("-fsanitize=address")
     set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
 endif()