r356570 - [clang][OpeMP] Model OpenMP structured-block in AST (PR40563)
Diana Picus via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 22 06:17:35 PDT 2019
Hi Roman,
This is failing on some of our buildbots, e.g.
http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/17921
http://lab.llvm.org:8011/builders/clang-cmake-aarch64-global-isel/builds/10248
I think they didn't send an email because they were already red with
another failure.
Could you please have a look?
Thanks,
Diana
On Wed, 20 Mar 2019 at 17:31, Roman Lebedev via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
>
> Author: lebedevri
> Date: Wed Mar 20 09:32:36 2019
> New Revision: 356570
>
> URL: http://llvm.org/viewvc/llvm-project?rev=356570&view=rev
> Log:
> [clang][OpeMP] Model OpenMP structured-block in AST (PR40563)
>
> Summary:
> https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.pdf, page 3:
> ```
> structured block
>
> For C/C++, an executable statement, possibly compound, with a single entry at the
> top and a single exit at the bottom, or an OpenMP construct.
>
> COMMENT: See Section 2.1 on page 38 for restrictions on structured
> blocks.
> ```
> ```
> 2.1 Directive Format
>
> Some executable directives include a structured block. A structured block:
> • may contain infinite loops where the point of exit is never reached;
> • may halt due to an IEEE exception;
> • may contain calls to exit(), _Exit(), quick_exit(), abort() or functions with a
> _Noreturn specifier (in C) or a noreturn attribute (in C/C++);
> • may be an expression statement, iteration statement, selection statement, or try block, provided
> that the corresponding compound statement obtained by enclosing it in { and } would be a
> structured block; and
>
> Restrictions
> Restrictions to structured blocks are as follows:
> • Entry to a structured block must not be the result of a branch.
> • The point of exit cannot be a branch out of the structured block.
> C / C++
> • The point of entry to a structured block must not be a call to setjmp().
> • longjmp() and throw() must not violate the entry/exit criteria.
> ```
>
> Of particular note here is the fact that OpenMP structured blocks are as-if `noexcept`,
> in the same sense as with the normal `noexcept` functions in C++.
> I.e. if throw happens, and it attempts to travel out of the `noexcept` function
> (here: out of the current structured-block), then the program terminates.
>
> Now, one of course can say that since it is explicitly prohibited by the Specification,
> then any and all programs that violate this Specification contain undefined behavior,
> and are unspecified, and thus no one should care about them. Just don't write broken code /s
>
> But i'm not sure this is a reasonable approach.
> I have personally had oss-fuzz issues of this origin - exception thrown inside
> of an OpenMP structured-block that is not caught, thus causing program termination.
> This issue isn't all that hard to catch, it's not any particularly different from
> diagnosing the same situation with the normal `noexcept` function.
>
> Now, clang static analyzer does not presently model exceptions.
> But clang-tidy has a simplisic [[ https://clang.llvm.org/extra/clang-tidy/checks/bugprone-exception-escape.html | bugprone-exception-escape ]] check,
> and it is even refactored as a `ExceptionAnalyzer` class for reuse.
> So it would be trivial to use that analyzer to check for
> exceptions escaping out of OpenMP structured blocks. (D59466)
>
> All that sounds too great to be true. Indeed, there is a caveat.
> Presently, it's practically impossible to do. To check a OpenMP structured block
> you need to somehow 'get' the OpenMP structured block, and you can't because
> it's simply not modelled in AST. `CapturedStmt`/`CapturedDecl` is not it's representation.
>
> Now, it is of course possible to write e.g. some AST matcher that would e.g.
> match every OpenMP executable directive, and then return the whatever `Stmt` is
> the structured block of said executable directive, if any.
> But i said //practically//. This isn't practical for the following reasons:
> 1. This **will** bitrot. That matcher will need to be kept up-to-date,
> and refreshed with every new OpenMP spec version.
> 2. Every single piece of code that would want that knowledge would need to
> have such matcher. Well, okay, if it is an AST matcher, it could be shared.
> But then you still have `RecursiveASTVisitor` and friends.
> `2 > 1`, so now you have code duplication.
>
> So it would be reasonable (and is fully within clang AST spirit) to not
> force every single consumer to do that work, but instead store that knowledge
> in the correct, and appropriate place - AST, class structure.
>
> Now, there is another hoop we need to get through.
> It isn't fully obvious //how// to model this.
> The best solution would of course be to simply add a `OMPStructuredBlock` transparent
> node. It would be optimal, it would give us two properties:
> * Given this `OMPExecutableDirective`, what's it OpenMP structured block?
> * It is trivial to check whether the `Stmt*` is a OpenMP structured block (`isa<OMPStructuredBlock>(ptr)`)
>
> But OpenMP structured block isn't **necessarily** the first, direct child of `OMP*Directive`.
> (even ignoring the clang's `CapturedStmt`/`CapturedDecl` that were inserted inbetween).
> So i'm not sure whether or not we could re-create AST statements after they were already created?
> There would be other costs to a new AST node: https://bugs.llvm.org/show_bug.cgi?id=40563#c12
> ```
> 1. You will need to break the representation of loops. The body should be replaced by the "structured block" entity.
> 2. You will need to support serialization/deserialization.
> 3. You will need to support template instantiation.
> 4. You will need to support codegen and take this new construct to account in each OpenMP directive.
> ```
>
> Instead, there **is** an functionally-equivalent, alternative solution, consisting of two parts.
>
> Part 1:
> * Add a member function `isStandaloneDirective()` to the `OMPExecutableDirective` class,
> that will tell whether this directive is stand-alone or not, as per the spec.
> We need it because we can't just check for the existance of associated statements,
> see code comment.
> * Add a member function `getStructuredBlock()` to the OMPExecutableDirective` class itself,
> that assert that this is not a stand-alone directive, and either return the correct loop body
> if this is a loop-like directive, or the captured statement.
> This way, given an `OMPExecutableDirective`, we can get it's structured block.
> Also, since the knowledge is ingrained into the clang OpenMP implementation,
> it will not cause any duplication, and //hopefully// won't bitrot.
>
> Great we achieved 1 of 2 properties of `OMPStructuredBlock` approach.
>
> Thus, there is a second part needed:
> * How can we check whether a given `Stmt*` is `OMPStructuredBlock`?
> Well, we can't really, in general. I can see this workaround:
> ```
> class FunctionASTVisitor : public RecursiveASTVisitor<FunctionASTVisitor> {
> using Base = RecursiveASTVisitor<FunctionASTVisitor>;
> public:
> bool VisitOMPExecDir(OMPExecDir *D) {
> OmpStructuredStmts.emplace_back(D.getStructuredStmt());
> }
> bool VisitSOMETHINGELSE(???) {
> if(InOmpStructuredStmt)
> HI!
> }
> bool TraverseStmt(Stmt *Node) {
> if (!Node)
> return Base::TraverseStmt(Node);
> if (OmpStructuredStmts.back() == Node)
> ++InOmpStructuredStmt;
> Base::TraverseStmt(Node);
> if (OmpStructuredStmts.back() == Node) {
> OmpStructuredStmts.pop_back();
> --InOmpStructuredStmt;
> }
> return true;
> }
> std::vector<Stmt*> OmpStructuredStmts;
> int InOmpStructuredStmt = 0;
> };
> ```
> But i really don't see using it in practice.
> It's just too intrusive; and again, requires knowledge duplication.
>
> .. but no. The solution lies right on the ground.
> Why don't we simply store this `i'm a openmp structured block` in the bitfield of the `Stmt` itself?
> This does not appear to have any impact on the memory footprint of the clang AST,
> since it's just a single extra bit in the bitfield. At least the static assertions don't fail.
> Thus, indeed, we can achieve both of the properties without a new AST node.
>
> We can cheaply set that bit right in sema, at the end of `Sema::ActOnOpenMPExecutableDirective()`,
> by just calling the `getStructuredBlock()` that we just added.
> Test coverage that demonstrates all this has been added.
>
> This isn't as great with serialization though. Most of it does not use abbrevs,
> so we do end up paying the full price (4 bytes?) instead of a single bit.
> That price, of course, can be reclaimed by using abbrevs.
> In fact, i suspect that //might// not just reclaim these bytes, but pack these PCH significantly.
>
> I'm not seeing a third solution. If there is one, it would be interesting to hear about it.
> ("just don't write code that would require `isa<OMPStructuredBlock>(ptr)`" is not a solution.)
>
> Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=40563 | PR40563 ]].
>
> Reviewers: ABataev, rjmccall, hfinkel, rsmith, riccibruno, gribozavr
>
> Reviewed By: ABataev, gribozavr
>
> Subscribers: mgorny, aaron.ballman, steveire, guansong, jfb, jdoerfert, cfe-commits
>
> Tags: #clang, #openmp
>
> Differential Revision: https://reviews.llvm.org/D59214
>
> Added:
> cfe/trunk/test/PCH/stmt-openmp_structured_block-bit.cpp
> cfe/trunk/unittests/AST/ASTPrint.h
> cfe/trunk/unittests/AST/OMPStructuredBlockTest.cpp
> Modified:
> cfe/trunk/include/clang/AST/Stmt.h
> cfe/trunk/include/clang/AST/StmtOpenMP.h
> cfe/trunk/include/clang/AST/TextNodeDumper.h
> cfe/trunk/lib/AST/StmtOpenMP.cpp
> cfe/trunk/lib/AST/TextNodeDumper.cpp
> cfe/trunk/lib/Sema/SemaOpenMP.cpp
> cfe/trunk/lib/Serialization/ASTReaderStmt.cpp
> cfe/trunk/lib/Serialization/ASTWriterDecl.cpp
> cfe/trunk/lib/Serialization/ASTWriterStmt.cpp
> cfe/trunk/test/AST/ast-dump-openmp-atomic.c
> cfe/trunk/test/AST/ast-dump-openmp-barrier.c
> cfe/trunk/test/AST/ast-dump-openmp-cancel.c
> cfe/trunk/test/AST/ast-dump-openmp-cancellation-point.c
> cfe/trunk/test/AST/ast-dump-openmp-critical.c
> cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for.c
> cfe/trunk/test/AST/ast-dump-openmp-distribute-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-distribute.c
> cfe/trunk/test/AST/ast-dump-openmp-flush.c
> cfe/trunk/test/AST/ast-dump-openmp-for-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-for.c
> cfe/trunk/test/AST/ast-dump-openmp-master.c
> cfe/trunk/test/AST/ast-dump-openmp-ordered.c
> cfe/trunk/test/AST/ast-dump-openmp-parallel-for-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-parallel-for.c
> cfe/trunk/test/AST/ast-dump-openmp-parallel-master-XFAIL.c
> cfe/trunk/test/AST/ast-dump-openmp-parallel-sections.c
> cfe/trunk/test/AST/ast-dump-openmp-parallel.c
> cfe/trunk/test/AST/ast-dump-openmp-section.c
> cfe/trunk/test/AST/ast-dump-openmp-sections.c
> cfe/trunk/test/AST/ast-dump-openmp-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-single.c
> cfe/trunk/test/AST/ast-dump-openmp-target-data.c
> cfe/trunk/test/AST/ast-dump-openmp-target-enter-data.c
> cfe/trunk/test/AST/ast-dump-openmp-target-exit-data.c
> cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for.c
> cfe/trunk/test/AST/ast-dump-openmp-target-parallel.c
> cfe/trunk/test/AST/ast-dump-openmp-target-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c
> cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute.c
> cfe/trunk/test/AST/ast-dump-openmp-target-teams.c
> cfe/trunk/test/AST/ast-dump-openmp-target-update.c
> cfe/trunk/test/AST/ast-dump-openmp-target.c
> cfe/trunk/test/AST/ast-dump-openmp-task.c
> cfe/trunk/test/AST/ast-dump-openmp-taskgroup.c
> cfe/trunk/test/AST/ast-dump-openmp-taskloop-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-taskloop.c
> cfe/trunk/test/AST/ast-dump-openmp-taskwait.c
> cfe/trunk/test/AST/ast-dump-openmp-taskyield.c
> cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c
> cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-simd.c
> cfe/trunk/test/AST/ast-dump-openmp-teams-distribute.c
> cfe/trunk/test/AST/ast-dump-openmp-teams.c
> cfe/trunk/test/AST/dump.cpp
> cfe/trunk/unittests/AST/CMakeLists.txt
> cfe/trunk/unittests/AST/StmtPrinterTest.cpp
>
> Modified: cfe/trunk/include/clang/AST/Stmt.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Stmt.h?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/Stmt.h (original)
> +++ cfe/trunk/include/clang/AST/Stmt.h Wed Mar 20 09:32:36 2019
> @@ -91,12 +91,20 @@ protected:
> //===--- Statement bitfields classes ---===//
>
> class StmtBitfields {
> + friend class ASTStmtReader;
> + friend class ASTStmtWriter;
> friend class Stmt;
>
> /// The statement class.
> unsigned sClass : 8;
> +
> + /// This bit is set only for the Stmts that are the structured-block of
> + /// OpenMP executable directives. Directives that have a structured block
> + /// are called "non-standalone" directives.
> + /// I.e. those returned by OMPExecutableDirective::getStructuredBlock().
> + unsigned IsOMPStructuredBlock : 1;
> };
> - enum { NumStmtBits = 8 };
> + enum { NumStmtBits = 9 };
>
> class NullStmtBitfields {
> friend class ASTStmtReader;
> @@ -1026,6 +1034,7 @@ public:
> static_assert(sizeof(*this) % alignof(void *) == 0,
> "Insufficient alignment!");
> StmtBits.sClass = SC;
> + StmtBits.IsOMPStructuredBlock = false;
> if (StatisticsEnabled) Stmt::addStmtClass(SC);
> }
>
> @@ -1035,6 +1044,11 @@ public:
>
> const char *getStmtClassName() const;
>
> + bool isOMPStructuredBlock() const { return StmtBits.IsOMPStructuredBlock; }
> + void setIsOMPStructuredBlock(bool IsOMPStructuredBlock) {
> + StmtBits.IsOMPStructuredBlock = IsOMPStructuredBlock;
> + }
> +
> /// SourceLocation tokens are not useful in isolation - they are low level
> /// value objects created/interpreted by SourceManager. We assume AST
> /// clients will have a pointer to the respective SourceManager.
>
> Modified: cfe/trunk/include/clang/AST/StmtOpenMP.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/StmtOpenMP.h?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/StmtOpenMP.h (original)
> +++ cfe/trunk/include/clang/AST/StmtOpenMP.h Wed Mar 20 09:32:36 2019
> @@ -261,6 +261,22 @@ public:
> ArrayRef<OMPClause *> clauses() const {
> return const_cast<OMPExecutableDirective *>(this)->getClauses();
> }
> +
> + /// Returns whether or not this is a Standalone directive.
> + ///
> + /// Stand-alone directives are executable directives
> + /// that have no associated user code.
> + bool isStandaloneDirective() const;
> +
> + /// Returns the AST node representing OpenMP structured-block of this
> + /// OpenMP executable directive,
> + /// Prerequisite: Executable Directive must not be Standalone directive.
> + const Stmt *getStructuredBlock() const;
> +
> + Stmt *getStructuredBlock() {
> + return const_cast<Stmt *>(
> + const_cast<const OMPExecutableDirective *>(this)->getStructuredBlock());
> + }
> };
>
> /// This represents '#pragma omp parallel' directive.
>
> Modified: cfe/trunk/include/clang/AST/TextNodeDumper.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/TextNodeDumper.h?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/TextNodeDumper.h (original)
> +++ cfe/trunk/include/clang/AST/TextNodeDumper.h Wed Mar 20 09:32:36 2019
> @@ -307,6 +307,7 @@ public:
> void VisitImportDecl(const ImportDecl *D);
> void VisitPragmaCommentDecl(const PragmaCommentDecl *D);
> void VisitPragmaDetectMismatchDecl(const PragmaDetectMismatchDecl *D);
> + void VisitOMPExecutableDirective(const OMPExecutableDirective *D);
> void VisitOMPDeclareReductionDecl(const OMPDeclareReductionDecl *D);
> void VisitOMPRequiresDecl(const OMPRequiresDecl *D);
> void VisitOMPCapturedExprDecl(const OMPCapturedExprDecl *D);
>
> Modified: cfe/trunk/lib/AST/StmtOpenMP.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/StmtOpenMP.cpp?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/StmtOpenMP.cpp (original)
> +++ cfe/trunk/lib/AST/StmtOpenMP.cpp Wed Mar 20 09:32:36 2019
> @@ -22,6 +22,25 @@ void OMPExecutableDirective::setClauses(
> std::copy(Clauses.begin(), Clauses.end(), getClauses().begin());
> }
>
> +bool OMPExecutableDirective::isStandaloneDirective() const {
> + // Special case: 'omp target enter data', 'omp target exit data',
> + // 'omp target update' are stand-alone directives, but for implementation
> + // reasons they have empty synthetic structured block, to simplify codegen.
> + if (isa<OMPTargetEnterDataDirective>(this) ||
> + isa<OMPTargetExitDataDirective>(this) ||
> + isa<OMPTargetUpdateDirective>(this))
> + return true;
> + return !hasAssociatedStmt() || !getAssociatedStmt();
> +}
> +
> +const Stmt *OMPExecutableDirective::getStructuredBlock() const {
> + assert(!isStandaloneDirective() &&
> + "Standalone Executable Directives don't have Structured Blocks.");
> + if (auto *LD = dyn_cast<OMPLoopDirective>(this))
> + return LD->getBody();
> + return getInnermostCapturedStmt()->getCapturedStmt();
> +}
> +
> void OMPLoopDirective::setCounters(ArrayRef<Expr *> A) {
> assert(A.size() == getCollapsedNumber() &&
> "Number of loop counters is not the same as the collapsed number");
>
> Modified: cfe/trunk/lib/AST/TextNodeDumper.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/TextNodeDumper.cpp?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/lib/AST/TextNodeDumper.cpp (original)
> +++ cfe/trunk/lib/AST/TextNodeDumper.cpp Wed Mar 20 09:32:36 2019
> @@ -121,6 +121,9 @@ void TextNodeDumper::Visit(const Stmt *N
> dumpPointer(Node);
> dumpSourceRange(Node->getSourceRange());
>
> + if (Node->isOMPStructuredBlock())
> + OS << " openmp_structured_block";
> +
> if (const auto *E = dyn_cast<Expr>(Node)) {
> dumpType(E->getType());
>
> @@ -1414,6 +1417,12 @@ void TextNodeDumper::VisitPragmaDetectMi
> OS << " \"" << D->getName() << "\" \"" << D->getValue() << "\"";
> }
>
> +void TextNodeDumper::VisitOMPExecutableDirective(
> + const OMPExecutableDirective *D) {
> + if (D->isStandaloneDirective())
> + OS << " openmp_standalone_directive";
> +}
> +
> void TextNodeDumper::VisitOMPDeclareReductionDecl(
> const OMPDeclareReductionDecl *D) {
> dumpName(D);
>
> Modified: cfe/trunk/lib/Sema/SemaOpenMP.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaOpenMP.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaOpenMP.cpp Wed Mar 20 09:32:36 2019
> @@ -3915,6 +3915,8 @@ StmtResult Sema::ActOnOpenMPExecutableDi
> llvm_unreachable("Unknown OpenMP directive");
> }
>
> + ErrorFound = Res.isInvalid() || ErrorFound;
> +
> for (const auto &P : VarsWithInheritedDSA) {
> Diag(P.second->getExprLoc(), diag::err_omp_no_dsa_for_variable)
> << P.first << P.second->getSourceRange();
> @@ -3927,6 +3929,13 @@ StmtResult Sema::ActOnOpenMPExecutableDi
>
> if (ErrorFound)
> return StmtError();
> +
> + if (!(Res.getAs<OMPExecutableDirective>()->isStandaloneDirective())) {
> + Res.getAs<OMPExecutableDirective>()
> + ->getStructuredBlock()
> + ->setIsOMPStructuredBlock(true);
> + }
> +
> return Res;
> }
>
>
> Modified: cfe/trunk/lib/Serialization/ASTReaderStmt.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReaderStmt.cpp?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTReaderStmt.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTReaderStmt.cpp Wed Mar 20 09:32:36 2019
> @@ -111,7 +111,7 @@ namespace clang {
>
> /// The number of record fields required for the Stmt class
> /// itself.
> - static const unsigned NumStmtFields = 0;
> + static const unsigned NumStmtFields = 1;
>
> /// The number of record fields required for the Expr class
> /// itself.
> @@ -147,6 +147,7 @@ void ASTStmtReader::ReadTemplateKWAndArg
> }
>
> void ASTStmtReader::VisitStmt(Stmt *S) {
> + S->setIsOMPStructuredBlock(Record.readInt());
> assert(Record.getIdx() == NumStmtFields && "Incorrect statement field count");
> }
>
>
> Modified: cfe/trunk/lib/Serialization/ASTWriterDecl.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriterDecl.cpp?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTWriterDecl.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTWriterDecl.cpp Wed Mar 20 09:32:36 2019
> @@ -2179,7 +2179,8 @@ void ASTWriter::WriteDeclAbbrevs() {
> Abv = std::make_shared<BitCodeAbbrev>();
> Abv->Add(BitCodeAbbrevOp(serialization::EXPR_DECL_REF));
> //Stmt
> - //Expr
> + Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // IsOMPStructuredBlock
> + // Expr
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // Type
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); //TypeDependent
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); //ValueDependent
> @@ -2202,7 +2203,8 @@ void ASTWriter::WriteDeclAbbrevs() {
> Abv = std::make_shared<BitCodeAbbrev>();
> Abv->Add(BitCodeAbbrevOp(serialization::EXPR_INTEGER_LITERAL));
> //Stmt
> - //Expr
> + Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // IsOMPStructuredBlock
> + // Expr
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // Type
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); //TypeDependent
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); //ValueDependent
> @@ -2220,7 +2222,8 @@ void ASTWriter::WriteDeclAbbrevs() {
> Abv = std::make_shared<BitCodeAbbrev>();
> Abv->Add(BitCodeAbbrevOp(serialization::EXPR_CHARACTER_LITERAL));
> //Stmt
> - //Expr
> + Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // IsOMPStructuredBlock
> + // Expr
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // Type
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); //TypeDependent
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); //ValueDependent
> @@ -2238,6 +2241,7 @@ void ASTWriter::WriteDeclAbbrevs() {
> Abv = std::make_shared<BitCodeAbbrev>();
> Abv->Add(BitCodeAbbrevOp(serialization::EXPR_IMPLICIT_CAST));
> // Stmt
> + Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // IsOMPStructuredBlock
> // Expr
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // Type
> Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); //TypeDependent
>
> Modified: cfe/trunk/lib/Serialization/ASTWriterStmt.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriterStmt.cpp?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTWriterStmt.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTWriterStmt.cpp Wed Mar 20 09:32:36 2019
> @@ -67,6 +67,7 @@ void ASTStmtWriter::AddTemplateKWAndArgs
> }
>
> void ASTStmtWriter::VisitStmt(Stmt *S) {
> + Record.push_back(S->StmtBits.IsOMPStructuredBlock);
> }
>
> void ASTStmtWriter::VisitNullStmt(NullStmt *S) {
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-atomic.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-atomic.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-atomic.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-atomic.c Wed Mar 20 09:32:36 2019
> @@ -12,7 +12,7 @@ void test(int i) {
> // CHECK-NEXT: `-OMPAtomicDirective {{.*}} <line:4:9, col:19>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3, col:5>
> // CHECK-NEXT: |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: | |-UnaryOperator {{.*}} <col:3, col:5> 'int' prefix '++'
> +// CHECK-NEXT: | |-UnaryOperator {{.*}} <col:3, col:5> openmp_structured_block 'int' prefix '++'
> // CHECK-NEXT: | | `-DeclRefExpr {{.*}} <col:5> 'int' lvalue ParmVar {{.*}} 'i' 'int'
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-atomic.c:4:9) *const restrict'
> // CHECK-NEXT: `-DeclRefExpr {{.*}} <line:5:5> 'int' lvalue ParmVar {{.*}} 'i' 'int'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-barrier.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-barrier.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-barrier.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-barrier.c Wed Mar 20 09:32:36 2019
> @@ -7,4 +7,4 @@ void test() {
> // CHECK: TranslationUnitDecl {{.*}} <<invalid sloc>> <invalid sloc>
> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-barrier.c:3:1, line:5:1> line:3:6 test 'void ()'
> // CHECK-NEXT: `-CompoundStmt {{.*}} <col:13, line:5:1>
> -// CHECK-NEXT: `-OMPBarrierDirective {{.*}} <line:4:9, col:20>
> +// CHECK-NEXT: `-OMPBarrierDirective {{.*}} <line:4:9, col:20> openmp_standalone_directive
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-cancel.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-cancel.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-cancel.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-cancel.c Wed Mar 20 09:32:36 2019
> @@ -13,8 +13,8 @@ void test() {
> // CHECK-NEXT: `-OMPParallelDirective {{.*}} <line:4:9, col:21>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3, line:7:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-CompoundStmt {{.*}} <line:5:3, line:7:3>
> -// CHECK-NEXT: | `-OMPCancelDirective {{.*}} <line:6:9, col:28>
> +// CHECK-NEXT: |-CompoundStmt {{.*}} <line:5:3, line:7:3> openmp_structured_block
> +// CHECK-NEXT: | `-OMPCancelDirective {{.*}} <line:6:9, col:28> openmp_standalone_directive
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-cancel.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-cancellation-point.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-cancellation-point.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-cancellation-point.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-cancellation-point.c Wed Mar 20 09:32:36 2019
> @@ -13,8 +13,8 @@ void test() {
> // CHECK-NEXT: `-OMPParallelDirective {{.*}} <line:4:9, col:21>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3, line:7:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-CompoundStmt {{.*}} <line:5:3, line:7:3>
> -// CHECK-NEXT: | `-OMPCancellationPointDirective {{.*}} <line:6:9, col:40>
> +// CHECK-NEXT: |-CompoundStmt {{.*}} <line:5:3, line:7:3> openmp_structured_block
> +// CHECK-NEXT: | `-OMPCancellationPointDirective {{.*}} <line:6:9, col:40> openmp_standalone_directive
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-cancellation-point.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-critical.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-critical.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-critical.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-critical.c Wed Mar 20 09:32:36 2019
> @@ -11,5 +11,5 @@ void test() {
> // CHECK-NEXT: `-OMPCriticalDirective {{.*}} <line:4:9, col:21>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-critical.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -82,7 +82,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -128,7 +128,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -186,7 +186,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -233,7 +233,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-distribute-parallel-for.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -82,7 +82,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -128,7 +128,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -186,7 +186,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -233,7 +233,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-distribute-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-distribute-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-distribute-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-distribute-simd.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-distribute-simd.c:4:9) *const restrict'
> // CHECK-NEXT: | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -78,7 +78,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -120,7 +120,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -174,7 +174,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-distribute-simd.c:24:9) *const restrict'
> // CHECK-NEXT: | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -217,7 +217,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-distribute.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-distribute.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-distribute.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-distribute.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-distribute.c:4:9) *const restrict'
> // CHECK-NEXT: | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -78,7 +78,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -120,7 +120,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -174,7 +174,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-distribute.c:24:9) *const restrict'
> // CHECK-NEXT: | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -217,7 +217,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-flush.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-flush.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-flush.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-flush.c Wed Mar 20 09:32:36 2019
> @@ -7,4 +7,4 @@ void test() {
> // CHECK: TranslationUnitDecl {{.*}} <<invalid sloc>> <invalid sloc>
> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-flush.c:3:1, line:5:1> line:3:6 test 'void ()'
> // CHECK-NEXT: `-CompoundStmt {{.*}} <col:13, line:5:1>
> -// CHECK-NEXT: `-OMPFlushDirective {{.*}} <line:4:9, col:18>
> +// CHECK-NEXT: `-OMPFlushDirective {{.*}} <line:4:9, col:18> openmp_standalone_directive
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-for-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-for-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-for-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-for-simd.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-for-simd.c:4:9) *const restrict'
> // CHECK-NEXT: | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -78,7 +78,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -120,7 +120,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -174,7 +174,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-for-simd.c:24:9) *const restrict'
> // CHECK-NEXT: | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -217,7 +217,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-for.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-for.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-for.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-for.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr 0x{{.*}} <col:23> 'int' lvalue ParmVar 0x{{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator 0x{{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr 0x{{.*}} <col:26> 'int' lvalue Var 0x{{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt 0x{{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt 0x{{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl 0x{{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-for.c:4:9) *const restrict'
> // CHECK-NEXT: | | `-VarDecl 0x{{.*}} <line:5:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | `-IntegerLiteral 0x{{.*}} <col:16> 'int' 0
> @@ -78,7 +78,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr 0x{{.*}} <col:23> 'int' lvalue ParmVar 0x{{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator 0x{{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr 0x{{.*}} <col:26> 'int' lvalue Var 0x{{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt 0x{{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt 0x{{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt 0x{{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl 0x{{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral 0x{{.*}} <col:18> 'int' 0
> @@ -120,7 +120,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr 0x{{.*}} <col:23> 'int' lvalue ParmVar 0x{{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator 0x{{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr 0x{{.*}} <col:26> 'int' lvalue Var 0x{{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt 0x{{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt 0x{{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt 0x{{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl 0x{{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral 0x{{.*}} <col:18> 'int' 0
> @@ -174,7 +174,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr 0x{{.*}} <col:25> 'int' lvalue ParmVar 0x{{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator 0x{{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr 0x{{.*}} <col:28> 'int' lvalue Var 0x{{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt 0x{{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt 0x{{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl 0x{{.*}} <line:24:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-for.c:24:9) *const restrict'
> // CHECK-NEXT: | | |-VarDecl 0x{{.*}} <line:25:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral 0x{{.*}} <col:16> 'int' 0
> @@ -217,7 +217,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr 0x{{.*}} <col:25> 'int' lvalue ParmVar 0x{{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator 0x{{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr 0x{{.*}} <col:28> 'int' lvalue Var 0x{{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt 0x{{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt 0x{{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt 0x{{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl 0x{{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral 0x{{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-master.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-master.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-master.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-master.c Wed Mar 20 09:32:36 2019
> @@ -11,5 +11,5 @@ void test() {
> // CHECK-NEXT: `-OMPMasterDirective {{.*}} <line:4:9, col:19>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-master.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-ordered.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-ordered.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-ordered.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-ordered.c Wed Mar 20 09:32:36 2019
> @@ -24,7 +24,7 @@ void test_three(int x) {
> // CHECK-NEXT: | `-OMPOrderedDirective {{.*}} <line:4:9, col:20>
> // CHECK-NEXT: | `-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-ordered.c:4:9) *const restrict'
> // CHECK-NEXT: |-FunctionDecl {{.*}} <line:8:1, line:12:1> line:8:6 test_two 'void (int)'
> // CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:15, col:19> col:19 used x 'int'
> @@ -46,7 +46,7 @@ void test_three(int x) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:11:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:11:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:9:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-ordered.c:9:9) *const restrict'
> // CHECK-NEXT: | | `-VarDecl {{.*}} <line:10:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -72,8 +72,8 @@ void test_three(int x) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-CompoundStmt {{.*}} <col:31, line:18:3>
> -// CHECK-NEXT: | | `-OMPOrderedDirective {{.*}} <line:17:9, col:35>
> +// CHECK-NEXT: | | `-CompoundStmt {{.*}} <col:31, line:18:3> openmp_structured_block
> +// CHECK-NEXT: | | `-OMPOrderedDirective {{.*}} <line:17:9, col:35> openmp_standalone_directive
> // CHECK-NEXT: | | |-OMPDependClause {{.*}} <col:21, <invalid sloc>>
> // CHECK-NEXT: | | `-<<<NULL>>>
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:15:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-ordered.c:15:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-parallel-for-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-parallel-for-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-parallel-for-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-parallel-for-simd.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-parallel-for-simd.c:4:9) *const restrict'
> @@ -80,7 +80,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -124,7 +124,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -180,7 +180,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-parallel-for-simd.c:24:9) *const restrict'
> @@ -225,7 +225,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-parallel-for.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-parallel-for.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-parallel-for.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-parallel-for.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-parallel-for.c:4:9) *const restrict'
> @@ -80,7 +80,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -124,7 +124,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -180,7 +180,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-parallel-for.c:24:9) *const restrict'
> @@ -225,7 +225,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-parallel-master-XFAIL.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-parallel-master-XFAIL.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-parallel-master-XFAIL.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-parallel-master-XFAIL.c Wed Mar 20 09:32:36 2019
> @@ -18,7 +18,7 @@ void test_one() {
> // CHECK-NEXT: | `-OMPParallelDirective {{.*}} <line:4:9, col:28>
> // CHECK-NEXT: | `-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-parallel-master-XFAIL.c:4:9) *const restrict'
> @@ -27,7 +27,7 @@ void test_one() {
> // CHECK-NEXT: `-OMPParallelDirective {{.*}} <line:10:9, col:28>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:11:3, col:7>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-CompoundStmt {{.*}} <col:3, col:7>
> +// CHECK-NEXT: |-CompoundStmt {{.*}} <col:3, col:7> openmp_structured_block
> // CHECK-NEXT: | `-NullStmt {{.*}} <col:5>
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:10:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-parallel-sections.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-parallel-sections.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-parallel-sections.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-parallel-sections.c Wed Mar 20 09:32:36 2019
> @@ -18,7 +18,7 @@ void test_one() {
> // CHECK-NEXT: `-OMPParallelSectionsDirective {{.*}} <line:9:9, col:30>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:10:3, col:7>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-CompoundStmt {{.*}} <col:3, col:7>
> +// CHECK-NEXT: |-CompoundStmt {{.*}} <col:3, col:7> openmp_structured_block
> // CHECK-NEXT: | `-NullStmt {{.*}} <col:5>
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:9:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-parallel.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-parallel.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-parallel.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-parallel.c Wed Mar 20 09:32:36 2019
> @@ -11,7 +11,7 @@ void test() {
> // CHECK-NEXT: `-OMPParallelDirective 0x{{.*}} <line:4:9, col:21>
> // CHECK-NEXT: `-CapturedStmt 0x{{.*}} <line:5:3>
> // CHECK-NEXT: `-CapturedDecl 0x{{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-NullStmt 0x{{.*}} <col:3>
> +// CHECK-NEXT: |-NullStmt 0x{{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: |-ImplicitParamDecl 0x{{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl 0x{{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: `-ImplicitParamDecl 0x{{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-parallel.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-section.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-section.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-section.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-section.c Wed Mar 20 09:32:36 2019
> @@ -14,15 +14,15 @@ void test() {
> // CHECK-NEXT: `-OMPSectionsDirective {{.*}} <line:4:9, col:21>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3, line:8:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-CompoundStmt {{.*}} <line:5:3, line:8:3>
> +// CHECK-NEXT: |-CompoundStmt {{.*}} <line:5:3, line:8:3> openmp_structured_block
> // CHECK-NEXT: | `-OMPSectionDirective {{.*}} <line:6:9, col:20>
> // CHECK-NEXT: | `-CapturedStmt {{.*}} <line:7:5>
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: | |-NullStmt {{.*}} <col:5>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <col:5> openmp_structured_block
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <line:6:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-section.c:6:9) *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-section.c:4:9) *const restrict'
> // CHECK-NEXT: |-RecordDecl {{.*}} <line:6:9> col:9 implicit struct definition
> // CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: |-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <line:6:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-section.c:6:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-sections.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-sections.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-sections.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-sections.c Wed Mar 20 09:32:36 2019
> @@ -18,6 +18,6 @@ void test_one() {
> // CHECK-NEXT: `-OMPSectionsDirective {{.*}} <line:9:9, col:21>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:10:3, col:7>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-CompoundStmt {{.*}} <col:3, col:7>
> +// CHECK-NEXT: |-CompoundStmt {{.*}} <col:3, col:7> openmp_structured_block
> // CHECK-NEXT: | `-NullStmt {{.*}} <col:5>
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <line:9:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-sections.c:9:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-simd.c Wed Mar 20 09:32:36 2019
> @@ -54,7 +54,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-simd.c:4:9) *const restrict'
> // CHECK-NEXT: | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -78,7 +78,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -120,7 +120,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -174,7 +174,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-simd.c:24:9) *const restrict'
> // CHECK-NEXT: | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -217,7 +217,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-single.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-single.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-single.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-single.c Wed Mar 20 09:32:36 2019
> @@ -11,5 +11,5 @@ void test() {
> // CHECK-NEXT: `-OMPSingleDirective {{.*}} <line:4:9, col:19>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-single.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-data.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-data.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-data.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-data.c Wed Mar 20 09:32:36 2019
> @@ -14,5 +14,5 @@ void test(int x) {
> // CHECK-NEXT: | `-DeclRefExpr {{.*}} <col:29> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-data.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-enter-data.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-enter-data.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-enter-data.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-enter-data.c Wed Mar 20 09:32:36 2019
> @@ -9,7 +9,7 @@ void test(int x) {
> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-enter-data.c:3:1, line:6:1> line:3:6 test 'void (int)'
> // CHECK-NEXT: |-ParmVarDecl {{.*}} <col:11, col:15> col:15 used x 'int'
> // CHECK-NEXT: `-CompoundStmt {{.*}} <col:18, line:6:1>
> -// CHECK-NEXT: `-OMPTargetEnterDataDirective {{.*}} <line:4:9, line:5:39>
> +// CHECK-NEXT: `-OMPTargetEnterDataDirective {{.*}} <line:4:9, line:5:39> openmp_standalone_directive
> // CHECK-NEXT: |-OMPMapClause {{.*}} <line:4:31, line:5:38>
> // CHECK-NEXT: | `-DeclRefExpr {{.*}} <col:37> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:4:9>
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-exit-data.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-exit-data.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-exit-data.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-exit-data.c Wed Mar 20 09:32:36 2019
> @@ -9,7 +9,7 @@ void test(int x) {
> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-exit-data.c:3:1, line:6:1> line:3:6 test 'void (int)'
> // CHECK-NEXT: |-ParmVarDecl {{.*}} <col:11, col:15> col:15 used x 'int'
> // CHECK-NEXT: `-CompoundStmt {{.*}} <col:18, line:6:1>
> -// CHECK-NEXT: `-OMPTargetExitDataDirective {{.*}} <line:4:9, line:5:38>
> +// CHECK-NEXT: `-OMPTargetExitDataDirective {{.*}} <line:4:9, line:5:38> openmp_standalone_directive
> // CHECK-NEXT: |-OMPMapClause {{.*}} <line:4:30, line:5:37>
> // CHECK-NEXT: | `-DeclRefExpr {{.*}} <col:36> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:4:9>
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for-simd.c Wed Mar 20 09:32:36 2019
> @@ -60,7 +60,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:9) *const restrict'
> @@ -85,7 +85,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:9) *const restrict'
> @@ -118,7 +118,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:9) *const restrict'
> @@ -143,7 +143,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:9) *const restrict'
> @@ -176,7 +176,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -218,7 +218,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -268,7 +268,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -310,7 +310,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -361,7 +361,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -403,7 +403,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -453,7 +453,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -495,7 +495,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -558,7 +558,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:9) *const restrict'
> @@ -600,7 +600,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:9) *const restrict'
> @@ -650,7 +650,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:9) *const restrict'
> @@ -692,7 +692,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:9) *const restrict'
> @@ -745,7 +745,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -804,7 +804,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -871,7 +871,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -930,7 +930,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-parallel-for.c Wed Mar 20 09:32:36 2019
> @@ -60,7 +60,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for.c:4:9) *const restrict'
> @@ -85,7 +85,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for.c:4:9) *const restrict'
> @@ -118,7 +118,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for.c:4:9) *const restrict'
> @@ -143,7 +143,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for.c:4:9) *const restrict'
> @@ -176,7 +176,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -218,7 +218,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -268,7 +268,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -310,7 +310,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -361,7 +361,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -403,7 +403,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -453,7 +453,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -495,7 +495,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -558,7 +558,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for.c:24:9) *const restrict'
> @@ -600,7 +600,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for.c:24:9) *const restrict'
> @@ -650,7 +650,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for.c:24:9) *const restrict'
> @@ -692,7 +692,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel-for.c:24:9) *const restrict'
> @@ -745,7 +745,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -804,7 +804,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -871,7 +871,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -930,7 +930,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-parallel.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-parallel.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-parallel.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-parallel.c Wed Mar 20 09:32:36 2019
> @@ -15,7 +15,7 @@ void test() {
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | |-CapturedStmt {{.*}} <col:3>
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel.c:4:9) *const restrict'
> @@ -23,7 +23,7 @@ void test() {
> // CHECK-NEXT: | |-RecordDecl {{.*}} <col:9> col:9 implicit struct definition
> // CHECK-NEXT: | | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-NullStmt {{.*}} <line:5:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <line:5:3> openmp_structured_block
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel.c:4:9) *const restrict'
> @@ -39,7 +39,7 @@ void test() {
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: |-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel.c:4:9) *const restrict'
> @@ -47,7 +47,7 @@ void test() {
> // CHECK-NEXT: |-RecordDecl {{.*}} <col:9> col:9 implicit struct definition
> // CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-NullStmt {{.*}} <line:5:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <line:5:3> openmp_structured_block
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-parallel.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-simd.c Wed Mar 20 09:32:36 2019
> @@ -58,7 +58,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-simd.c:4:9) *const restrict'
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -87,7 +87,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-simd.c:4:9) *const restrict'
> // CHECK-NEXT: | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -116,7 +116,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -162,7 +162,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -209,7 +209,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -255,7 +255,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -314,7 +314,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-simd.c:24:9) *const restrict'
> // CHECK-NEXT: | | | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -360,7 +360,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-simd.c:24:9) *const restrict'
> // CHECK-NEXT: | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0
> @@ -409,7 +409,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -472,7 +472,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c Wed Mar 20 09:32:36 2019
> @@ -62,7 +62,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -91,7 +91,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -120,7 +120,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -149,7 +149,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -186,7 +186,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -215,7 +215,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -244,7 +244,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -273,7 +273,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -310,7 +310,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -356,7 +356,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -402,7 +402,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -448,7 +448,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -502,7 +502,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -548,7 +548,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -594,7 +594,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -640,7 +640,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -695,7 +695,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -741,7 +741,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -787,7 +787,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -833,7 +833,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -887,7 +887,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -933,7 +933,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -979,7 +979,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1025,7 +1025,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1092,7 +1092,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1138,7 +1138,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1184,7 +1184,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1230,7 +1230,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1284,7 +1284,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1330,7 +1330,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1376,7 +1376,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1422,7 +1422,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1479,7 +1479,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1542,7 +1542,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1605,7 +1605,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1668,7 +1668,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1739,7 +1739,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1802,7 +1802,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1865,7 +1865,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1928,7 +1928,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c Wed Mar 20 09:32:36 2019
> @@ -62,7 +62,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -91,7 +91,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -120,7 +120,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -149,7 +149,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -186,7 +186,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -215,7 +215,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -244,7 +244,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -273,7 +273,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -310,7 +310,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -356,7 +356,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -402,7 +402,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -448,7 +448,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -502,7 +502,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -548,7 +548,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -594,7 +594,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -640,7 +640,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -695,7 +695,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -741,7 +741,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -787,7 +787,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -833,7 +833,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -887,7 +887,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -933,7 +933,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -979,7 +979,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1025,7 +1025,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1092,7 +1092,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1138,7 +1138,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1184,7 +1184,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1230,7 +1230,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1284,7 +1284,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1330,7 +1330,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1376,7 +1376,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1422,7 +1422,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1479,7 +1479,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1542,7 +1542,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1605,7 +1605,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1668,7 +1668,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1739,7 +1739,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1802,7 +1802,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1865,7 +1865,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1928,7 +1928,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute-simd.c Wed Mar 20 09:32:36 2019
> @@ -60,7 +60,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:9) *const restrict'
> @@ -85,7 +85,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:9) *const restrict'
> @@ -118,7 +118,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:9) *const restrict'
> @@ -143,7 +143,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:9) *const restrict'
> @@ -176,7 +176,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -218,7 +218,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -268,7 +268,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -310,7 +310,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -361,7 +361,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -403,7 +403,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -453,7 +453,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -495,7 +495,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -558,7 +558,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:9) *const restrict'
> @@ -600,7 +600,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:9) *const restrict'
> @@ -650,7 +650,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:9) *const restrict'
> @@ -692,7 +692,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:9) *const restrict'
> @@ -745,7 +745,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -804,7 +804,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -871,7 +871,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -930,7 +930,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-teams-distribute.c Wed Mar 20 09:32:36 2019
> @@ -60,7 +60,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:9) *const restrict'
> @@ -85,7 +85,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:9) *const restrict'
> @@ -118,7 +118,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:9) *const restrict'
> @@ -143,7 +143,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:9) *const restrict'
> @@ -176,7 +176,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -218,7 +218,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -268,7 +268,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -310,7 +310,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -361,7 +361,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -403,7 +403,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -453,7 +453,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -495,7 +495,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -558,7 +558,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:9) *const restrict'
> @@ -600,7 +600,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:9) *const restrict'
> @@ -650,7 +650,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:9) *const restrict'
> @@ -692,7 +692,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:9) *const restrict'
> @@ -745,7 +745,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -804,7 +804,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -871,7 +871,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -930,7 +930,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-teams.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-teams.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-teams.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-teams.c Wed Mar 20 09:32:36 2019
> @@ -15,7 +15,7 @@ void test() {
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | |-CapturedStmt {{.*}} <col:3>
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams.c:4:9) *const restrict'
> @@ -23,7 +23,7 @@ void test() {
> // CHECK-NEXT: | |-RecordDecl {{.*}} <col:9> col:9 implicit struct definition
> // CHECK-NEXT: | | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-NullStmt {{.*}} <line:5:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <line:5:3> openmp_structured_block
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams.c:4:9) *const restrict'
> @@ -39,7 +39,7 @@ void test() {
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: |-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams.c:4:9) *const restrict'
> @@ -47,7 +47,7 @@ void test() {
> // CHECK-NEXT: |-RecordDecl {{.*}} <col:9> col:9 implicit struct definition
> // CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-NullStmt {{.*}} <line:5:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <line:5:3> openmp_structured_block
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target-teams.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target-update.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target-update.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target-update.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target-update.c Wed Mar 20 09:32:36 2019
> @@ -8,7 +8,7 @@ void test(int x) {
> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-update.c:3:1, line:5:1> line:3:6 test 'void (int)'
> // CHECK-NEXT: |-ParmVarDecl {{.*}} <col:11, col:15> col:15 used x 'int'
> // CHECK-NEXT: `-CompoundStmt {{.*}} <col:18, line:5:1>
> -// CHECK-NEXT: `-OMPTargetUpdateDirective {{.*}} <line:4:9, col:32>
> +// CHECK-NEXT: `-OMPTargetUpdateDirective {{.*}} <line:4:9, col:32> openmp_standalone_directive
> // CHECK-NEXT: |-OMPToClause {{.*}} <col:27, col:31>
> // CHECK-NEXT: | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: `-CapturedStmt {{.*}} <col:9>
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-target.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-target.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-target.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-target.c Wed Mar 20 09:32:36 2019
> @@ -13,7 +13,7 @@ void test() {
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: |-CapturedStmt {{.*}} <col:3>
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target.c:4:9) *const restrict'
> // CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .global_tid. 'const int'
> @@ -25,5 +25,5 @@ void test() {
> // CHECK-NEXT: |-RecordDecl {{.*}} <col:9> col:9 implicit struct definition
> // CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-NullStmt {{.*}} <line:5:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <line:5:3> openmp_structured_block
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-target.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-task.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-task.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-task.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-task.c Wed Mar 20 09:32:36 2019
> @@ -11,7 +11,7 @@ void test() {
> // CHECK-NEXT: `-OMPTaskDirective {{.*}} <line:4:9, col:17>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .part_id. 'const int *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-taskgroup.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-taskgroup.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-taskgroup.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-taskgroup.c Wed Mar 20 09:32:36 2019
> @@ -11,5 +11,5 @@ void test() {
> // CHECK-NEXT: `-OMPTaskgroupDirective {{.*}} <line:4:9, col:22>
> // CHECK-NEXT: `-CapturedStmt {{.*}} <line:5:3>
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc>
> -// CHECK-NEXT: |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-taskgroup.c:4:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-taskloop-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-taskloop-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-taskloop-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-taskloop-simd.c Wed Mar 20 09:32:36 2019
> @@ -56,7 +56,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .part_id. 'const int *const restrict'
> @@ -94,7 +94,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -150,7 +150,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -218,7 +218,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .part_id. 'const int *const restrict'
> @@ -276,7 +276,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-taskloop.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-taskloop.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-taskloop.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-taskloop.c Wed Mar 20 09:32:36 2019
> @@ -56,7 +56,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5> openmp_structured_block
> // CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:9> col:9 implicit .global_tid. 'const int'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .part_id. 'const int *const restrict'
> @@ -94,7 +94,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -150,7 +150,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -218,7 +218,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>
> +// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7> openmp_structured_block
> // CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:9> col:9 implicit .global_tid. 'const int'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .part_id. 'const int *const restrict'
> @@ -276,7 +276,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>
> +// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9> openmp_structured_block
> // CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>
> // CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-taskwait.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-taskwait.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-taskwait.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-taskwait.c Wed Mar 20 09:32:36 2019
> @@ -7,4 +7,4 @@ void test() {
> // CHECK: TranslationUnitDecl {{.*}} <<invalid sloc>> <invalid sloc>
> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-taskwait.c:3:1, line:5:1> line:3:6 test 'void ()'
> // CHECK-NEXT: `-CompoundStmt {{.*}} <col:13, line:5:1>
> -// CHECK-NEXT: `-OMPTaskwaitDirective {{.*}} <line:4:9, col:21>
> +// CHECK-NEXT: `-OMPTaskwaitDirective {{.*}} <line:4:9, col:21> openmp_standalone_directive
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-taskyield.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-taskyield.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-taskyield.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-taskyield.c Wed Mar 20 09:32:36 2019
> @@ -7,4 +7,4 @@ void test() {
> // CHECK: TranslationUnitDecl {{.*}} <<invalid sloc>> <invalid sloc>
> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-taskyield.c:3:1, line:5:1> line:3:6 test 'void ()'
> // CHECK-NEXT: `-CompoundStmt {{.*}} <col:13, line:5:1>
> -// CHECK-NEXT: `-OMPTaskyieldDirective {{.*}} <line:4:9, col:22>
> +// CHECK-NEXT: `-OMPTaskyieldDirective {{.*}} <line:4:9, col:22> openmp_standalone_directive
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c Wed Mar 20 09:32:36 2019
> @@ -40,7 +40,7 @@ void test_five(int x, int y, int z) {
> ;
> }
>
> -// CHECK:TranslationUnitDecl {{.*}} <<invalid sloc>> <invalid sloc>
> +// CHECK: TranslationUnitDecl {{.*}} <<invalid sloc>> <invalid sloc>
> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:3:1, line:8:1> line:3:6 test_one 'void (int)'
> // CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:15, col:19> col:19 used x 'int'
> // CHECK-NEXT: | `-CompoundStmt {{.*}} <col:22, line:8:1>
> @@ -51,7 +51,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:47>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:47>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:47> openmp_structured_block
> // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} <line:6:3, line:7:5>
> // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} <line:6:3, line:7:5>
> @@ -68,7 +68,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -96,7 +96,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -124,7 +124,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -152,7 +152,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -190,7 +190,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:6:23> col:23 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:5:9, col:47>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:5:9, col:47> openmp_structured_block
> // CHECK-NEXT: | | | `-CapturedStmt {{.*}} <line:6:3, line:7:5>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} <line:6:3, line:7:5>
> @@ -207,7 +207,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -235,7 +235,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -263,7 +263,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -291,7 +291,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -329,7 +329,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:47>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:47>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:47> openmp_structured_block
> // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} <line:13:3, line:15:7>
> // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} <line:13:3, line:15:7>
> @@ -346,7 +346,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -390,7 +390,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -434,7 +434,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -478,7 +478,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -533,7 +533,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:14:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:12:9, col:47>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:12:9, col:47> openmp_structured_block
> // CHECK-NEXT: | | | `-CapturedStmt {{.*}} <line:13:3, line:15:7>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} <line:13:3, line:15:7>
> @@ -550,7 +550,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -594,7 +594,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -638,7 +638,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -682,7 +682,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -735,7 +735,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:59>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:59>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:59> openmp_structured_block
> // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} <col:48, col:58>
> // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} <col:57> 'int'
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:57> 'int' 1
> @@ -755,7 +755,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -799,7 +799,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -843,7 +843,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -887,7 +887,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -942,7 +942,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:22:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:20:9, col:59>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:20:9, col:59> openmp_structured_block
> // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} <col:48, col:58>
> // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} <col:57> 'int'
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:57> 'int' 1
> @@ -962,7 +962,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1006,7 +1006,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1050,7 +1050,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1094,7 +1094,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1147,7 +1147,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:59>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:59>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:59> openmp_structured_block
> // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} <col:48, col:58>
> // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} <col:57> 'int'
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:57> 'int' 2
> @@ -1179,7 +1179,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1223,7 +1223,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1267,7 +1267,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1311,7 +1311,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1372,7 +1372,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:30:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:28:9, col:59>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:28:9, col:59> openmp_structured_block
> // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} <col:48, col:58>
> // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} <col:57> 'int'
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:57> 'int' 2
> @@ -1404,7 +1404,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1448,7 +1448,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1492,7 +1492,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1536,7 +1536,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1597,7 +1597,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | |-CapturedStmt {{.*}} <col:9, col:59>
> // CHECK-NEXT: | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:59>
> +// CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <col:9, col:59> openmp_structured_block
> // CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} <col:48, col:58>
> // CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} <col:57> 'int'
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:57> 'int' 2
> @@ -1629,7 +1629,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1689,7 +1689,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1749,7 +1749,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1809,7 +1809,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1887,7 +1887,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | `-FieldDecl {{.*}} <line:39:27> col:27 implicit 'int'
> // CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:36:9, col:59>
> +// CHECK-NEXT: | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} <line:36:9, col:59> openmp_structured_block
> // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} <col:48, col:58>
> // CHECK-NEXT: | | | `-ConstantExpr {{.*}} <col:57> 'int'
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:57> 'int' 2
> @@ -1919,7 +1919,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1979,7 +1979,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -2039,7 +2039,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -2099,7 +2099,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c Wed Mar 20 09:32:36 2019
> @@ -51,7 +51,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:42>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:42>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:42> openmp_structured_block
> // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} <line:6:3, line:7:5>
> // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} <line:6:3, line:7:5>
> @@ -68,7 +68,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -96,7 +96,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -124,7 +124,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -152,7 +152,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -190,7 +190,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:6:3> col:3 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:5:9, col:42>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:5:9, col:42> openmp_structured_block
> // CHECK-NEXT: | | | `-CapturedStmt {{.*}} <line:6:3, line:7:5>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} <line:6:3, line:7:5>
> @@ -207,7 +207,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -235,7 +235,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -263,7 +263,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -291,7 +291,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -329,7 +329,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:42>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:42>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:42> openmp_structured_block
> // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} <line:13:3, line:15:7>
> // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} <line:13:3, line:15:7>
> @@ -346,7 +346,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -390,7 +390,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -434,7 +434,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -478,7 +478,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -533,7 +533,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:14:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:12:9, col:42>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:12:9, col:42> openmp_structured_block
> // CHECK-NEXT: | | | `-CapturedStmt {{.*}} <line:13:3, line:15:7>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} <line:13:3, line:15:7>
> @@ -550,7 +550,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -594,7 +594,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -638,7 +638,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -682,7 +682,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -735,7 +735,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:54>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:54>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:54> openmp_structured_block
> // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} <col:43, col:53>
> // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} <col:52> 'int'
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:52> 'int' 1
> @@ -755,7 +755,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -799,7 +799,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -843,7 +843,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -887,7 +887,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -942,7 +942,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:22:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:20:9, col:54>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:20:9, col:54> openmp_structured_block
> // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} <col:43, col:53>
> // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} <col:52> 'int'
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:52> 'int' 1
> @@ -962,7 +962,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1006,7 +1006,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1050,7 +1050,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1094,7 +1094,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -1147,7 +1147,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:54>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:54>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:54> openmp_structured_block
> // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} <col:43, col:53>
> // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} <col:52> 'int'
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:52> 'int' 2
> @@ -1179,7 +1179,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1223,7 +1223,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1267,7 +1267,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1311,7 +1311,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1372,7 +1372,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:30:5> col:5 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:28:9, col:54>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:28:9, col:54> openmp_structured_block
> // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} <col:43, col:53>
> // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} <col:52> 'int'
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:52> 'int' 2
> @@ -1404,7 +1404,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1448,7 +1448,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1492,7 +1492,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1536,7 +1536,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit used .previous.lb. 'const unsigned long'
> @@ -1597,7 +1597,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | |-CapturedStmt {{.*}} <col:9, col:54>
> // CHECK-NEXT: | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:54>
> +// CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForDirective {{.*}} <col:9, col:54> openmp_structured_block
> // CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} <col:43, col:53>
> // CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} <col:52> 'int'
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:52> 'int' 2
> @@ -1629,7 +1629,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1689,7 +1689,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1749,7 +1749,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1809,7 +1809,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1887,7 +1887,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | `-FieldDecl {{.*}} <line:39:27> col:27 implicit 'int'
> // CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:36:9, col:54>
> +// CHECK-NEXT: | |-OMPTeamsDistributeParallelForDirective {{.*}} <line:36:9, col:54> openmp_structured_block
> // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} <col:43, col:53>
> // CHECK-NEXT: | | | `-ConstantExpr {{.*}} <col:52> 'int'
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:52> 'int' 2
> @@ -1919,7 +1919,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1979,7 +1979,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -2039,7 +2039,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -2099,7 +2099,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-simd.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-simd.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-simd.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-teams-distribute-simd.c Wed Mar 20 09:32:36 2019
> @@ -51,7 +51,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:34>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:34>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:34> openmp_structured_block
> // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} <line:6:3, line:7:5>
> // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} <line:6:3, line:7:5>
> @@ -66,7 +66,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-simd.c:5:9) *const restrict'
> @@ -90,7 +90,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-simd.c:5:9) *const restrict'
> @@ -126,7 +126,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:6:23> col:23 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} <line:5:9, col:34>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} <line:5:9, col:34> openmp_structured_block
> // CHECK-NEXT: | | | `-CapturedStmt {{.*}} <line:6:3, line:7:5>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | |-ForStmt {{.*}} <line:6:3, line:7:5>
> @@ -141,7 +141,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-simd.c:5:9) *const restrict'
> @@ -165,7 +165,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-simd.c:5:9) *const restrict'
> @@ -201,7 +201,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:34>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:34>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:34> openmp_structured_block
> // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} <line:13:3, line:15:7>
> // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} <line:13:3, line:15:7>
> @@ -216,7 +216,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -256,7 +256,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -309,7 +309,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:14:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} <line:12:9, col:34>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} <line:12:9, col:34> openmp_structured_block
> // CHECK-NEXT: | | | `-CapturedStmt {{.*}} <line:13:3, line:15:7>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | |-ForStmt {{.*}} <line:13:3, line:15:7>
> @@ -324,7 +324,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -364,7 +364,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -415,7 +415,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:46>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:46>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:46> openmp_structured_block
> // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} <col:35, col:45>
> // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} <col:44> 'int'
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:44> 'int' 1
> @@ -433,7 +433,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -473,7 +473,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -526,7 +526,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:22:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} <line:20:9, col:46>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} <line:20:9, col:46> openmp_structured_block
> // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} <col:35, col:45>
> // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} <col:44> 'int'
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:44> 'int' 1
> @@ -544,7 +544,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -584,7 +584,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -635,7 +635,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:46>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:46>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:46> openmp_structured_block
> // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} <col:35, col:45>
> // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} <col:44> 'int'
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:44> 'int' 2
> @@ -665,7 +665,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-simd.c:28:9) *const restrict'
> @@ -705,7 +705,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-simd.c:28:9) *const restrict'
> @@ -764,7 +764,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:30:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} <line:28:9, col:46>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} <line:28:9, col:46> openmp_structured_block
> // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} <col:35, col:45>
> // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} <col:44> 'int'
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:44> 'int' 2
> @@ -794,7 +794,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-simd.c:28:9) *const restrict'
> @@ -834,7 +834,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute-simd.c:28:9) *const restrict'
> @@ -893,7 +893,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | |-CapturedStmt {{.*}} <col:9, col:46>
> // CHECK-NEXT: | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:46>
> +// CHECK-NEXT: | | | |-OMPTeamsDistributeSimdDirective {{.*}} <col:9, col:46> openmp_structured_block
> // CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} <col:35, col:45>
> // CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} <col:44> 'int'
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:44> 'int' 2
> @@ -923,7 +923,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -979,7 +979,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1055,7 +1055,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | `-FieldDecl {{.*}} <line:39:27> col:27 implicit 'int'
> // CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-OMPTeamsDistributeSimdDirective {{.*}} <line:36:9, col:46>
> +// CHECK-NEXT: | |-OMPTeamsDistributeSimdDirective {{.*}} <line:36:9, col:46> openmp_structured_block
> // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} <col:35, col:45>
> // CHECK-NEXT: | | | `-ConstantExpr {{.*}} <col:44> 'int'
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:44> 'int' 2
> @@ -1085,7 +1085,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1141,7 +1141,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-teams-distribute.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-teams-distribute.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-teams-distribute.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-teams-distribute.c Wed Mar 20 09:32:36 2019
> @@ -51,7 +51,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:29>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:29>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:29> openmp_structured_block
> // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} <line:6:3, line:7:5>
> // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} <line:6:3, line:7:5>
> @@ -66,7 +66,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute.c:5:9) *const restrict'
> @@ -90,7 +90,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute.c:5:9) *const restrict'
> @@ -126,7 +126,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:6:3> col:3 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} <line:5:9, col:29>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} <line:5:9, col:29> openmp_structured_block
> // CHECK-NEXT: | | | `-CapturedStmt {{.*}} <line:6:3, line:7:5>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | |-ForStmt {{.*}} <line:6:3, line:7:5>
> @@ -141,7 +141,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute.c:5:9) *const restrict'
> @@ -165,7 +165,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:7:5>
> +// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:7:5> openmp_structured_block
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute.c:5:9) *const restrict'
> @@ -201,7 +201,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:29>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:29>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:29> openmp_structured_block
> // CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} <line:13:3, line:15:7>
> // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} <line:13:3, line:15:7>
> @@ -216,7 +216,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -256,7 +256,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -309,7 +309,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:14:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} <line:12:9, col:29>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} <line:12:9, col:29> openmp_structured_block
> // CHECK-NEXT: | | | `-CapturedStmt {{.*}} <line:13:3, line:15:7>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | | | |-ForStmt {{.*}} <line:13:3, line:15:7>
> @@ -324,7 +324,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -364,7 +364,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:14:5, line:15:7>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:14:5, line:15:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:14:10, col:19>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -415,7 +415,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:41>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:41>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:41> openmp_structured_block
> // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} <col:30, col:40>
> // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} <col:39> 'int'
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:39> 'int' 1
> @@ -433,7 +433,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -473,7 +473,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -526,7 +526,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:22:25> col:25 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} <line:20:9, col:41>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} <line:20:9, col:41> openmp_structured_block
> // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} <col:30, col:40>
> // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} <col:39> 'int'
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:39> 'int' 1
> @@ -544,7 +544,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -584,7 +584,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:22:5, line:23:7>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:22:5, line:23:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:22:10, col:19>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0
> @@ -635,7 +635,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-CapturedStmt {{.*}} <col:9, col:41>
> // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:41>
> +// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:41> openmp_structured_block
> // CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} <col:30, col:40>
> // CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} <col:39> 'int'
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:39> 'int' 2
> @@ -665,7 +665,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute.c:28:9) *const restrict'
> @@ -705,7 +705,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute.c:28:9) *const restrict'
> @@ -764,7 +764,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | `-FieldDecl {{.*}} <line:30:5> col:5 implicit 'int'
> // CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} <line:28:9, col:41>
> +// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} <line:28:9, col:41> openmp_structured_block
> // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} <col:30, col:40>
> // CHECK-NEXT: | | | | `-ConstantExpr {{.*}} <col:39> 'int'
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:39> 'int' 2
> @@ -794,7 +794,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute.c:28:9) *const restrict'
> @@ -834,7 +834,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:31:7>
> +// CHECK-NEXT: | | | | `-NullStmt {{.*}} <line:31:7> openmp_structured_block
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <line:28:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams-distribute.c:28:9) *const restrict'
> @@ -893,7 +893,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | |-CapturedStmt {{.*}} <col:9, col:41>
> // CHECK-NEXT: | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:41>
> +// CHECK-NEXT: | | | |-OMPTeamsDistributeDirective {{.*}} <col:9, col:41> openmp_structured_block
> // CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} <col:30, col:40>
> // CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} <col:39> 'int'
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:39> 'int' 2
> @@ -923,7 +923,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -979,7 +979,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1055,7 +1055,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | `-FieldDecl {{.*}} <line:39:27> col:27 implicit 'int'
> // CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit 9
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-OMPTeamsDistributeDirective {{.*}} <line:36:9, col:41>
> +// CHECK-NEXT: | |-OMPTeamsDistributeDirective {{.*}} <line:36:9, col:41> openmp_structured_block
> // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} <col:30, col:40>
> // CHECK-NEXT: | | | `-ConstantExpr {{.*}} <col:39> 'int'
> // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:39> 'int' 2
> @@ -1085,7 +1085,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
> @@ -1141,7 +1141,7 @@ void test_five(int x, int y, int z) {
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'
> // CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'
> // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'
> -// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:39:7, line:40:9>
> +// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:39:7, line:40:9> openmp_structured_block
> // CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:39:12, col:21>
> // CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit
> // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0
>
> Modified: cfe/trunk/test/AST/ast-dump-openmp-teams.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-openmp-teams.c?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/ast-dump-openmp-teams.c (original)
> +++ cfe/trunk/test/AST/ast-dump-openmp-teams.c Wed Mar 20 09:32:36 2019
> @@ -14,10 +14,10 @@ void test() {
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: |-CapturedStmt {{.*}} <col:9, col:18>
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-OMPTeamsDirective {{.*}} <col:9, col:18>
> +// CHECK-NEXT: | |-OMPTeamsDirective {{.*}} <col:9, col:18> openmp_structured_block
> // CHECK-NEXT: | | `-CapturedStmt {{.*}} <line:6:3>
> // CHECK-NEXT: | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams.c:5:9) *const restrict'
> @@ -25,7 +25,7 @@ void test() {
> // CHECK-NEXT: | |-RecordDecl {{.*}} <line:5:9> col:9 implicit struct definition
> // CHECK-NEXT: | | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-NullStmt {{.*}} <line:6:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <line:6:3> openmp_structured_block
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams.c:5:9) *const restrict'
> @@ -39,10 +39,10 @@ void test() {
> // CHECK-NEXT: |-RecordDecl {{.*}} <col:9> col:9 implicit struct definition
> // CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-OMPTeamsDirective {{.*}} <line:5:9, col:18>
> +// CHECK-NEXT: |-OMPTeamsDirective {{.*}} <line:5:9, col:18> openmp_structured_block
> // CHECK-NEXT: | `-CapturedStmt {{.*}} <line:6:3>
> // CHECK-NEXT: | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: | |-NullStmt {{.*}} <col:3>
> +// CHECK-NEXT: | |-NullStmt {{.*}} <col:3> openmp_structured_block
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams.c:5:9) *const restrict'
> @@ -50,7 +50,7 @@ void test() {
> // CHECK-NEXT: |-RecordDecl {{.*}} <line:5:9> col:9 implicit struct definition
> // CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit
> // CHECK-NEXT: `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow
> -// CHECK-NEXT: |-NullStmt {{.*}} <line:6:3>
> +// CHECK-NEXT: |-NullStmt {{.*}} <line:6:3> openmp_structured_block
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <line:5:9> col:9 implicit .global_tid. 'const int *const restrict'
> // CHECK-NEXT: |-ImplicitParamDecl {{.*}} <col:9> col:9 implicit .bound_tid. 'const int *const restrict'
> // CHECK-NEXT: `-ImplicitParamDecl {{.*}} <col:9> col:9 implicit __context 'struct (anonymous at {{.*}}ast-dump-openmp-teams.c:5:9) *const restrict'
>
> Modified: cfe/trunk/test/AST/dump.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/dump.cpp?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/test/AST/dump.cpp (original)
> +++ cfe/trunk/test/AST/dump.cpp Wed Mar 20 09:32:36 2019
> @@ -1,5 +1,5 @@
> -// RUN: %clang_cc1 -verify -fopenmp -ast-dump %s | FileCheck %s
> -// RUN: %clang_cc1 -verify -fopenmp-simd -ast-dump %s | FileCheck %s
> +// RUN: %clang_cc1 -verify -fopenmp -ast-dump %s | FileCheck %s -implicit-check-not=openmp_structured_block
> +// RUN: %clang_cc1 -verify -fopenmp-simd -ast-dump %s | FileCheck %s -implicit-check-not=openmp_structured_block
> // expected-no-diagnostics
>
> int ga, gb;
> @@ -63,7 +63,7 @@ struct S {
> // CHECK-NEXT: | `-CapturedStmt {{.+}} <line:[[@LINE-15]]:5, line:[[@LINE-14]]:9>
> // CHECK-NEXT: | |-CapturedDecl {{.+}} <<invalid sloc>> <invalid sloc> nothrow
> // CHECK-NEXT: | | |-ForStmt {{.+}} <line:[[@LINE-17]]:5, line:[[@LINE-16]]:9>
> -// CHECK: | | | `-UnaryOperator {{.+}} <line:[[@LINE-17]]:7, col:9> 'int' lvalue prefix '++'
> +// CHECK: | | | `-UnaryOperator {{.+}} <line:[[@LINE-17]]:7, col:9> openmp_structured_block 'int' lvalue prefix '++'
> // CHECK-NEXT: | | | `-DeclRefExpr {{.+}} <col:9> 'int' lvalue OMPCapturedExpr {{.+}} 'a' 'int &'
>
> #pragma omp declare simd
>
> Added: cfe/trunk/test/PCH/stmt-openmp_structured_block-bit.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/stmt-openmp_structured_block-bit.cpp?rev=356570&view=auto
> ==============================================================================
> --- cfe/trunk/test/PCH/stmt-openmp_structured_block-bit.cpp (added)
> +++ cfe/trunk/test/PCH/stmt-openmp_structured_block-bit.cpp Wed Mar 20 09:32:36 2019
> @@ -0,0 +1,24 @@
> +// Test this without pch.
> +// RUN: %clang_cc1 -std=c++11 -fopenmp -fsyntax-only -verify %s -ast-dump-all | FileCheck %s -implicit-check-not=openmp_structured_block
> +
> +// Test with pch. Use '-ast-dump' to force deserialization of function bodies.
> +// RUN: %clang_cc1 -std=c++11 -fopenmp -emit-pch -o %t %s
> +// RUN: echo "// expected-no-diagnostics" | %clang_cc1 -x c++ -std=c++11 -include-pch %t -fopenmp -fsyntax-only -verify - -ast-dump-all | FileCheck %s -implicit-check-not=openmp_structured_block
> +
> +void test() {
> +#pragma omp parallel
> + ;
> +}
> +
> +// expected-no-diagnostics
> +
> +// CHECK: TranslationUnitDecl 0x{{.*}} <<invalid sloc>> <invalid sloc>
> +// CHECK: `-FunctionDecl 0x{{.*}} <{{.*}}stmt-openmp_structured_block-bit.cpp:8:1, line:11:1> line:8:6 {{(test|imported test)}} 'void ()'
> +// CHECK-NEXT: `-CompoundStmt 0x{{.*}} <col:13, line:11:1>
> +// CHECK-NEXT: `-OMPParallelDirective 0x{{.*}} <line:9:9, col:21>
> +// CHECK-NEXT: `-CapturedStmt 0x{{.*}} <line:10:3>
> +// CHECK-NEXT: `-CapturedDecl 0x{{.*}} <<invalid sloc>> <invalid sloc> {{(nothrow|imported <undeserialized declarations> nothrow)}}
> +// CHECK-NEXT: |-NullStmt 0x{{.*}} <col:3> openmp_structured_block
> +// CHECK-NEXT: |-ImplicitParamDecl 0x{{.*}} <line:9:9> col:9 {{(implicit|imported implicit)}} .global_tid. 'const int *const __restrict'
> +// CHECK-NEXT: |-ImplicitParamDecl 0x{{.*}} <col:9> col:9 {{(implicit|imported implicit)}} .bound_tid. 'const int *const __restrict'
> +// CHECK-NEXT: `-ImplicitParamDecl 0x{{.*}} <col:9> col:9 {{(implicit|imported implicit)}} __context '(anonymous struct at {{.*}}stmt-openmp_structured_block-bit.cpp:9:9) *const __restrict'
>
> Added: cfe/trunk/unittests/AST/ASTPrint.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/ASTPrint.h?rev=356570&view=auto
> ==============================================================================
> --- cfe/trunk/unittests/AST/ASTPrint.h (added)
> +++ cfe/trunk/unittests/AST/ASTPrint.h Wed Mar 20 09:32:36 2019
> @@ -0,0 +1,92 @@
> +//===- unittests/AST/ASTPrint.h ------------------------------------------===//
> +//
> +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
> +// See https://llvm.org/LICENSE.txt for license information.
> +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
> +//
> +//===----------------------------------------------------------------------===//
> +//
> +// Helpers to simplify testing of printing of AST constructs provided in the/
> +// form of the source code.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +#include "clang/AST/ASTContext.h"
> +#include "clang/ASTMatchers/ASTMatchFinder.h"
> +#include "clang/Tooling/Tooling.h"
> +#include "llvm/ADT/SmallString.h"
> +#include "gtest/gtest.h"
> +
> +namespace clang {
> +
> +using PolicyAdjusterType =
> + Optional<llvm::function_ref<void(PrintingPolicy &Policy)>>;
> +
> +static void PrintStmt(raw_ostream &Out, const ASTContext *Context,
> + const Stmt *S, PolicyAdjusterType PolicyAdjuster) {
> + assert(S != nullptr && "Expected non-null Stmt");
> + PrintingPolicy Policy = Context->getPrintingPolicy();
> + if (PolicyAdjuster)
> + (*PolicyAdjuster)(Policy);
> + S->printPretty(Out, /*Helper*/ nullptr, Policy);
> +}
> +
> +class PrintMatch : public ast_matchers::MatchFinder::MatchCallback {
> + SmallString<1024> Printed;
> + unsigned NumFoundStmts;
> + PolicyAdjusterType PolicyAdjuster;
> +
> +public:
> + PrintMatch(PolicyAdjusterType PolicyAdjuster)
> + : NumFoundStmts(0), PolicyAdjuster(PolicyAdjuster) {}
> +
> + void run(const ast_matchers::MatchFinder::MatchResult &Result) override {
> + const Stmt *S = Result.Nodes.getNodeAs<Stmt>("id");
> + if (!S)
> + return;
> + NumFoundStmts++;
> + if (NumFoundStmts > 1)
> + return;
> +
> + llvm::raw_svector_ostream Out(Printed);
> + PrintStmt(Out, Result.Context, S, PolicyAdjuster);
> + }
> +
> + StringRef getPrinted() const { return Printed; }
> +
> + unsigned getNumFoundStmts() const { return NumFoundStmts; }
> +};
> +
> +template <typename T>
> +::testing::AssertionResult
> +PrintedStmtMatches(StringRef Code, const std::vector<std::string> &Args,
> + const T &NodeMatch, StringRef ExpectedPrinted,
> + PolicyAdjusterType PolicyAdjuster = None) {
> +
> + PrintMatch Printer(PolicyAdjuster);
> + ast_matchers::MatchFinder Finder;
> + Finder.addMatcher(NodeMatch, &Printer);
> + std::unique_ptr<tooling::FrontendActionFactory> Factory(
> + tooling::newFrontendActionFactory(&Finder));
> +
> + if (!tooling::runToolOnCodeWithArgs(Factory->create(), Code, Args))
> + return testing::AssertionFailure()
> + << "Parsing error in \"" << Code.str() << "\"";
> +
> + if (Printer.getNumFoundStmts() == 0)
> + return testing::AssertionFailure() << "Matcher didn't find any statements";
> +
> + if (Printer.getNumFoundStmts() > 1)
> + return testing::AssertionFailure()
> + << "Matcher should match only one statement (found "
> + << Printer.getNumFoundStmts() << ")";
> +
> + if (Printer.getPrinted() != ExpectedPrinted)
> + return ::testing::AssertionFailure()
> + << "Expected \"" << ExpectedPrinted.str() << "\", got \""
> + << Printer.getPrinted().str() << "\"";
> +
> + return ::testing::AssertionSuccess();
> +}
> +
> +} // namespace clang
>
> Modified: cfe/trunk/unittests/AST/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/CMakeLists.txt?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/unittests/AST/CMakeLists.txt (original)
> +++ cfe/trunk/unittests/AST/CMakeLists.txt Wed Mar 20 09:32:36 2019
> @@ -21,6 +21,7 @@ add_clang_unittest(ASTTests
> ExternalASTSourceTest.cpp
> Language.cpp
> NamedDeclPrinterTest.cpp
> + OMPStructuredBlockTest.cpp
> SourceLocationTest.cpp
> StmtPrinterTest.cpp
> StructuralEquivalenceTest.cpp
>
> Added: cfe/trunk/unittests/AST/OMPStructuredBlockTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/OMPStructuredBlockTest.cpp?rev=356570&view=auto
> ==============================================================================
> --- cfe/trunk/unittests/AST/OMPStructuredBlockTest.cpp (added)
> +++ cfe/trunk/unittests/AST/OMPStructuredBlockTest.cpp Wed Mar 20 09:32:36 2019
> @@ -0,0 +1,547 @@
> +//===- unittests/AST/OMPStructuredBlockTest.cpp ---------------------------===//
> +//
> +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
> +// See https://llvm.org/LICENSE.txt for license information.
> +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
> +//
> +//===----------------------------------------------------------------------===//
> +//
> +// Fine-grained tests for IsOMPStructuredBlock bit of Stmt.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +#include "ASTPrint.h"
> +#include "clang/AST/ASTContext.h"
> +#include "clang/AST/StmtOpenMP.h"
> +#include "clang/ASTMatchers/ASTMatchFinder.h"
> +#include "clang/Tooling/Tooling.h"
> +#include "llvm/ADT/SmallString.h"
> +#include "gmock/gmock.h"
> +#include "gtest/gtest.h"
> +
> +using namespace clang;
> +using namespace ast_matchers;
> +using namespace tooling;
> +
> +namespace {
> +
> +AST_MATCHER(Stmt, isOMPStructuredBlock) { return Node.isOMPStructuredBlock(); }
> +
> +const ast_matchers::internal::VariadicDynCastAllOfMatcher<
> + Stmt, OMPExecutableDirective>
> + ompExecutableDirective;
> +
> +const ast_matchers::internal::VariadicDynCastAllOfMatcher<
> + OMPExecutableDirective, OMPTargetDirective>
> + ompTargetDirective;
> +
> +StatementMatcher OMPInnermostStructuredBlockMatcher() {
> + return stmt(isOMPStructuredBlock(),
> + unless(hasDescendant(stmt(isOMPStructuredBlock()))))
> + .bind("id");
> +}
> +
> +AST_MATCHER(OMPExecutableDirective, isStandaloneDirective) {
> + return Node.isStandaloneDirective();
> +}
> +
> +StatementMatcher OMPStandaloneDirectiveMatcher() {
> + return stmt(ompExecutableDirective(isStandaloneDirective())).bind("id");
> +}
> +
> +template <typename T>
> +::testing::AssertionResult
> +PrintedOMPStmtMatches(StringRef Code, const T &NodeMatch,
> + StringRef ExpectedPrinted,
> + PolicyAdjusterType PolicyAdjuster = None) {
> + std::vector<std::string> Args = {
> + "-fopenmp",
> + };
> + return PrintedStmtMatches(Code, Args, NodeMatch, ExpectedPrinted,
> + PolicyAdjuster);
> +}
> +
> +static testing::AssertionResult NoMatches(StringRef Code,
> + const StatementMatcher &StmtMatch) {
> + PrintMatch Printer((PolicyAdjusterType()));
> + MatchFinder Finder;
> + Finder.addMatcher(StmtMatch, &Printer);
> + std::unique_ptr<FrontendActionFactory> Factory(
> + newFrontendActionFactory(&Finder));
> + if (!runToolOnCode(Factory->create(), Code))
> + return testing::AssertionFailure()
> + << "Parsing error in \"" << Code.str() << "\"";
> + if (Printer.getNumFoundStmts() == 0)
> + return testing::AssertionSuccess();
> + return testing::AssertionFailure()
> + << "Matcher should match only zero statements (found "
> + << Printer.getNumFoundStmts() << ")";
> +}
> +
> +} // unnamed namespace
> +
> +TEST(OMPStructuredBlock, TestAtomic) {
> + const char *Source =
> + R"(
> +void test(int i) {
> +#pragma omp atomic
> +++i;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), "++i"));
> +}
> +
> +TEST(OMPStructuredBlock, TestBarrier) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp barrier
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp barrier\n"));
> + ASSERT_TRUE(NoMatches(Source, OMPInnermostStructuredBlockMatcher()));
> +}
> +
> +TEST(OMPStructuredBlock, TestCancel) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp parallel
> +{
> + #pragma omp cancel parallel
> +}
> +})";
> + ASSERT_TRUE(
> + PrintedOMPStmtMatches(Source, OMPInnermostStructuredBlockMatcher(), R"({
> + #pragma omp cancel parallel
> +}
> +)"));
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp cancel parallel\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestCancellationPoint) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp parallel
> +{
> +#pragma omp cancellation point parallel
> +}
> +})";
> + ASSERT_TRUE(
> + PrintedOMPStmtMatches(Source, OMPInnermostStructuredBlockMatcher(), R"({
> + #pragma omp cancellation point parallel
> +}
> +)"));
> + ASSERT_TRUE(
> + PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp cancellation point parallel\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestCritical) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp critical
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +//----------------------------------------------------------------------------//
> +// Loop tests
> +//----------------------------------------------------------------------------//
> +
> +class OMPStructuredBlockLoop : public ::testing::TestWithParam<const char *> {};
> +
> +TEST_P(OMPStructuredBlockLoop, TestDirective0) {
> + const std::string Source =
> + R"(
> +void test(int x) {
> +#pragma omp )" +
> + std::string(GetParam()) + R"(
> +for (int i = 0; i < x; i++)
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST_P(OMPStructuredBlockLoop, TestDirective1) {
> + const std::string Source =
> + R"(
> +void test(int x, int y) {
> +#pragma omp )" +
> + std::string(GetParam()) + R"(
> +for (int i = 0; i < x; i++)
> +for (int i = 0; i < y; i++)
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source,
> + OMPInnermostStructuredBlockMatcher(),
> + "for (int i = 0; i < y; i++)\n ;\n"));
> +}
> +
> +TEST_P(OMPStructuredBlockLoop, TestDirectiveCollapse1) {
> + const std::string Source =
> + R"(
> +void test(int x, int y) {
> +#pragma omp )" +
> + std::string(GetParam()) + R"( collapse(1)
> +for (int i = 0; i < x; i++)
> +for (int i = 0; i < y; i++)
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source,
> + OMPInnermostStructuredBlockMatcher(),
> + "for (int i = 0; i < y; i++)\n ;\n"));
> +}
> +
> +TEST_P(OMPStructuredBlockLoop, TestDirectiveCollapse2) {
> + const std::string Source =
> + R"(
> +void test(int x, int y) {
> +#pragma omp )" +
> + std::string(GetParam()) + R"( collapse(2)
> +for (int i = 0; i < x; i++)
> +for (int i = 0; i < y; i++)
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST_P(OMPStructuredBlockLoop, TestDirectiveCollapse22) {
> + const std::string Source =
> + R"(
> +void test(int x, int y, int z) {
> +#pragma omp )" +
> + std::string(GetParam()) + R"( collapse(2)
> +for (int i = 0; i < x; i++)
> +for (int i = 0; i < y; i++)
> +for (int i = 0; i < z; i++)
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source,
> + OMPInnermostStructuredBlockMatcher(),
> + "for (int i = 0; i < z; i++)\n ;\n"));
> +}
> +
> +INSTANTIATE_TEST_CASE_P(
> + OMPStructuredBlockLoopDirectives, OMPStructuredBlockLoop,
> + ::testing::Values("simd", "for", "for simd", "parallel for",
> + "parallel for simd", "target parallel for", "taskloop",
> + "taskloop simd", "distribute", "distribute parallel for",
> + "distribute parallel for simd", "distribute simd",
> + "target parallel for simd", "target simd",
> + "target\n#pragma omp teams distribute",
> + "target\n#pragma omp teams distribute simd",
> + "target\n#pragma omp teams distribute parallel for simd",
> + "target\n#pragma omp teams distribute parallel for",
> + "target teams distribute",
> + "target teams distribute parallel for",
> + "target teams distribute parallel for simd",
> + "target teams distribute simd"), );
> +
> +//----------------------------------------------------------------------------//
> +// End Loop tests
> +//----------------------------------------------------------------------------//
> +
> +TEST(OMPStructuredBlock, TestFlush) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp flush
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp flush\n"));
> + ASSERT_TRUE(NoMatches(Source, OMPInnermostStructuredBlockMatcher()));
> +}
> +
> +TEST(OMPStructuredBlock, TestMaster) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp master
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestOrdered0) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp ordered
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestOrdered1) {
> + const char *Source =
> + R"(
> +void test(int x) {
> +#pragma omp for ordered
> +for (int i = 0; i < x; i++)
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestOrdered2) {
> + const char *Source =
> + R"(
> +void test(int x) {
> +#pragma omp for ordered(1)
> +for (int i = 0; i < x; i++) {
> +#pragma omp ordered depend(source)
> +}
> +})";
> + ASSERT_TRUE(
> + PrintedOMPStmtMatches(Source, OMPInnermostStructuredBlockMatcher(),
> + "{\n #pragma omp ordered depend(source)\n}\n"));
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp ordered depend(source)\n"));
> +}
> +
> +TEST(OMPStructuredBlock, DISABLED_TestParallelMaster0XFAIL) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp parallel master
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, DISABLED_TestParallelMaster1XFAIL) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp parallel master
> +{ ; }
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), "{\n ;\n}\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestParallelSections) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp parallel sections
> +{ ; }
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), "{\n ;\n}\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestParallelDirective) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp parallel
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +const ast_matchers::internal::VariadicDynCastAllOfMatcher<
> + OMPExecutableDirective, OMPSectionsDirective>
> + ompSectionsDirective;
> +
> +const ast_matchers::internal::VariadicDynCastAllOfMatcher<
> + OMPExecutableDirective, OMPSectionDirective>
> + ompSectionDirective;
> +
> +StatementMatcher OMPSectionsDirectiveMatcher() {
> + return stmt(
> + isOMPStructuredBlock(),
> + hasAncestor(ompExecutableDirective(ompSectionsDirective())),
> + unless(hasAncestor(ompExecutableDirective(ompSectionDirective()))))
> + .bind("id");
> +}
> +
> +TEST(OMPStructuredBlock, TestSectionDirective) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp sections
> +{
> +#pragma omp section
> +;
> +}
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source, OMPSectionsDirectiveMatcher(),
> + "{\n"
> + " #pragma omp section\n"
> + " ;\n"
> + "}\n"));
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestSections) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp sections
> +{ ; }
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), "{\n ;\n}\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestSingleDirective) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp single
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TesTargetDataDirective) {
> + const char *Source =
> + R"(
> +void test(int x) {
> +#pragma omp target data map(x)
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TesTargetEnterDataDirective) {
> + const char *Source =
> + R"(
> +void test(int x) {
> +#pragma omp target enter data map(to : x)
> +})";
> + ASSERT_TRUE(
> + PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp target enter data map(to: x)\n"));
> + ASSERT_TRUE(NoMatches(Source, OMPInnermostStructuredBlockMatcher()));
> +}
> +
> +TEST(OMPStructuredBlock, TesTargetExitDataDirective) {
> + const char *Source =
> + R"(
> +void test(int x) {
> +#pragma omp target exit data map(from : x)
> +})";
> + ASSERT_TRUE(
> + PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp target exit data map(from: x)\n"));
> + ASSERT_TRUE(NoMatches(Source, OMPInnermostStructuredBlockMatcher()));
> +}
> +
> +TEST(OMPStructuredBlock, TestTargetParallelDirective) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp target parallel
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestTargetTeams) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp target teams
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestTargetUpdateDirective) {
> + const char *Source =
> + R"(
> +void test(int x) {
> +#pragma omp target update to(x)
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp target update to(x)\n"));
> + ASSERT_TRUE(NoMatches(Source, OMPInnermostStructuredBlockMatcher()));
> +}
> +
> +TEST(OMPStructuredBlock, TestTarget) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp target
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestTask) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp task
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestTaskgroup) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp taskgroup
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
> +
> +TEST(OMPStructuredBlock, TestTaskwaitDirective) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp taskwait
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp taskwait\n"));
> + ASSERT_TRUE(NoMatches(Source, OMPInnermostStructuredBlockMatcher()));
> +}
> +
> +TEST(OMPStructuredBlock, TestTaskyieldDirective) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp taskyield
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(Source, OMPStandaloneDirectiveMatcher(),
> + "#pragma omp taskyield\n"));
> + ASSERT_TRUE(NoMatches(Source, OMPInnermostStructuredBlockMatcher()));
> +}
> +
> +TEST(OMPStructuredBlock, TestTeams) {
> + const char *Source =
> + R"(
> +void test() {
> +#pragma omp target
> +#pragma omp teams
> +;
> +})";
> + ASSERT_TRUE(PrintedOMPStmtMatches(
> + Source, OMPInnermostStructuredBlockMatcher(), ";\n"));
> +}
>
> Modified: cfe/trunk/unittests/AST/StmtPrinterTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/AST/StmtPrinterTest.cpp?rev=356570&r1=356569&r2=356570&view=diff
> ==============================================================================
> --- cfe/trunk/unittests/AST/StmtPrinterTest.cpp (original)
> +++ cfe/trunk/unittests/AST/StmtPrinterTest.cpp Wed Mar 20 09:32:36 2019
> @@ -18,6 +18,7 @@
> //
> //===----------------------------------------------------------------------===//
>
> +#include "ASTPrint.h"
> #include "clang/AST/ASTContext.h"
> #include "clang/ASTMatchers/ASTMatchFinder.h"
> #include "clang/Tooling/Tooling.h"
> @@ -30,81 +31,6 @@ using namespace tooling;
>
> namespace {
>
> -using PolicyAdjusterType =
> - Optional<llvm::function_ref<void(PrintingPolicy &Policy)>>;
> -
> -void PrintStmt(raw_ostream &Out, const ASTContext *Context, const Stmt *S,
> - PolicyAdjusterType PolicyAdjuster) {
> - assert(S != nullptr && "Expected non-null Stmt");
> - PrintingPolicy Policy = Context->getPrintingPolicy();
> - if (PolicyAdjuster)
> - (*PolicyAdjuster)(Policy);
> - S->printPretty(Out, /*Helper*/ nullptr, Policy);
> -}
> -
> -class PrintMatch : public MatchFinder::MatchCallback {
> - SmallString<1024> Printed;
> - unsigned NumFoundStmts;
> - PolicyAdjusterType PolicyAdjuster;
> -
> -public:
> - PrintMatch(PolicyAdjusterType PolicyAdjuster)
> - : NumFoundStmts(0), PolicyAdjuster(PolicyAdjuster) {}
> -
> - void run(const MatchFinder::MatchResult &Result) override {
> - const Stmt *S = Result.Nodes.getNodeAs<Stmt>("id");
> - if (!S)
> - return;
> - NumFoundStmts++;
> - if (NumFoundStmts > 1)
> - return;
> -
> - llvm::raw_svector_ostream Out(Printed);
> - PrintStmt(Out, Result.Context, S, PolicyAdjuster);
> - }
> -
> - StringRef getPrinted() const {
> - return Printed;
> - }
> -
> - unsigned getNumFoundStmts() const {
> - return NumFoundStmts;
> - }
> -};
> -
> -template <typename T>
> -::testing::AssertionResult
> -PrintedStmtMatches(StringRef Code, const std::vector<std::string> &Args,
> - const T &NodeMatch, StringRef ExpectedPrinted,
> - PolicyAdjusterType PolicyAdjuster = None) {
> -
> - PrintMatch Printer(PolicyAdjuster);
> - MatchFinder Finder;
> - Finder.addMatcher(NodeMatch, &Printer);
> - std::unique_ptr<FrontendActionFactory> Factory(
> - newFrontendActionFactory(&Finder));
> -
> - if (!runToolOnCodeWithArgs(Factory->create(), Code, Args))
> - return testing::AssertionFailure()
> - << "Parsing error in \"" << Code.str() << "\"";
> -
> - if (Printer.getNumFoundStmts() == 0)
> - return testing::AssertionFailure()
> - << "Matcher didn't find any statements";
> -
> - if (Printer.getNumFoundStmts() > 1)
> - return testing::AssertionFailure()
> - << "Matcher should match only one statement "
> - "(found " << Printer.getNumFoundStmts() << ")";
> -
> - if (Printer.getPrinted() != ExpectedPrinted)
> - return ::testing::AssertionFailure()
> - << "Expected \"" << ExpectedPrinted.str() << "\", "
> - "got \"" << Printer.getPrinted().str() << "\"";
> -
> - return ::testing::AssertionSuccess();
> -}
> -
> enum class StdVer { CXX98, CXX11, CXX14, CXX17, CXX2a };
>
> DeclarationMatcher FunctionBodyMatcher(StringRef ContainingFunction) {
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list