]> granicus.if.org Git - clang/commitdiff
Revert r318456 "Issue -Wempty-body warnings for else blocks"
authorHans Wennborg <hans@hanshq.net>
Mon, 20 Nov 2017 17:48:54 +0000 (17:48 +0000)
committerHans Wennborg <hans@hanshq.net>
Mon, 20 Nov 2017 17:48:54 +0000 (17:48 +0000)
This caused warnings also when the if or else comes from macros. There was an
attempt to fix this in r318556, but that introduced new problems and was
reverted. Reverting this too until the whole issue is sorted.

> This looks like it was just an oversight.
>
> Fixes http://llvm.org/pr35319
>
> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@318456 91177308-0d34-0410-b5e6-96231b3b80d8

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@318667 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaStmt.cpp
test/SemaCXX/warn-empty-body.cpp

index def942c1e54f65ccd196cc237ab4a4bcf133d0f1..348b225f9161722d9bf0050dcca323771ee0011c 100644 (file)
@@ -8094,8 +8094,6 @@ 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<
index 07b70305c196cefb5bc2db00c1477eb654b0fa57..3a3eb5e7b5e12c77241c0f1a5a24225c62ea458f 100644 (file)
@@ -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);
 
index bd6b47f053f1a3faa5beda718d0959bab6151005..a248c4251d5250c7047534ec1e8872b10978a259 100644 (file)
@@ -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}}