diff --git a/cmake/gtest/gtest.cmake b/cmake/gtest/gtest.cmake
index 94c4103ce5c24e123f516c779806438c0d95adf5..3b74cfb211be555d76517ba3168566c382e3ad5c 100644
--- a/cmake/gtest/gtest.cmake
+++ b/cmake/gtest/gtest.cmake
@@ -41,3 +41,9 @@ endif()
 
 # Add googletest, defines gtest and gtest_main targets
 add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/googletest-src ${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL)
+
+# Remove visibility.h from the compile flags for gtest because of poisoned exit()
+get_target_property(GTEST_COMPILE_FLAGS gtest COMPILE_OPTIONS)
+list(REMOVE_ITEM GTEST_COMPILE_FLAGS "-include")
+list(REMOVE_ITEM GTEST_COMPILE_FLAGS "visibility.h")
+set_target_properties(gtest PROPERTIES COMPILE_OPTIONS "${GTEST_COMPILE_FLAGS}")
diff --git a/src/include/visibility.h b/src/include/visibility.h
index 3717b63704979a33045666ec323d8f26bc76711f..1a956f02e8e51b8751772a450b12d0d7ced91408 100644
--- a/src/include/visibility.h
+++ b/src/include/visibility.h
@@ -86,7 +86,7 @@
 #ifdef __cplusplus
 #include <cstdlib>
 #endif
-//#pragma GCC poison exit
+#pragma GCC poison exit
 
 #include <stdlib.h>