diff --git a/cmake/BuildMisc.cmake b/cmake/BuildMisc.cmake index 5e797421133d4c3fbc5ad611a753559b9f4a74e4..a8a5141d364264e581c7c9eaf982d204c69f9015 100644 --- a/cmake/BuildMisc.cmake +++ b/cmake/BuildMisc.cmake @@ -8,6 +8,12 @@ macro(libmisc_build) ${PROJECT_SOURCE_DIR}/third_party/base64.c ) + if (CC_HAS_WNO_IMPLICIT_FALLTHROUGH) + # Disable false-positive warnings in switch() {} block + set_source_files_properties(${PROJECT_SOURCE_DIR}/third_party/base64.c + PROPERTIES COMPILE_FLAGS -Wno-implicit-fallthrough) + endif() + if (NOT HAVE_MEMMEM) list(APPEND misc_src ${PROJECT_SOURCE_DIR}/third_party/memmem.c diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 5db96932b2f3a04417302b849390042199cdd9c2..a0b5ed56605e1c172fb2fe7dccfcba4cba47676b 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -99,6 +99,8 @@ check_c_compiler_flag("-Wno-undefined-inline" CC_HAS_WNO_UNDEFINED_INLINE) check_c_compiler_flag("-Wno-dangling-else" CC_HAS_WNO_DANGLING_ELSE) check_c_compiler_flag("-Wno-tautological-compare" CC_HAS_WNO_TAUTOLOGICAL_COMPARE) check_c_compiler_flag("-Wno-misleading-indentation" CC_HAS_WNO_MISLEADING_INDENTATION) +check_c_compiler_flag("-Wno-format-truncation" CC_HAS_WNO_FORMAT_TRUNCATION) +check_c_compiler_flag("-Wno-implicit-fallthrough" CC_HAS_WNO_IMPLICIT_FALLTHROUGH) # # Perform build type specific configuration. @@ -232,6 +234,10 @@ macro(enable_tnt_compile_flags) add_compile_flags("C;CXX" "-Wno-unused-value") endif() + if (CC_HAS_WNO_FORMAT_TRUNCATION) + add_compile_flags("C;CXX" "-Wno-format-truncation") + endif() + if (CMAKE_COMPILER_IS_GNUCXX) # G++ bug. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31488 add_compile_flags("CXX" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 67423ac2e97bf608ec467105bf9a82bbfacb795b..88c21f18ed111b45b7c25b43088c1b91645f57a4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -79,6 +79,13 @@ target_link_libraries(core ${LIBCORO_LIBRARIES} ) +if (CC_HAS_WNO_IMPLICIT_FALLTHROUGH) + # Suppress noise warnings for autogenerated Ragel code + set_source_files_properties(uri.c PROPERTIES COMPILE_FLAGS + -Wno-implicit-fallthrough) +endif() +add_library(uri STATIC uri.c) + set (server_sources find_path.c sio.cc @@ -154,7 +161,7 @@ endif() set_source_files_compile_flags(${server_sources}) add_library(server STATIC ${server_sources}) -target_link_libraries(server core bit) +target_link_libraries(server core bit uri) set (common_libraries server core misc bitset csv ${MSGPUCK_LIBRARIES}) diff --git a/src/box/sophia_engine.cc b/src/box/sophia_engine.cc index 68ed7e5b62fb2917a353c1484053e54cbeea058e..8efbed8b35ce26b219820c4d9b3d7a7dee2d1baa 100644 --- a/src/box/sophia_engine.cc +++ b/src/box/sophia_engine.cc @@ -595,6 +595,7 @@ SophiaEngine::prepare(struct txn *txn) switch (rc) { case 1: /* rollback */ txn->engine_tx = NULL; + break; case 2: /* lock */ tnt_raise(ClientError, ER_TRANSACTION_CONFLICT); break; diff --git a/src/lib/csv/csv.c b/src/lib/csv/csv.c index 46e32bfa921b59ceabdd42525306a96b96834f5d..f6d455a493bb1ac1d85e1f82483244a2a1938f29 100644 --- a/src/lib/csv/csv.c +++ b/src/lib/csv/csv.c @@ -103,10 +103,13 @@ csv_setopt(struct csv *csv, int opt, ...) break; case CSV_OPT_EMIT_FIELD: csv->emit_field = va_arg(args, csv_emit_field_t); + break; case CSV_OPT_EMIT_ROW: csv->emit_row = va_arg(args, csv_emit_row_t); + break; case CSV_OPT_EMIT_CTX: csv->emit_ctx = va_arg(args, void*); + break; } va_end(args); } diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index cd464a3e3df8663004fd6866117209b8387f4dc3..5bc843afce00b9176435fe4aab9efdac0873678c 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -10,7 +10,8 @@ include_directories(${PROJECT_BINARY_DIR}/src) include_directories(${CMAKE_SOURCE_DIR}/third_party) add_executable(rlist.test rlist.c unit.c) add_executable(stailq.test stailq.c unit.c) -add_executable(uri.test uri.c unit.c ${CMAKE_SOURCE_DIR}/src/uri.c) +add_executable(uri.test uri.c unit.c) +target_link_libraries(uri.test uri) add_executable(fiob.test unit.c fiob.c ${CMAKE_SOURCE_DIR}/src/fiob.c) add_executable(queue.test queue.c) add_executable(mhash.test mhash.c) @@ -28,7 +29,8 @@ add_executable(bitset_iterator.test bitset_iterator.c) target_link_libraries(bitset_iterator.test bitset) add_executable(bitset_index.test bitset_index.c) target_link_libraries(bitset_index.test bitset) -add_executable(base64.test base64.c ${CMAKE_SOURCE_DIR}/third_party/base64.c) +add_executable(base64.test base64.c) +target_link_libraries(base64.test misc) add_executable(bps_tree.test bps_tree.cc) target_link_libraries(bps_tree.test small misc) @@ -73,10 +75,9 @@ add_executable(coio.test coio.cc unit.c ${CMAKE_SOURCE_DIR}/src/evio.cc ${CMAKE_SOURCE_DIR}/src/coio.cc ${CMAKE_SOURCE_DIR}/src/coeio.c - ${CMAKE_SOURCE_DIR}/src/uri.c ${CMAKE_SOURCE_DIR}/src/fio.c ${CMAKE_SOURCE_DIR}/src/iobuf.cc) -target_link_libraries(coio.test core eio bit) +target_link_libraries(coio.test core eio bit uri) if (ENABLE_BUNDLED_MSGPUCK) set(MSGPUCK_DIR ${PROJECT_SOURCE_DIR}/src/lib/msgpuck/) @@ -94,9 +95,8 @@ endif () add_executable(scramble.test scramble.c ${CMAKE_SOURCE_DIR}/src/scramble.c - ${CMAKE_SOURCE_DIR}/third_party/sha1.c - ${CMAKE_SOURCE_DIR}/third_party/base64.c ${CMAKE_SOURCE_DIR}/src/random.c) + target_link_libraries(scramble.test misc) add_executable(guava.test guava.c) target_link_libraries(guava.test salad small)