containerOutOfBounds flags container accesses gated by a same-named constant from a different namespace, pulled in via using namespace Minimal reproduction: #include <QStringList> namespace TetheringState { constexpr int NUMBER_OF_RESPONSE_FIELDS = 2; } namespace TetheringStateV2 { constexpr int NUMBER_OF_RESPONSE_FIELDS = 5; } void Parse(const QStringList& message) { using namespace TetheringStateV2; if(NUMBER_OF_RESPONSE_FIELDS == message.count()) { auto a = message.at(0); auto b = message.at(1);...
Thank you, there're a few more in the initial and 2nd posts that are still awaiting sourceforge moderator approval in this thread.
9) danglingLifetime doesn't account for ownership being transferred to a longer-lived owner via std::move immediately after capturing a raw pointer Minimal reproduction: #include <memory> class Bar { public: virtual ~Bar() = default; }; class Consumer { public: explicit Consumer(std::unique_ptr<Bar> bar) : Owned(std::move(bar)) { } private: std::unique_ptr<Bar> Owned; }; class Foo { public: void CreateConsumer() { std::unique_ptr<Bar> tmp = std::make_unique<Bar>(); RawPtr = tmp.get(); ConsumerInstance.reset(new...
danglingLifetime doesn't account for ownership being transferred to a longer-lived owner via std::move immediately after capturing a raw pointer Minimal reproduction: #include <memory> class Bar { public: virtual ~Bar() = default; }; class Consumer { public: explicit Consumer(std::unique_ptr<Bar> bar) : Owned(std::move(bar)) { } private: std::unique_ptr<Bar> Owned; }; class Foo { public: void CreateConsumer() { std::unique_ptr<Bar> tmp = std::make_unique<Bar>(); RawPtr = tmp.get(); ConsumerInstance.reset(new...
danglingLifetime doesn't account for ownership being transferred to a longer-lived owner via std::move immediately after capturing a raw pointer Minimal reproduction: #include <memory> class Bar { public: virtual ~Bar() = default; }; class Consumer { public: explicit Consumer(std::unique_ptr<Bar> bar) : Owned(std::move(bar)) { } private: std::unique_ptr<Bar> Owned; }; class Foo { public: void CreateConsumer() { std::unique_ptr<Bar> tmp = std::make_unique<Bar>(); RawPtr = tmp.get(); ConsumerInstance.reset(new...
danglingLifetime doesn't account for ownership being transferred to a longer-lived owner via std::move immediately after capturing a raw pointer Minimal reproduction: #include <memory> class Bar { public: virtual ~Bar() = default; }; class Consumer { public: explicit Consumer(std::unique_ptr<Bar> bar) : Owned(std::move(bar)) { } private: std::unique_ptr<Bar> Owned; }; class Foo { public: void CreateConsumer() { std::unique_ptr<Bar> tmp = std::make_unique<Bar>(); RawPtr = tmp.get(); ConsumerInstance.reset(new...
danglingLifetime doesn't account for ownership being transferred to a longer-lived owner via std::move immediately after capturing a raw pointer Minimal reproduction: #include <memory> class Bar { public: virtual ~Bar() = default; }; class Consumer { public: explicit Consumer(std::unique_ptr<Bar> bar) : Owned(std::move(bar)) { } private: std::unique_ptr<Bar> Owned; }; class Foo { public: void CreateConsumer() { std::unique_ptr<Bar> tmp = std::make_unique<Bar>(); RawPtr = tmp.get(); ConsumerInstance.reset(new...