From 410449ea21b7f8af02303891ae59e35579283f40 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 28 Nov 2022 09:29:02 +0100 Subject: QTaggedPointer: Assert on the same tag value as we use in setTag() If we assert on a different cast we may just get a different integer value, if Tag is a sufficiently nefarious type. Coverity-Id: 403056 Change-Id: I6e8e3883bce124b3350ad8276d88ac7ed030d982 Reviewed-by: Fabian Kosmale Reviewed-by: Thiago Macieira --- src/corelib/tools/qtaggedpointer.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/corelib/tools/qtaggedpointer.h') diff --git a/src/corelib/tools/qtaggedpointer.h b/src/corelib/tools/qtaggedpointer.h index a08912c4a5..d0c180ac5f 100644 --- a/src/corelib/tools/qtaggedpointer.h +++ b/src/corelib/tools/qtaggedpointer.h @@ -104,8 +104,10 @@ public: void setTag(Tag tag) { - Q_ASSERT_X((static_cast::TagType>(tag) & pointerMask()) == 0, - "QTaggedPointer::setTag", "Tag is larger than allowed by number of available tag bits"); + Q_ASSERT_X( + (static_cast(tag) & pointerMask()) == 0, + "QTaggedPointer::setTag", + "Tag is larger than allowed by number of available tag bits"); d = (d & pointerMask()) | static_cast(tag); } -- cgit v1.2.3