diff --git a/CMakeLists.txt b/CMakeLists.txt
index cd001a9376f2917b2b31e386ca94b23098f320df..c1a0bb29f90e4c9e8c14161fa190aaaa7bcc260c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1033,6 +1033,15 @@ if ( WALBERLA_BUILD_WITH_OPENMP )
             message(FATAL_ERROR "Could NOT enable OpenMP")
         endif()
     endif()
+
+    # check for bug in combination with OpenMP and sign conversion https://bugs.llvm.org/show_bug.cgi?id=48387
+    try_compile( WALBERLA_CLANG_OPENMP_BUG "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestClangOpenMPBug.cpp"
+          COMPILE_DEFINITIONS -Werror)
+    if ( NOT ${WALBERLA_CLANG_OPENMP_BUG} )
+       message(WARNING "Setting -Wno-sign-conversion due to a compiler bug in LLVM (https://bugs.llvm.org/show_bug.cgi?id=48387)" )
+       add_flag ( CMAKE_CXX_FLAGS "-Wno-sign-conversion" )
+    endif()
+
 else()
     if ( WALBERLA_CXX_COMPILER_IS_CRAY )
         add_flag ( CMAKE_C_FLAGS   "-h noomp" )
diff --git a/cmake/TestClangOpenMPBug.cpp b/cmake/TestClangOpenMPBug.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c9cfa1eef3d76aba91f18a60b6abf05f72c36dc9
--- /dev/null
+++ b/cmake/TestClangOpenMPBug.cpp
@@ -0,0 +1,14 @@
+#include <iostream>
+
+int main()
+{
+   int min = -10;
+
+#pragma omp parallel for
+   for (int i = min; i <= 10; ++i)
+   {
+      std::cout << i << std::endl;
+   }
+
+   return 0;
+}
\ No newline at end of file