fix: Break from loop on last iteration to resolve clang-tidy warning

The clang-tidy warning `clang-analyzer-cplusplus.Move` warns when a
moved from object is deferenced. This is triggered in spdlog because
clang-tidy fails to detect that the `logger:set_formatter` will only
move the unique_ptr on the last iteration of the loop, assuming that
`f->clone` may be called on it afterwards.

To fix, add a break statement after moving the pointer (on the last
iteration) to let clang-tidy know the logger pointer is not used after
this point.
This commit is contained in:
Steven Cartmell 2020-02-28 21:09:31 +00:00 committed by GitHub
parent 05ecad4263
commit f999d879d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -89,6 +89,8 @@ SPDLOG_INLINE void logger::set_formatter(std::unique_ptr<formatter> f)
{ {
// last element - we can be move it. // last element - we can be move it.
(*it)->set_formatter(std::move(f)); (*it)->set_formatter(std::move(f));
break;
} }
else else
{ {