From 38f966fc9854884014f9afceb0629660625ab879 Mon Sep 17 00:00:00 2001 From: William Jakobsson <50847546+wjakobsson@users.noreply.github.com> Date: Tue, 10 Nov 2026 15:27:55 +0100 Subject: [PATCH 1/2] add fix --- lib/symboldatabase.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 26801640e99..7133d41b5fd 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -8010,12 +8010,12 @@ void SymbolDatabase::setValueTypeInTokenList(bool reportDebugWarnings, Token *to if (mSettings.platform.type != Platform::Type::Unspecified) { if (type <= ValueType::Type::INT && mSettings.platform.isIntValue(unsignedSuffix ? (value >> 1) : value)) type = ValueType::Type::INT; - else if (type <= ValueType::Type::INT && !MathLib::isDec(tokStr) && mSettings.platform.isIntValue(value >> 2)) { + else if (type <= ValueType::Type::INT && !MathLib::isDec(tokStr) && mSettings.platform.isIntValue(value >> 1)) { type = ValueType::Type::INT; sign = ValueType::Sign::UNSIGNED; } else if (type <= ValueType::Type::LONG && mSettings.platform.isLongValue(unsignedSuffix ? (value >> 1) : value)) type = ValueType::Type::LONG; - else if (type <= ValueType::Type::LONG && !MathLib::isDec(tokStr) && mSettings.platform.isLongValue(value >> 2)) { + else if (type <= ValueType::Type::LONG && !MathLib::isDec(tokStr) && mSettings.platform.isLongValue(value >> 1)) { type = ValueType::Type::LONG; sign = ValueType::Sign::UNSIGNED; } else if (mSettings.platform.isLongLongValue(unsignedSuffix ? (value >> 1) : value)) From e9f7fde2ec4da1a355b29cf67084d6dbc1298266 Mon Sep 17 00:00:00 2001 From: William Jakobsson <50847546+wjakobsson@users.noreply.github.com> Date: Fri, 13 Nov 2026 15:22:20 +0100 Subject: [PATCH 2/2] add test --- test/testsymboldatabase.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/testsymboldatabase.cpp b/test/testsymboldatabase.cpp index 85ee8430a77..62a61a57a61 100644 --- a/test/testsymboldatabase.cpp +++ b/test/testsymboldatabase.cpp @@ -9922,6 +9922,13 @@ class TestSymbolDatabase : public TestFixture { ASSERT_EQUALS("signed long long", typeOf("0xFFFFFFFFFFFF;\n", "0xFFFFFFFFFFFF", false, &s)); ASSERT_EQUALS("unsigned long long", typeOf("0xFFFFFFFFFFFFU;\n", "0xFFFFFFFFFFFFU", false, &s)); ASSERT_EQUALS("unsigned long long", typeOf("0xFFFFFFFF00000000;\n", "0xFFFFFFFF00000000", false, &s)); + ASSERT_EQUALS("signed long", typeOf("0x10000;\n", "0x10000", false, &s)); + ASSERT_EQUALS("signed long", typeOf("0x1FFFF;\n", "0x1FFFF", false, &s)); + ASSERT_EQUALS("signed long long", typeOf("0x100000000;\n", "0x100000000", false, &s)); + ASSERT_EQUALS("signed long long", typeOf("0x100000000L;\n", "0x100000000L", false, &s)); + ASSERT_EQUALS("unsigned long long", typeOf("0x100000000U;\n", "0x100000000U", false, &s)); + ASSERT_EQUALS("unsigned long long", typeOf("0x100000000UL;\n", "0x100000000UL", false, &s)); + ASSERT_EQUALS("signed long long", typeOf("0x1FFFFFFFF;\n", "0x1FFFFFFFF", false, &s)); ASSERT_EQUALS("signed long", typeOf("2147483648;\n", "2147483648", false, &sSameSize)); ASSERT_EQUALS("unsigned long", typeOf("0xc000000000000000;\n", "0xc000000000000000", false, &sSameSize));