summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Bind.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/Bind.cpp')
-rw-r--r--src/shared/cplusplus/Bind.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp
index ef95d898f9..7579838bb5 100644
--- a/src/shared/cplusplus/Bind.cpp
+++ b/src/shared/cplusplus/Bind.cpp
@@ -1796,7 +1796,13 @@ bool Bind::visit(SimpleDeclarationAST *ast)
bool Bind::visit(EmptyDeclarationAST *ast)
{
(void) ast;
- // unsigned semicolon_token = ast->semicolon_token;
+ unsigned semicolon_token = ast->semicolon_token;
+ if (_scope && (_scope->isClass() || _scope->isNamespace())) {
+ const Token &tk = tokenAt(semicolon_token);
+
+ if (! tk.generated())
+ translationUnit()->warning(semicolon_token, "extra `;'");
+ }
return false;
}
@@ -2770,6 +2776,14 @@ bool Bind::visit(EnumSpecifierAST *ast)
for (EnumeratorListAST *it = ast->enumerator_list; it; it = it->next) {
this->enumerator(it->value, e);
}
+
+ if (ast->stray_comma_token /* && ! translationUnit()->cxx0xEnabled()*/) {
+ const Token &tk = tokenAt(ast->stray_comma_token);
+ if (! tk.generated())
+ translationUnit()->warning(ast->stray_comma_token,
+ "commas at the end of enumerator lists are a C++0x-specific feature");
+ }
+
(void) switchScope(previousScope);
return false;
}