Fix #11594 internalAstError with immediately instantiated enum (#4841)

This commit is contained in:
chrchr-github 2023-03-02 21:17:39 +01:00 committed by GitHub
parent 3ec4da0f8a
commit 7f62d8ff98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 4 deletions

View File

@ -8059,7 +8059,7 @@ void Tokenizer::simplifyStructDecl()
} }
if (isEnum) { if (isEnum) {
if (tok->next()->str() == "{") { if (tok->next()->str() == "{" && tok->next()->link() != tok->tokAt(2)) {
tok->next()->str("("); tok->next()->str("(");
tok->linkAt(1)->str(")"); tok->linkAt(1)->str(")");
} }

View File

@ -2584,9 +2584,16 @@ private:
void simplifyVarDeclInitLists() void simplifyVarDeclInitLists()
{ {
const char code[] = "std::vector<int> v{a * b, 1};"; {
const char exp[] = "std :: vector < int > v { a * b , 1 } ;"; const char code[] = "std::vector<int> v{a * b, 1};";
ASSERT_EQUALS(exp, tok(code)); const char exp[] = "std :: vector < int > v { a * b , 1 } ;";
ASSERT_EQUALS(exp, tok(code));
}
{
const char code[] = "enum E { E0 } e{};";
const char exp[] = "enum E { E0 } ; enum E e ; e = { } ;";
ASSERT_EQUALS(exp, tok(code));
}
} }
}; };