malcolm.parsons created this revision.
malcolm.parsons added reviewers: sbenza, aaron.ballman, alexfh.
malcolm.parsons added subscribers: Eugene.Zelenko, cfe-commits, beanz.

This check did not create FixItHints when the statement before the redundant 
control flow was not followed by a semicolon.

https://reviews.llvm.org/D24500

Files:
  clang-tidy/readability/RedundantControlFlowCheck.cpp
  test/clang-tidy/readability-redundant-control-flow.cpp

Index: test/clang-tidy/readability-redundant-control-flow.cpp
===================================================================
--- test/clang-tidy/readability-redundant-control-flow.cpp
+++ test/clang-tidy/readability-redundant-control-flow.cpp
@@ -179,6 +179,7 @@
 // CHECK-FIXES: {{^}}  if (check < T(0)) {{{$}}
 // CHECK-FIXES-NEXT: {{^    return;$}}
 // CHECK-FIXES-NEXT: {{^ *}$}}
+// CHECK-FIXES-NEXT: {{^ *}$}}
 
 template <>
 void template_return(int check) {
@@ -191,6 +192,7 @@
 // CHECK-FIXES: {{^}}  if (check < 0) {{{$}}
 // CHECK-FIXES-NEXT: {{^    return;$}}
 // CHECK-FIXES-NEXT: {{^ *}$}}
+// CHECK-FIXES-NEXT: {{^ *}$}}
 
 template <typename T>
 void template_loop(T end) {
Index: clang-tidy/readability/RedundantControlFlowCheck.cpp
===================================================================
--- clang-tidy/readability/RedundantControlFlowCheck.cpp
+++ clang-tidy/readability/RedundantControlFlowCheck.cpp
@@ -83,7 +83,7 @@
         dyn_cast<Stmt>(*Previous)->getLocEnd(), tok::semi, SM,
         Result.Context->getLangOpts(),
         /*SkipTrailingWhitespaceAndNewLine=*/true);
-  else
+  if (!Start.isValid())
     Start = StmtRange.getBegin();
   auto RemovedRange = CharSourceRange::getCharRange(
       Start,


Index: test/clang-tidy/readability-redundant-control-flow.cpp
===================================================================
--- test/clang-tidy/readability-redundant-control-flow.cpp
+++ test/clang-tidy/readability-redundant-control-flow.cpp
@@ -179,6 +179,7 @@
 // CHECK-FIXES: {{^}}  if (check < T(0)) {{{$}}
 // CHECK-FIXES-NEXT: {{^    return;$}}
 // CHECK-FIXES-NEXT: {{^ *}$}}
+// CHECK-FIXES-NEXT: {{^ *}$}}
 
 template <>
 void template_return(int check) {
@@ -191,6 +192,7 @@
 // CHECK-FIXES: {{^}}  if (check < 0) {{{$}}
 // CHECK-FIXES-NEXT: {{^    return;$}}
 // CHECK-FIXES-NEXT: {{^ *}$}}
+// CHECK-FIXES-NEXT: {{^ *}$}}
 
 template <typename T>
 void template_loop(T end) {
Index: clang-tidy/readability/RedundantControlFlowCheck.cpp
===================================================================
--- clang-tidy/readability/RedundantControlFlowCheck.cpp
+++ clang-tidy/readability/RedundantControlFlowCheck.cpp
@@ -83,7 +83,7 @@
         dyn_cast<Stmt>(*Previous)->getLocEnd(), tok::semi, SM,
         Result.Context->getLangOpts(),
         /*SkipTrailingWhitespaceAndNewLine=*/true);
-  else
+  if (!Start.isValid())
     Start = StmtRange.getBegin();
   auto RemovedRange = CharSourceRange::getCharRange(
       Start,
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to