From: Alexander Turenko <alexander.turenko@tarantool.org> To: Kirill Yukhin <kyukhin@tarantool.org> Cc: Alexander Turenko <alexander.turenko@tarantool.org>, tarantool-patches@freelists.org, Konstantin Osipov <kostja@tarantool.org> Subject: [tarantool-patches] [PATCH] Fix clang build (fails on -Wno-cast-function-type) Date: Thu, 20 Sep 2018 22:56:43 +0300 [thread overview] Message-ID: <cea113cf9e867a09cb47a167d22cfca10568ed15.1537473222.git.alexander.turenko@tarantool.org> (raw) The problem is that clang does not support -Wno-cast-function-type flag. It is the regression from 8c538963a78f22746233b22648fb2aa6933dc135. Follow up of #3685. Fixes #3701. --- branch: https://github.com/tarantool/tarantool/tree/Totktonada/gh-3701-fix-clang-build issue: https://github.com/tarantool/tarantool/issues/3701 Please, check-in into 1.9 branch. cmake/compiler.cmake | 10 ++++++++++ src/CMakeLists.txt | 8 -------- test/unit/CMakeLists.txt | 8 -------- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 05d33ab48..f1a861533 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -95,6 +95,7 @@ check_c_compiler_flag("-Wno-varargs" CC_HAS_WNO_VARARGS) check_c_compiler_flag("-Wno-char-subscripts" CC_HAS_WNO_CHAR_SUBSCRIPTS) check_c_compiler_flag("-Wno-format-truncation" CC_HAS_WNO_FORMAT_TRUNCATION) check_c_compiler_flag("-Wno-implicit-fallthrough" CC_HAS_WNO_IMPLICIT_FALLTHROUGH) +check_c_compiler_flag("-Wno-cast-function-type" CC_HAS_WNO_CAST_FUNCTION_TYPE) # # Perform build type specific configuration. @@ -247,6 +248,15 @@ macro(enable_tnt_compile_flags) add_compile_flags("C" "-fno-gnu89-inline") endif() + # Suppress noise GCC 8 warnings. + # + # reflection.h casts a pointer to a member function to an another pointer + # to a member function to store it in a structure, but cast it back before + # a call. It is legal and does not lead to an undefined behaviour. + if (CC_HAS_WNO_CAST_FUNCTION_TYPE) + add_compile_flags("C;CXX" "-Wno-cast-function-type") + endif() + add_definitions("-D__STDC_FORMAT_MACROS=1") add_definitions("-D__STDC_LIMIT_MACROS=1") add_definitions("-D__STDC_CONSTANT_MACROS=1") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2e7e1c436..b1c4cd711 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,14 +3,6 @@ # enable_tnt_compile_flags() -# Suppress noise GCC 8 warnings. -# -# reflection.h casts a pointer to a member function to an another pointer to a -# member function to store it in a structure, but cast it back before a call. -# It is legal and does not lead to an undefined behaviour. -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-cast-function-type") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-cast-function-type") - include_directories(${LIBEV_INCLUDE_DIR}) include_directories(${LIBEIO_INCLUDE_DIR}) include_directories(${LIBCORO_INCLUDE_DIR}) diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index b6ffe1cfa..943788b94 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -5,14 +5,6 @@ endif() file(GLOB all_sources *.c *.cc) set_source_files_compile_flags(${all_sources}) -# Suppress noise GCC 8 warnings. -# -# reflection.h casts a pointer to a member function to an another pointer to a -# member function to store it in a structure, but cast it back before a call. -# It is legal and does not lead to an undefined behaviour. -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-cast-function-type") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-cast-function-type") - include_directories(${PROJECT_SOURCE_DIR}/src) include_directories(${PROJECT_BINARY_DIR}/src) include_directories(${PROJECT_SOURCE_DIR}/src/box) -- 2.19.0
next reply other threads:[~2018-09-20 19:57 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-20 19:56 Alexander Turenko [this message] 2018-09-20 20:01 ` [tarantool-patches] " Vladislav Shpilevoy 2018-09-20 20:34 ` Kirill Yukhin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cea113cf9e867a09cb47a167d22cfca10568ed15.1537473222.git.alexander.turenko@tarantool.org \ --to=alexander.turenko@tarantool.org \ --cc=kostja@tarantool.org \ --cc=kyukhin@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='Re: [tarantool-patches] [PATCH] Fix clang build (fails on -Wno-cast-function-type)' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox