diff --git a/cmake/flags.cmake b/cmake/flags.cmake index 76d93ee..882cecd 100644 --- a/cmake/flags.cmake +++ b/cmake/flags.cmake @@ -7,7 +7,7 @@ set(CMAKE_C_STANDARD_REQUIRED ON) if (CMAKE_CXX_COMPILER_ID MATCHES GNU) set(GENERAL_FLAGS "-pthread") - set(WARNING_FLAGS "-Wall -Wextra -Werror") + set(WARNING_FLAGS "-Wall -Wextra -Wcast-align -Wcast-qual -Wlogical-op -Wstrict-overflow=2 -Wundef -Wformat=2 -Wpointer-arith -Werror") set(OPTIMIZATION_FLAGS "-Ofast -s") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}") @@ -42,7 +42,7 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES MSVC) elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang) set(GENERAL_FLAGS "-pthread") - set(WARNING_FLAGS "-Wall -Wextra -Wno-undefined-internal -Werror") + set(WARNING_FLAGS "-Wall -Wextra -Wno-undefined-internal -Wunreachable-code-aggressive -Wmissing-prototypes -Wmissing-variable-declarations -Werror") set(OPTIMIZATION_FLAGS "-Ofast -funroll-loops -fmerge-all-constants") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GENERAL_FLAGS} ${WARNING_FLAGS} ${OPTIMIZATION_FLAGS}") diff --git a/external/src/llhttp/api.c b/external/src/llhttp/api.c index 4d68b4c..d3f2425 100644 --- a/external/src/llhttp/api.c +++ b/external/src/llhttp/api.c @@ -1,7 +1,11 @@ #ifdef _MSC_VER #pragma warning(disable : 4100 4668 4710 4711 4820) +#elif defined __clang__ +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wmissing-prototypes" #elif defined __GNUC__ #pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wcast-qual" #endif #include diff --git a/external/src/llhttp/http.c b/external/src/llhttp/http.c index dd406af..bfc0203 100644 --- a/external/src/llhttp/http.c +++ b/external/src/llhttp/http.c @@ -1,5 +1,8 @@ #ifdef _MSC_VER #pragma warning(disable : 4100 4668 4710 4711 4820) +#elif defined __clang__ +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wmissing-prototypes" #elif defined __GNUC__ #pragma GCC diagnostic ignored "-Wunused-parameter" #endif diff --git a/external/src/llhttp/llhttp.c b/external/src/llhttp/llhttp.c index d8d4860..95a2c5a 100644 --- a/external/src/llhttp/llhttp.c +++ b/external/src/llhttp/llhttp.c @@ -1,8 +1,18 @@ #ifdef _MSC_VER #pragma warning(disable : 4061 4065 4100 4152 4242 4244 4668 4702 4710 4711 4820 5045) +#elif defined __clang__ +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-variable" +#pragma clang diagnostic ignored "-Wmissing-prototypes" +#pragma clang diagnostic ignored "-Wunreachable-code" #elif defined __GNUC__ #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wunused-variable" +#pragma GCC diagnostic ignored "-Wcast-qual" +#endif + +#ifndef LLHTTP_STRICT_MODE +#define LLHTTP_STRICT_MODE 0 #endif #if LLHTTP_STRICT_MODE diff --git a/src/common.h b/src/common.h index 54aa996..f1800eb 100644 --- a/src/common.h +++ b/src/common.h @@ -334,6 +334,8 @@ void* realloc_hook(void* ptr, size_t size) noexcept; void* calloc_hook(size_t count, size_t size) noexcept; void free_hook(void* p) noexcept; +extern const char* BLOCK_FOUND; + } // namespace p2pool #include "util.h" diff --git a/src/side_chain.cpp b/src/side_chain.cpp index 64505ba..9bf3254 100644 --- a/src/side_chain.cpp +++ b/src/side_chain.cpp @@ -390,8 +390,6 @@ void SideChain::unsee_block(const PoolBlock& block) m_seenBlocks.erase(block.m_sidechainId); } -extern const char* BLOCK_FOUND; - bool SideChain::add_external_block(PoolBlock& block, std::vector& missing_blocks) { if (block.m_difficulty < m_minDifficulty) { diff --git a/src/stratum_server.cpp b/src/stratum_server.cpp index 3835c58..1e4bf14 100644 --- a/src/stratum_server.cpp +++ b/src/stratum_server.cpp @@ -1035,12 +1035,9 @@ bool StratumServer::StratumClient::process_request(char* data, uint32_t /*size*/ LOGINFO(6, "incoming keepalive from " << log::Gray() << static_cast(m_addrString)); return true; } - else { - LOGWARN(4, "client " << static_cast(m_addrString) << " invalid JSON request (unknown method)"); - return false; - } - return true; + LOGWARN(4, "client " << static_cast(m_addrString) << " invalid JSON request (unknown method)"); + return false; } bool StratumServer::StratumClient::process_login(rapidjson::Document& doc, uint32_t id) diff --git a/src/util.h b/src/util.h index 7a95874..dee73ae 100644 --- a/src/util.h +++ b/src/util.h @@ -221,6 +221,10 @@ FORCEINLINE uint64_t bsr(uint64_t x) } // namespace p2pool +void memory_tracking_start(); +void memory_tracking_stop(); +void p2pool_usage(); + namespace robin_hood { template<>