From c8d3b8404ec9cf82f23f115202e68c1bcb82a23c Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 10 May 2021 17:15:29 -0500 Subject: [PATCH 1/2] [R-package] suppress Wcast-function-type warning in CMake-based gcc and MinGW builds (fixes #4273) --- R-package/src/lightgbm_R.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R-package/src/lightgbm_R.cpp b/R-package/src/lightgbm_R.cpp index cedf53545bd9..063ddc27ba6f 100644 --- a/R-package/src/lightgbm_R.cpp +++ b/R-package/src/lightgbm_R.cpp @@ -680,6 +680,8 @@ SEXP LGBM_BoosterDumpModel_R(LGBM_SE handle, R_API_END(); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wcast-function-type" // .Call() calls static const R_CallMethodDef CallEntries[] = { {"LGBM_GetLastError_R" , (DL_FUNC) &LGBM_GetLastError_R , 0}, @@ -725,6 +727,7 @@ static const R_CallMethodDef CallEntries[] = { {"LGBM_BoosterDumpModel_R" , (DL_FUNC) &LGBM_BoosterDumpModel_R , 3}, {NULL, NULL, 0} }; +#pragma GCC diagnostic pop LIGHTGBM_C_EXPORT void R_init_lightgbm(DllInfo *dll); From 6c6016dacacef12b7f29c7b1b1fc93ed4648fcab Mon Sep 17 00:00:00 2001 From: James Lamb Date: Mon, 10 May 2021 19:03:08 -0500 Subject: [PATCH 2/2] suppress warning from CMake side --- CMakeLists.txt | 3 +++ R-package/src/lightgbm_R.cpp | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 41fb21f5e54c..48c1ac040f26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -283,6 +283,9 @@ if(UNIX OR MINGW OR CYGWIN) if(NOT USE_OPENMP) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas -Wno-unused-private-field") endif() + if(__BUILD_FOR_R AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-cast-function-type") + endif() endif() if(WIN32 AND MINGW) diff --git a/R-package/src/lightgbm_R.cpp b/R-package/src/lightgbm_R.cpp index 063ddc27ba6f..cedf53545bd9 100644 --- a/R-package/src/lightgbm_R.cpp +++ b/R-package/src/lightgbm_R.cpp @@ -680,8 +680,6 @@ SEXP LGBM_BoosterDumpModel_R(LGBM_SE handle, R_API_END(); } -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wcast-function-type" // .Call() calls static const R_CallMethodDef CallEntries[] = { {"LGBM_GetLastError_R" , (DL_FUNC) &LGBM_GetLastError_R , 0}, @@ -727,7 +725,6 @@ static const R_CallMethodDef CallEntries[] = { {"LGBM_BoosterDumpModel_R" , (DL_FUNC) &LGBM_BoosterDumpModel_R , 3}, {NULL, NULL, 0} }; -#pragma GCC diagnostic pop LIGHTGBM_C_EXPORT void R_init_lightgbm(DllInfo *dll);