Refactoring, use early continue and make code a bit more specific.

This commit is contained in:
Daniel Marjamäki 2018-02-16 22:59:38 +01:00
parent fcde1d80e9
commit 5c44580528
1 changed files with 10 additions and 10 deletions

View File

@ -8922,17 +8922,17 @@ void Tokenizer::simplifyCPPAttribute()
return; return;
for (Token *tok = list.front(); tok; tok = tok->next()) { for (Token *tok = list.front(); tok; tok = tok->next()) {
if (tok->link() && Token::Match(tok, "[ [ %name%")) { if (!tok->link() || !Token::Match(tok, "[ [ %name%"))
if (tok->strAt(2) == "noreturn") { continue;
const Token * head = tok->tokAt(5); if (tok->strAt(2) == "noreturn") {
while (Token::Match(head, "%name%|::|*|&")) const Token * head = tok->link()->next();
head = head->next(); while (Token::Match(head, "%name%|::|*|&"))
if (head && isFunctionHead(head, "{|;")) head = head->next();
head->previous()->isAttributeNoreturn(true); if (head && head->str() == "(" && isFunctionHead(head, "{|;"))
} head->previous()->isAttributeNoreturn(true);
Token::eraseTokens(tok, tok->link()->next());
tok->deleteThis();
} }
Token::eraseTokens(tok, tok->link()->next());
tok->deleteThis();
} }
} }