diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index def942c1e54f..348b225f9161 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -8094,8 +8094,6 @@ def err_switch_incomplete_class_type : Error< def warn_empty_if_body : Warning< "if statement has empty body">, InGroup; -def warn_empty_else_body : Warning< - "else clause has empty body">, InGroup; def warn_empty_for_body : Warning< "for loop has empty body">, InGroup; def warn_empty_range_based_for_body : Warning< diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index 07b70305c196..3a3eb5e7b5e1 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -527,9 +527,7 @@ Sema::ActOnIfStmt(SourceLocation IfLoc, bool IsConstexpr, Stmt *InitStmt, CondExpr->getExprLoc())) CommaVisitor(*this).Visit(CondExpr); - if (elseStmt) - DiagnoseEmptyStmtBody(ElseLoc, elseStmt, diag::warn_empty_else_body); - else + if (!elseStmt) DiagnoseEmptyStmtBody(CondExpr->getLocEnd(), thenStmt, diag::warn_empty_if_body); diff --git a/clang/test/SemaCXX/warn-empty-body.cpp b/clang/test/SemaCXX/warn-empty-body.cpp index bd6b47f053f1..a248c4251d52 100644 --- a/clang/test/SemaCXX/warn-empty-body.cpp +++ b/clang/test/SemaCXX/warn-empty-body.cpp @@ -238,26 +238,6 @@ 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}}