From 72ca3f72bd6658453ebb7ce824778296638f9e52 Mon Sep 17 00:00:00 2001
From: Michael Kuron <mkuron@icp.uni-stuttgart.de>
Date: Fri, 1 Jan 2021 18:55:28 +0100
Subject: [PATCH] Disable some warnings on PGI compiler

---
 CMakeLists.txt | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 174015bc7..bc0d8638d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -225,6 +225,7 @@ else()
 endif()
 mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_CLANG )
 
+# Check for Cray compiler
 if( CMAKE_CXX_COMPILER_ID MATCHES Cray )
     option ( WALBERLA_CXX_COMPILER_IS_CRAY "Use Cray compiler" ON   )
 else()
@@ -232,6 +233,13 @@ else()
 endif()
 mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_CRAY )
 
+if( CMAKE_CXX_COMPILER MATCHES "pgc\\+\\+" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "pgc\\+\\+" )
+    option ( WALBERLA_CXX_COMPILER_IS_PGI "Use PGI compiler" ON  )
+else()
+    option ( WALBERLA_CXX_COMPILER_IS_PGI "Use PGI compiler" OFF  )
+endif()
+mark_as_advanced ( WALBERLA_CXX_COMPILER_IS_PGI )
+
 # Check for MPI wrapper
 get_filename_component( CXX_COMPILER_WITHOUT_PATH ${CMAKE_CXX_COMPILER} NAME )
 if( CXX_COMPILER_WITHOUT_PATH MATCHES "mpi" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "mpi" )
@@ -330,6 +338,21 @@ if( WALBERLA_CXX_COMPILER_IS_CRAY )
    add_flag ( CMAKE_CXX_FLAGS "-DSQLITE_HAVE_ISNAN" ) # SQLite will not work correctly with the -ffast-math option of GCC.
 endif()
 
+# Silences compiler and linker warnings and information with the PGI compiler
+if( WALBERLA_CXX_COMPILER_IS_PGI )
+   add_flag ( CMAKE_CXX_FLAGS "--display_error_number" )
+   add_flag ( CMAKE_C_FLAGS "--display_error_number" )
+   if( CMAKE_VERSION VERSION_LESS "3.19" )
+      #  https://github.com/Kitware/CMake/commit/52eee1938919deb59cc2b51d44f365f0d9a418e5
+      set( CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION "--c++${CMAKE_CXX_STANDARD}" )
+   endif()
+   add_flag ( CMAKE_CXX_FLAGS "--diag_suppress=1" )   # last line of file ends without a newline
+   add_flag ( CMAKE_CXX_FLAGS "--diag_suppress=111" ) # statement is unreachable
+   add_flag ( CMAKE_C_FLAGS "--diag_suppress=111" )   # statement is unreachable
+   add_flag ( CMAKE_C_FLAGS "--diag_suppress=550" )   # variable [...] was set but never used
+   add_flag ( CMAKE_C_FLAGS "--diag_suppress=191" )   # type qualifier is meaningless on cast type
+endif()
+
 # architecture optimization
 if( WALBERLA_OPTIMIZE_FOR_LOCALHOST )
    if( WALBERLA_CXX_COMPILER_IS_GNU OR WALBERLA_CXX_COMPILER_IS_INTEL OR WALBERLA_CXX_COMPILER_IS_CLANG )
-- 
GitLab