From 1f3dea60d31606e6d8a0ac634baa34763508d2ba Mon Sep 17 00:00:00 2001 From: gabime Date: Wed, 17 Jul 2019 14:38:01 +0300 Subject: [PATCH] try to prevent optimizer to remove null sink code altogether --- include/spdlog/sinks/null_sink.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/include/spdlog/sinks/null_sink.h b/include/spdlog/sinks/null_sink.h index 44a45a3e..3e374893 100644 --- a/include/spdlog/sinks/null_sink.h +++ b/include/spdlog/sinks/null_sink.h @@ -8,6 +8,7 @@ #include "spdlog/details/synchronous_factory.h" #include +#include namespace spdlog { namespace sinks { @@ -16,7 +17,16 @@ template class null_sink : public base_sink { protected: - void sink_it_(const details::log_msg &) override {} + void sink_it_(const details::log_msg &msg) override + { + // prevent optimizer to remove this sink altogether (and do useful check while at it). + if(msg.level == level::off) + { + printf("Should never not be called if level is off!\n"); + } + assert(msg.level != level::off); + + } void flush_() override {} };