Skip to content

Commit 4125d4b

Browse files
Update symboldatabase.cpp
1 parent ad8a76d commit 4125d4b

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

‎lib/symboldatabase.cpp‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7550,10 +7550,13 @@ static const Token* parsedecl(const Token* type,
75507550
else if (valuetype->typeScope->type == ScopeType::eEnum) {
75517551
const Token * enum_type = valuetype->typeScope->enumType;
75527552
if (enum_type) {
7553+
ValueType evt;
75537554
if (enum_type->isSigned())
75547555
valuetype->sign = ValueType::Sign::SIGNED;
75557556
else if (enum_type->isUnsigned())
75567557
valuetype->sign = ValueType::Sign::UNSIGNED;
7558+
else if (!enum_type->isStandardType() && parsedecl(enum_type, &evt, defaultSignedness, settings))
7559+
*valuetype = evt;
75577560
else
75587561
valuetype->sign = defaultSignedness; // TODO: this is implementation-dependent might be separate from char
75597562
const ValueType::Type t = ValueType::typeFromString(enum_type->str(), enum_type->isLong());
@@ -7727,12 +7730,8 @@ static const Token* parsedecl(const Token* type,
77277730
} else if (!valuetype->typeScope && (type->str() == "struct" || type->str() == "enum") && valuetype->type != ValueType::Type::SMART_POINTER)
77287731
valuetype->type = type->str() == "struct" ? ValueType::Type::RECORD : ValueType::Type::NONSTD;
77297732
else if (!valuetype->typeScope && type->type() && type->type()->classScope && valuetype->type != ValueType::Type::SMART_POINTER) {
7730-
if (type->type()->classScope->type == ScopeType::eEnum) {
7731-
valuetype->sign = ValueType::Sign::SIGNED;
7732-
valuetype->type = getEnumType(type->type()->classScope, settings.platform);
7733-
} else {
7733+
if (type->type()->classScope->type != ScopeType::eEnum)
77347734
valuetype->type = ValueType::Type::RECORD;
7735-
}
77367735
valuetype->typeScope = type->type()->classScope;
77377736
} else if (type->isName() && valuetype->sign != ValueType::Sign::UNKNOWN_SIGN && valuetype->pointer == 0U)
77387737
return nullptr;

0 commit comments

Comments
 (0)