diff --git a/Jamfile b/Jamfile index 5580ccf91..dd4133138 100644 --- a/Jamfile +++ b/Jamfile @@ -234,11 +234,11 @@ rule warnings ( properties * ) result += -Wno-padded ; result += -Wno-global-constructors ; result += -Wno-c++98-compat ; +# this warns on any global static object, which are used for error_category +# objects result += -Wno-exit-time-destructors ; - result += -Wno-documentation-unknown-command ; - result += -Wno-disabled-macro-expansion ; result += -Wno-unused-command-line-argument ; - result += -Wno-error=implicit-fallthrough ; + result += -Wno-implicit-fallthrough ; result += -Wno-c++11-long-long ; result += -Wno-variadic-macros ; diff --git a/include/libtorrent/aux_/disable_warnings_push.hpp b/include/libtorrent/aux_/disable_warnings_push.hpp index e124fd308..cd9792519 100644 --- a/include/libtorrent/aux_/disable_warnings_push.hpp +++ b/include/libtorrent/aux_/disable_warnings_push.hpp @@ -47,6 +47,7 @@ POSSIBILITY OF SUCH DAMAGE. #ifdef __clang__ #pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wall" #pragma clang diagnostic ignored "-Weverything" #pragma clang diagnostic ignored "-Wsign-conversion" @@ -70,6 +71,10 @@ POSSIBILITY OF SUCH DAMAGE. #pragma clang diagnostic ignored "-Wunused-parameter" #pragma clang diagnostic ignored "-Wreserved-id-macro" #pragma clang diagnostic ignored "-Wunused-local-typedef" +#pragma clang diagnostic ignored "-Wdouble-promotion" +#pragma clang diagnostic ignored "-Wdisabled-macro-expansion" +#pragma clang diagnostic ignored "-Wexit-time-destructors" +#pragma clang diagnostic ignored "-Wdocumentation-unknown-command" #endif #ifdef _MSC_VER diff --git a/include/libtorrent/stat.hpp b/include/libtorrent/stat.hpp index a1e209456..18e14e617 100644 --- a/include/libtorrent/stat.hpp +++ b/include/libtorrent/stat.hpp @@ -38,7 +38,10 @@ POSSIBILITY OF SUCH DAMAGE. #include #include #include + +#include "libtorrent/aux_/disable_warnings_push.hpp" #include +#include "libtorrent/aux_/disable_warnings_pop.hpp" #include "libtorrent/invariant_check.hpp" #include "libtorrent/config.hpp" diff --git a/src/file.cpp b/src/file.cpp index 2ad6ec50a..13bffc180 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -37,7 +37,9 @@ POSSIBILITY OF SUCH DAMAGE. #ifdef __clang__ #pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma clang diagnostic ignored "-Wunused-macros" +#pragma clang diagnostic ignored "-Wreserved-id-macro" #endif // these defines are just in case the system we're on needs them for 64 bit file @@ -141,8 +143,6 @@ POSSIBILITY OF SUCH DAMAGE. #endif -#undef _FILE_OFFSET_BITS - // make sure the _FILE_OFFSET_BITS define worked // on this platform. It's supposed to make file // related functions support 64-bit offsets. diff --git a/src/kademlia/dos_blocker.cpp b/src/kademlia/dos_blocker.cpp index 7221e66cd..f4808657e 100644 --- a/src/kademlia/dos_blocker.cpp +++ b/src/kademlia/dos_blocker.cpp @@ -77,16 +77,16 @@ namespace libtorrent { namespace dht if (match->count == m_message_rate_limit * 10) { #ifndef TORRENT_DISABLE_LOGGING - logger->log(dht_logger::tracker, "BANNING PEER [ ip: %s time: %f count: %d ]" + logger->log(dht_logger::tracker, "BANNING PEER [ ip: %s time: %d ms count: %d ]" , print_address(addr).c_str() - , total_milliseconds((now - match->limit) + seconds(10)) / 1000.f + , int(total_milliseconds((now - match->limit) + seconds(10))) , int(match->count)); #endif // we've received too many messages in less than 10 seconds // from this node. Ignore it until it's silent for 5 minutes match->limit = now + seconds(m_block_timeout); } - + return false; }