From 143a66de13a954ee12d253ee223cfc1f852dc48c Mon Sep 17 00:00:00 2001 From: Jim Ray Date: Sun, 30 Jul 2017 22:30:33 -0700 Subject: [PATCH 1/2] Fix LOG_EVERY_N with clang -Wunused-local-typedef Glog uses a pre-C++11 compile time assert to verify the validity of the severity parameter for LOG_EVERY_N. Unfortunately, some compilers will complain about the usage of LOG_EVERY_N with "-Wunused-local-typedef" due to the way the compile time assert is constructed. This makes it impossible to use LOG_EVERY_N with this warning treated as an error. The fix simply removes the assert entirely. This is safe to do since you can't put anything invalid into the severity parameters without generating a compile error elsewhere. This has been safe to do ever since the GLOG_ prefixes were added as part of 6febec361e. Fixes #223 --- src/glog/logging.h.in | 3 --- src/windows/glog/logging.h | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in index 35c65be7c..5d6feadf0 100644 --- a/src/glog/logging.h.in +++ b/src/glog/logging.h.in @@ -938,9 +938,6 @@ bool IsFailureSignalHandlerInstalled(); typedef @ac_google_namespace@::glog_internal_namespace_::CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] #define LOG_EVERY_N(severity, n) \ - GOOGLE_GLOG_COMPILE_ASSERT(@ac_google_namespace@::GLOG_ ## severity < \ - @ac_google_namespace@::NUM_SEVERITIES, \ - INVALID_REQUESTED_LOG_SEVERITY); \ SOME_KIND_OF_LOG_EVERY_N(severity, (n), @ac_google_namespace@::LogMessage::SendToLog) #define SYSLOG_EVERY_N(severity, n) \ diff --git a/src/windows/glog/logging.h b/src/windows/glog/logging.h index f521a2b94..f828bc7f6 100755 --- a/src/windows/glog/logging.h +++ b/src/windows/glog/logging.h @@ -942,9 +942,6 @@ bool IsFailureSignalHandlerInstalled(); typedef google::glog_internal_namespace_::CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] #define LOG_EVERY_N(severity, n) \ - GOOGLE_GLOG_COMPILE_ASSERT(google::GLOG_ ## severity < \ - google::NUM_SEVERITIES, \ - INVALID_REQUESTED_LOG_SEVERITY); \ SOME_KIND_OF_LOG_EVERY_N(severity, (n), google::LogMessage::SendToLog) #define SYSLOG_EVERY_N(severity, n) \ From 49785d6b281a1d10fbf5aa3c17e4cbf0f6f24c1f Mon Sep 17 00:00:00 2001 From: Jim Ray Date: Wed, 9 Aug 2017 00:09:14 -0700 Subject: [PATCH 2/2] Remove GOOGLE_GLOG_COMPILE_ASSERT This compile time assert is no longer used anywhere in glog. Remove it. --- src/glog/logging.h.in | 3 --- src/windows/glog/logging.h | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in index 5d6feadf0..7b04c1b82 100644 --- a/src/glog/logging.h.in +++ b/src/glog/logging.h.in @@ -934,9 +934,6 @@ struct CrashReason; bool IsFailureSignalHandlerInstalled(); } // namespace glog_internal_namespace_ -#define GOOGLE_GLOG_COMPILE_ASSERT(expr, msg) \ - typedef @ac_google_namespace@::glog_internal_namespace_::CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] - #define LOG_EVERY_N(severity, n) \ SOME_KIND_OF_LOG_EVERY_N(severity, (n), @ac_google_namespace@::LogMessage::SendToLog) diff --git a/src/windows/glog/logging.h b/src/windows/glog/logging.h index f828bc7f6..d3d9d47cc 100755 --- a/src/windows/glog/logging.h +++ b/src/windows/glog/logging.h @@ -938,9 +938,6 @@ struct CrashReason; bool IsFailureSignalHandlerInstalled(); } // namespace glog_internal_namespace_ -#define GOOGLE_GLOG_COMPILE_ASSERT(expr, msg) \ - typedef google::glog_internal_namespace_::CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] - #define LOG_EVERY_N(severity, n) \ SOME_KIND_OF_LOG_EVERY_N(severity, (n), google::LogMessage::SendToLog)