diff options
| -rw-r--r-- | clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp | 1 | ||||
| -rw-r--r-- | clang/test/Refactor/Extract/ExtractionSemicolonPolicy.cpp | 13 |
2 files changed, 13 insertions, 1 deletions
diff --git a/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp b/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp index 09c89c15a97..5d57ecf90a9 100644 --- a/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp +++ b/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp @@ -45,6 +45,7 @@ bool isSemicolonRequiredAfter(const Stmt *S) { if(const auto *Case = dyn_cast<SwitchCase>(S)) return isSemicolonRequiredAfter(Case->getSubStmt()); switch (S->getStmtClass()) { + case Stmt::DeclStmtClass: case Stmt::CXXTryStmtClass: case Stmt::ObjCAtSynchronizedStmtClass: case Stmt::ObjCAutoreleasePoolStmtClass: diff --git a/clang/test/Refactor/Extract/ExtractionSemicolonPolicy.cpp b/clang/test/Refactor/Extract/ExtractionSemicolonPolicy.cpp index 97f12475761..865e8290923 100644 --- a/clang/test/Refactor/Extract/ExtractionSemicolonPolicy.cpp +++ b/clang/test/Refactor/Extract/ExtractionSemicolonPolicy.cpp @@ -193,7 +193,7 @@ void careForNonCompoundSemicolons2() { // CHECK-NEXT: } void careForSwitchSemicolon() { - /*range mextract=->+0:51*/switch(0) default: break; + /*range mextract=->+0:53*/switch(0) default: break; } // CHECK: 1 'mextract' results: // CHECK: static void extracted() { @@ -203,3 +203,14 @@ void careForSwitchSemicolon() { // CHECK-NEXT: extracted();{{$}} // CHECK-NEXT: } +void extractStatementNotSemiDecl() { + /*range nextract=->+0:38*/int x = 5; +} +// CHECK: 1 'nextract' results: +// CHECK: static void extracted() { +// CHECK-NEXT: int x = 5;{{$}} +// CHECK-NEXT: }{{[[:space:]].*}} +// CHECK-NEXT: void extractStatementNotSemiDecl() { +// CHECK-NEXT: extracted();{{$}} +// CHECK-NEXT: } + |

