Reverted in r318667. See coments on the r318556 thread.
On Thu, Nov 16, 2017 at 3:32 PM, Richard Smith via cfe-commits <cfe-commits@lists.llvm.org> wrote: > This is kicking up false positives on code that does the following: > > #define USED(x) if(x);else > // ... > assert(x); > USED(x); > > It's a bit of a weird pattern, but it occurs in some open-source code and > seems easy enough for us to detect (if the semicolon and the preceding token > aren't from the same FileID, we shouldn't be diagnosing, because they aren't > actually adjacent). > > On 16 November 2017 at 13:26, Reid Kleckner via cfe-commits > <cfe-commits@lists.llvm.org> wrote: >> >> 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 > > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits