diff --git a/CMakeLists.txt b/CMakeLists.txt
index f6b078e..1f34e51 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,6 +26,9 @@
 
 include(DispatchAppleOptions)
 
+include(DispatchCompilerWarnings)
+dispatch_common_warnings()
+
 option(ENABLE_DISPATCH_INIT_CONSTRUCTOR "enable libdispatch_init as a constructor" ON)
 set(USE_LIBDISPATCH_INIT_CONSTRUCTOR ${ENABLE_DISPATCH_INIT_CONSTRUCTOR})
 
diff --git a/cmake/modules/DispatchCompilerWarnings.cmake b/cmake/modules/DispatchCompilerWarnings.cmake
new file mode 100644
index 0000000..2ae27cd
--- /dev/null
+++ b/cmake/modules/DispatchCompilerWarnings.cmake
@@ -0,0 +1,90 @@
+
+if("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC")
+  # TODO: someone needs to provide the msvc equivalent warning flags
+  macro(dispatch_common_warnings)
+  endmacro()
+else()
+  macro(dispatch_common_warnings)
+	add_compile_options(-Werror)
+	add_compile_options(-Wall)
+	add_compile_options(-Wextra)
+	add_compile_options(-Wno-unknown-warning-option)
+	add_compile_options(-Wno-trigraphs)
+	add_compile_options(-Wmissing-field-initializers)
+	add_compile_options(-Wmissing-prototypes)
+	add_compile_options(-Wdocumentation)
+	add_compile_options(-Wunreachable-code)
+	add_compile_options(-Wmissing-braces)
+	add_compile_options(-Wparentheses)
+	add_compile_options(-Wswitch)
+	add_compile_options(-Wunused-function)
+	add_compile_options(-Wunused-label)
+	add_compile_options(-Wunused-parameter)
+	add_compile_options(-Wunused-variable)
+	add_compile_options(-Wunused-value)
+	add_compile_options(-Wempty-body)
+	add_compile_options(-Wuninitialized)
+	add_compile_options(-Wunknown-pragmas)
+	add_compile_options(-Wshadow)
+	add_compile_options(-Wno-four-char-constants)
+	add_compile_options(-Wconversion)
+	add_compile_options(-Wconstant-conversion)
+	add_compile_options(-Wint-conversion)
+	add_compile_options(-Wbool-conversion)
+	add_compile_options(-Wenum-conversion)
+	add_compile_options(-Wassign-enum)
+	add_compile_options(-Wsign-compare)
+	add_compile_options(-Wshorten-64-to-32)
+	add_compile_options(-Wpointer-sign)
+	add_compile_options(-Wnewline-eof)
+	add_compile_options(-Wdeprecated-declarations)
+	add_compile_options(-Wsign-conversion)
+	add_compile_options(-Winfinite-recursion)
+	add_compile_options(-Warray-bounds-pointer-arithmetic)
+	add_compile_options(-Watomic-properties)
+	add_compile_options(-Wcomma)
+	add_compile_options(-Wconditional-uninitialized)
+	add_compile_options(-Wcovered-switch-default)
+	add_compile_options(-Wdate-time)
+	add_compile_options(-Wdeprecated)
+	add_compile_options(-Wdouble-promotion)
+	add_compile_options(-Wduplicate-enum)
+	add_compile_options(-Wexpansion-to-defined)
+	add_compile_options(-Wfloat-equal)
+	add_compile_options(-Widiomatic-parentheses)
+	add_compile_options(-Wignored-qualifiers)
+	add_compile_options(-Wimplicit-fallthrough)
+	add_compile_options(-Wnullable-to-nonnull-conversion)
+	add_compile_options(-Wobjc-interface-ivars)
+	add_compile_options(-Wover-aligned)
+	add_compile_options(-Wpacked)
+	add_compile_options(-Wpointer-arith)
+	add_compile_options(-Wselector)
+	add_compile_options(-Wstatic-in-inline)
+	add_compile_options(-Wsuper-class-method-mismatch)
+	add_compile_options(-Wswitch-enum)
+	add_compile_options(-Wtautological-compare)
+	add_compile_options(-Wunguarded-availability)
+	add_compile_options(-Wunused)
+	add_compile_options(-Wno-disabled-macro-expansion)
+	add_compile_options(-Wno-pedantic)
+	add_compile_options(-Wno-bad-function-cast)
+	add_compile_options(-Wno-c++-compat)
+	add_compile_options(-Wno-c++98-compat)
+	add_compile_options(-Wno-c++98-compat-pedantic)
+	add_compile_options(-Wno-cast-align)
+	add_compile_options(-Wno-cast-qual)
+	add_compile_options(-Wno-documentation-unknown-command)
+	add_compile_options(-Wno-format-nonliteral)
+	add_compile_options(-Wno-missing-variable-declarations)
+	add_compile_options(-Wno-old-style-cast)
+	add_compile_options(-Wno-padded)
+	add_compile_options(-Wno-reserved-id-macro)
+	add_compile_options(-Wno-shift-sign-overflow)
+	add_compile_options(-Wno-undef)
+	add_compile_options(-Wno-unreachable-code-aggressive)
+	add_compile_options(-Wno-unused-macros)
+	add_compile_options(-Wno-used-but-marked-unused)
+	add_compile_options(-Wno-vla)
+  endmacro()
+endif()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 3ecd069..0f8628f 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -59,7 +59,7 @@
 endif()
 
 function(add_unit_test name)
-  set(options DISABLED_TEST)
+  set(options DISABLED_TEST;NO_BSD_OVERLAY)
   set(single_value_args)
   set(multiple_value_args SOURCES)
   cmake_parse_arguments(AUT "${options}" "${single_value_args}" "${multiple_value_args}" ${ARGN})
@@ -84,7 +84,7 @@
                                SYSTEM BEFORE PRIVATE
                                  "${WITH_BLOCKS_RUNTIME}")
   endif()
-  if(BSD_OVERLAY_FOUND)
+  if(BSD_OVERLAY_FOUND AND NOT AUT_NO_BSD_OVERLAY)
     target_compile_options(${name}
                            PRIVATE
                              ${BSD_OVERLAY_CFLAGS})
@@ -96,7 +96,7 @@
   if(WITH_BLOCKS_RUNTIME)
     target_link_libraries(${name} PRIVATE BlocksRuntime)
   endif()
-  if(BSD_OVERLAY_FOUND)
+  if(BSD_OVERLAY_FOUND AND NOT AUT_NO_BSD_OVERLAY)
     target_link_libraries(${name}
                           PRIVATE
                             ${BSD_OVERLAY_LDFLAGS})
@@ -122,10 +122,10 @@
   endif()
 endfunction()
 
+# Tests that reliably pass on all platforms
 set(DISPATCH_C_TESTS
     apply
     api
-    c99
     debug
     queue_finalizer
     group
@@ -143,11 +143,9 @@
     data
     io_net
     select)
-set(DISPATCH_CPP_TESTS
-    plusplus)
 
-# Tests that usually pass, but occasionally fail
-# and are therefore not suitable for general CI usage.
+# Tests that usually pass, but occasionally fail.
+# Excluded by default for purposes of Swift CI
 if(EXTENDED_TEST_SUITE)
   list(APPEND DISPATCH_C_TESTS
 	priority
@@ -165,7 +163,7 @@
   target_compile_options(dispatch_priority2 PRIVATE -DUSE_SET_TARGET_QUEUE=1)
 endif()
 
-# Tests for platform-specific functionality
+# add C tests for platform-specific functionality when applicable
 if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
   list(APPEND DISPATCH_C_TESTS
 	deadname
@@ -179,11 +177,10 @@
                 SOURCES
                   dispatch_${test}.c)
 endforeach()
-foreach(test ${DISPATCH_CPP_TESTS})
-  add_unit_test(dispatch_${test}
-                SOURCES
-                  dispatch_${test}.cpp)
-endforeach()
+
+# test dispatch API for various C/CXX language variants
+add_unit_test(dispatch_c99 NO_BSD_OVERLAY SOURCES dispatch_c99.c)
+add_unit_test(dispatch_plusplus SOURCES dispatch_plusplus.cpp)
 
 # test-specific link options
 target_link_libraries(dispatch_group PRIVATE m)
