forked from OSchip/llvm-project
[Extract] Fixed SemicolonExtractionPolicy for SwitchStmt and SwitchCase
Reviewers: arphaman, sammccall Subscribers: dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65883 llvm-svn: 368267
This commit is contained in:
parent
bac7862c00
commit
7137736e49
|
@ -40,8 +40,11 @@ bool isSemicolonRequiredAfter(const Stmt *S) {
|
|||
return isSemicolonRequiredAfter(CXXFor->getBody());
|
||||
if (const auto *ObjCFor = dyn_cast<ObjCForCollectionStmt>(S))
|
||||
return isSemicolonRequiredAfter(ObjCFor->getBody());
|
||||
if(const auto *Switch = dyn_cast<SwitchStmt>(S))
|
||||
return isSemicolonRequiredAfter(Switch->getBody());
|
||||
if(const auto *Case = dyn_cast<SwitchCase>(S))
|
||||
return isSemicolonRequiredAfter(Case->getSubStmt());
|
||||
switch (S->getStmtClass()) {
|
||||
case Stmt::SwitchStmtClass:
|
||||
case Stmt::CXXTryStmtClass:
|
||||
case Stmt::ObjCAtSynchronizedStmtClass:
|
||||
case Stmt::ObjCAutoreleasePoolStmtClass:
|
||||
|
|
|
@ -64,6 +64,7 @@ void extractStatementNotSemiSwitch() {
|
|||
// CHECK-NEXT: extracted();{{$}}
|
||||
// CHECK-NEXT: }
|
||||
|
||||
|
||||
void extractStatementNotSemiWhile() {
|
||||
/*range eextract=->+2:4*/while (true) {
|
||||
int x = 0;
|
||||
|
@ -190,3 +191,15 @@ void careForNonCompoundSemicolons2() {
|
|||
// CHECK-NEXT: extracted();{{$}}
|
||||
// CHECK-NEXT: //
|
||||
// CHECK-NEXT: }
|
||||
|
||||
void careForSwitchSemicolon() {
|
||||
/*range mextract=->+0:51*/switch(0) default: break;
|
||||
}
|
||||
// CHECK: 1 'mextract' results:
|
||||
// CHECK: static void extracted() {
|
||||
// CHECK-NEXT: switch(0) default: break;{{$}}
|
||||
// CHECK-NEXT: }{{[[:space:]].*}}
|
||||
// CHECK-NEXT: void careForSwitchSemicolon() {
|
||||
// CHECK-NEXT: extracted();{{$}}
|
||||
// CHECK-NEXT: }
|
||||
|
||||
|
|
Loading…
Reference in New Issue