Skip to content

Commit 416861b

Browse files
committed
ValueType: only use default signedness for char/short/int/long/longlong
1 parent b457cee commit 416861b

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

lib/symboldatabase.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3791,7 +3791,7 @@ static const Token * parsedecl(const Token *type, ValueType * const valuetype, V
37913791
const unsigned int pointer0 = valuetype->pointer;
37923792
while (Token::Match(type->previous(), "%name%"))
37933793
type = type->previous();
3794-
valuetype->sign = defaultSignedness;
3794+
valuetype->sign = ValueType::Sign::UNKNOWN_SIGN;
37953795
valuetype->type = ValueType::Type::UNKNOWN_TYPE;
37963796
while (Token::Match(type, "%name%|*|&") && !type->variable()) {
37973797
if (type->isSigned())
@@ -3824,6 +3824,13 @@ static const Token * parsedecl(const Token *type, ValueType * const valuetype, V
38243824
valuetype->originalTypeName = type->originalName();
38253825
type = type->next();
38263826
}
3827+
3828+
// If no signedness is given for char/short/int/long/longlong type, use default signedness
3829+
if (valuetype->type >= ValueType::Type::CHAR &&
3830+
valuetype->type <= ValueType::Type::LONGLONG &&
3831+
valuetype->sign == ValueType::Sign::UNKNOWN_SIGN)
3832+
valuetype->sign = defaultSignedness;
3833+
38273834
return (type && valuetype->type != ValueType::Type::UNKNOWN_TYPE) ? type : nullptr;
38283835
}
38293836

0 commit comments

Comments
 (0)