Check for unnecessary semicolons after function definitions.

This commit is contained in:
Roberto Raggi
2009-12-07 15:08:00 +01:00
parent f618a9a296
commit 988ec82bb5

View File

@@ -347,8 +347,17 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast)
int previousVisibility = semantic()->switchVisibility(visibility); int previousVisibility = semantic()->switchVisibility(visibility);
int previousMethodKey = semantic()->switchMethodKey(Function::NormalMethod); int previousMethodKey = semantic()->switchMethodKey(Function::NormalMethod);
for (DeclarationListAST *member = ast->member_specifier_list; member; member = member->next) { DeclarationAST *previousDeclaration = 0;
semantic()->check(member->value, klass->members()); for (DeclarationListAST *it = ast->member_specifier_list; it; it = it->next) {
DeclarationAST *declaration = it->value;
semantic()->check(declaration, klass->members());
if (previousDeclaration && declaration &&
declaration->asEmptyDeclaration() != 0 &&
previousDeclaration->asFunctionDefinition() != 0)
translationUnit()->warning(declaration->firstToken(), "unnecessary semicolon after function body");
previousDeclaration = declaration;
} }
(void) semantic()->switchMethodKey(previousMethodKey); (void) semantic()->switchMethodKey(previousMethodKey);