return StmtError();
}
- // 1.2.2 OpenMP Language Terminology
- // Structured block - An executable statement with a single entry at the
- // top and a single exit at the bottom.
- // The point of exit cannot be a branch out of the structured block.
- // longjmp() and throw() must not violate the entry/exit criteria.
- cast<CapturedStmt>(AStmt)->getCapturedDecl()->setNothrow();
-
setFunctionHasBranchProtectedScope();
return OMPSectionsDirective::Create(Context, StartLoc, EndLoc, Clauses, AStmt,
assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
- // 1.2.2 OpenMP Language Terminology
- // Structured block - An executable statement with a single entry at the
- // top and a single exit at the bottom.
- // The point of exit cannot be a branch out of the structured block.
- // longjmp() and throw() must not violate the entry/exit criteria.
- cast<CapturedStmt>(AStmt)->getCapturedDecl()->setNothrow();
-
setFunctionHasBranchProtectedScope();
DSAStack->setParentCancelRegion(DSAStack->isCancelRegion());
+++ /dev/null
-// RUN: %clang_cc1 -verify -fopenmp -ast-dump %s | FileCheck %s
-// RUN: %clang_cc1 -verify -fopenmp-simd -ast-dump %s | FileCheck %s
-// expected-no-diagnostics
-
-void sections() {
-#pragma omp sections
- {
-#pragma omp section
- {
- }
-#pragma omp section
- {
- }
- }
-}
-
-// CHECK: `-FunctionDecl
-// CHECK-NEXT: `-CompoundStmt
-// CHECK-NEXT: `-OMPSectionsDirective
-// CHECK-NEXT: `-CapturedStmt
-// CHECK-NEXT: `-CapturedDecl {{.*}} nothrow
-// CHECK-NEXT: |-CompoundStmt
-// CHECK-NEXT: | |-OMPSectionDirective
-// CHECK-NEXT: | | `-CapturedStmt
-// CHECK-NEXT: | | `-CapturedDecl {{.*}} nothrow
-// CHECK-NEXT: | | |-CompoundStmt
-// CHECK-NEXT: | | `-ImplicitParamDecl
-// CHECK-NEXT: | `-OMPSectionDirective
-// CHECK-NEXT: | `-CapturedStmt
-// CHECK-NEXT: | `-CapturedDecl {{.*}} nothrow
-// CHECK-NEXT: | |-CompoundStmt
-// CHECK-NEXT: | `-ImplicitParamDecl
-// CHECK-NEXT: |-ImplicitParamDecl
-// CHECK-NEXT: |-CXXRecordDecl
-// CHECK-NEXT: | |-DefinitionData
-// CHECK-NEXT: | | |-DefaultConstructor
-// CHECK-NEXT: | | |-CopyConstructor
-// CHECK-NEXT: | | |-MoveConstructor
-// CHECK-NEXT: | | |-CopyAssignment
-// CHECK-NEXT: | | |-MoveAssignment
-// CHECK-NEXT: | | `-Destructor
-// CHECK-NEXT: | `-CapturedRecordAttr
-// CHECK-NEXT: |-CapturedDecl {{.*}} nothrow
-// CHECK-NEXT: | |-CompoundStmt
-// CHECK-NEXT: | `-ImplicitParamDecl
-// CHECK-NEXT: |-CXXRecordDecl
-// CHECK-NEXT: | |-DefinitionData
-// CHECK-NEXT: | | |-DefaultConstructor
-// CHECK-NEXT: | | |-CopyConstructor
-// CHECK-NEXT: | | |-MoveConstructor
-// CHECK-NEXT: | | |-CopyAssignment
-// CHECK-NEXT: | | |-MoveAssignment
-// CHECK-NEXT: | | `-Destructor
-// CHECK-NEXT: | `-CapturedRecordAttr
-// CHECK-NEXT: `-CapturedDecl {{.*}} nothrow
-// CHECK-NEXT: |-CompoundStmt
-// CHECK-NEXT: `-ImplicitParamDecl