forked from OSchip/llvm-project
Issue -Wempty-body warnings for else blocks
This looks like it was just an oversight. Fixes http://llvm.org/pr35319 llvm-svn: 318456
This commit is contained in:
parent
53418797fd
commit
adefb760a8
|
@ -8090,6 +8090,8 @@ def err_switch_incomplete_class_type : Error<
|
|||
|
||||
def warn_empty_if_body : Warning<
|
||||
"if statement has empty body">, InGroup<EmptyBody>;
|
||||
def warn_empty_else_body : Warning<
|
||||
"else clause has empty body">, InGroup<EmptyBody>;
|
||||
def warn_empty_for_body : Warning<
|
||||
"for loop has empty body">, InGroup<EmptyBody>;
|
||||
def warn_empty_range_based_for_body : Warning<
|
||||
|
|
|
@ -527,7 +527,9 @@ Sema::ActOnIfStmt(SourceLocation IfLoc, bool IsConstexpr, Stmt *InitStmt,
|
|||
CondExpr->getExprLoc()))
|
||||
CommaVisitor(*this).Visit(CondExpr);
|
||||
|
||||
if (!elseStmt)
|
||||
if (elseStmt)
|
||||
DiagnoseEmptyStmtBody(ElseLoc, elseStmt, diag::warn_empty_else_body);
|
||||
else
|
||||
DiagnoseEmptyStmtBody(CondExpr->getLocEnd(), thenStmt,
|
||||
diag::warn_empty_if_body);
|
||||
|
||||
|
|
|
@ -238,6 +238,26 @@ void test6(int x, int y) {
|
|||
}
|
||||
}
|
||||
|
||||
void test_if_else(int x) {
|
||||
if (x); // expected-warning{{if statement has empty body}} expected-note{{separate line}}
|
||||
|
||||
if (x)
|
||||
; // no-warning
|
||||
|
||||
if (x)
|
||||
; // no-warning
|
||||
else
|
||||
; // no-warning
|
||||
|
||||
if (x)
|
||||
; // no-warning
|
||||
else; // expected-warning{{else clause has empty body}} expected-note{{separate line}}
|
||||
|
||||
if (x)
|
||||
; // no-warning
|
||||
else EMPTY(x); // no-warning
|
||||
}
|
||||
|
||||
void test_errors(int x) {
|
||||
if (1)
|
||||
aa; // expected-error{{use of undeclared identifier}}
|
||||
|
|
Loading…
Reference in New Issue