From f4bbe8b2b3ebe538afe3aa45f054be588051fb4e Mon Sep 17 00:00:00 2001
From: gabime <gmelman1@gmail.com>
Date: Fri, 31 Aug 2018 14:17:11 +0300
Subject: [PATCH] Fixed some extra warnings from clang

---
 example/Makefile-all-warn                  | 22 ++++++++++++++++++++++
 include/spdlog/details/async_logger_impl.h |  2 +-
 include/spdlog/details/thread_pool.h       | 18 +++++++++---------
 include/spdlog/sinks/sink.h                |  4 +++-
 tests/test_misc.cpp                        |  2 --
 5 files changed, 35 insertions(+), 13 deletions(-)
 create mode 100644 example/Makefile-all-warn

diff --git a/example/Makefile-all-warn b/example/Makefile-all-warn
new file mode 100644
index 00000000..2ba68e2a
--- /dev/null
+++ b/example/Makefile-all-warn
@@ -0,0 +1,22 @@
+#-Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded
+CXX	?= g++
+CXX_FLAGS = -Wall -Wextra -pedantic -std=c++11 -pthread -I../include -fmax-errors=1 -Wconversion -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded -Wno-weak-vtables -Wno-global-constructors
+CXX_RELEASE_FLAGS = -O3 -march=native
+CXX_DEBUG_FLAGS= -g
+
+all:	example 
+debug:	example-debug
+
+example: example.cpp
+	$(CXX) example.cpp -o example $(CXX_FLAGS) $(CXX_RELEASE_FLAGS) $(CXXFLAGS)
+
+
+example-debug: example.cpp
+	$(CXX) example.cpp -o example-debug $(CXX_FLAGS) $(CXX_DEBUG_FLAGS) $(CXXFLAGS)
+
+clean:
+	rm -f *.o logs/*.txt example example-debug
+
+
+rebuild: clean all
+rebuild-debug: clean debug
diff --git a/include/spdlog/details/async_logger_impl.h b/include/spdlog/details/async_logger_impl.h
index b6e86460..3ad70a3b 100644
--- a/include/spdlog/details/async_logger_impl.h
+++ b/include/spdlog/details/async_logger_impl.h
@@ -107,4 +107,4 @@ inline std::shared_ptr<spdlog::logger> spdlog::async_logger::clone(std::string n
     cloned->flush_on(this->flush_level());
     cloned->set_error_handler(this->error_handler());
     return std::move(cloned);
-}
\ No newline at end of file
+}
diff --git a/include/spdlog/details/thread_pool.h b/include/spdlog/details/thread_pool.h
index 282d67e8..29f5d9d4 100644
--- a/include/spdlog/details/thread_pool.h
+++ b/include/spdlog/details/thread_pool.h
@@ -198,6 +198,13 @@ private:
 
         switch (incoming_async_msg.msg_type)
         {
+        case async_msg_type::log:
+        {
+            log_msg msg;
+            incoming_async_msg.to_log_msg(msg);
+            incoming_async_msg.worker_ptr->backend_log_(msg);
+            return true;
+        }
         case async_msg_type::flush:
         {
             incoming_async_msg.worker_ptr->backend_flush_();
@@ -208,16 +215,9 @@ private:
         {
             return false;
         }
-
-        default:
-        {
-            log_msg msg;
-            incoming_async_msg.to_log_msg(msg);
-            incoming_async_msg.worker_ptr->backend_log_(msg);
-            return true;
         }
-        }
-        return true; // should not be reached
+        assert(false && "Unexpected async_msg_type");
+        return true;
     }
 };
 
diff --git a/include/spdlog/sinks/sink.h b/include/spdlog/sinks/sink.h
index cb8aecb4..9f84c378 100644
--- a/include/spdlog/sinks/sink.h
+++ b/include/spdlog/sinks/sink.h
@@ -22,7 +22,9 @@ public:
 
     explicit sink(std::unique_ptr<spdlog::pattern_formatter> formatter)
         : level_(level::trace)
-        , formatter_(std::move(formatter)){};
+        , formatter_(std::move(formatter))
+    {
+    }
 
     virtual ~sink() = default;
     virtual void log(const details::log_msg &msg) = 0;
diff --git a/tests/test_misc.cpp b/tests/test_misc.cpp
index 7bdfa881..f1fb80e9 100644
--- a/tests/test_misc.cpp
+++ b/tests/test_misc.cpp
@@ -92,7 +92,6 @@ TEST_CASE("periodic flush", "[periodic_flush]")
     spdlog::drop_all();
 }
 
-
 TEST_CASE("clone", "[clone]")
 {
     using namespace spdlog;
@@ -133,6 +132,5 @@ TEST_CASE("clone async", "[clone]")
     auto test_sink = std::static_pointer_cast<sinks::test_sink_mt>(cloned->sinks()[0]);
     REQUIRE(test_sink->msg_counter() == 2);
 
-
     spdlog::drop_all();
 }