Author: rnk Date: Thu Nov 16 13:26:18 2017 New Revision: 318456 URL: http://llvm.org/viewvc/llvm-project?rev=318456&view=rev Log: Issue -Wempty-body warnings for else blocks
This looks like it was just an oversight. Fixes http://llvm.org/pr35319 Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td cfe/trunk/lib/Sema/SemaStmt.cpp cfe/trunk/test/SemaCXX/warn-empty-body.cpp Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=318456&r1=318455&r2=318456&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original) +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Thu Nov 16 13:26:18 2017 @@ -8090,6 +8090,8 @@ def err_switch_incomplete_class_type : E 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< Modified: cfe/trunk/lib/Sema/SemaStmt.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmt.cpp?rev=318456&r1=318455&r2=318456&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaStmt.cpp (original) +++ cfe/trunk/lib/Sema/SemaStmt.cpp Thu Nov 16 13:26:18 2017 @@ -527,7 +527,9 @@ Sema::ActOnIfStmt(SourceLocation IfLoc, 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); Modified: cfe/trunk/test/SemaCXX/warn-empty-body.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/warn-empty-body.cpp?rev=318456&r1=318455&r2=318456&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/warn-empty-body.cpp (original) +++ cfe/trunk/test/SemaCXX/warn-empty-body.cpp Thu Nov 16 13:26:18 2017 @@ -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}} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits