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:44:02 PDT 2019


On Fri, 22 Mar 2019 at 14:41, Roman Lebedev <lebedev.ri at gmail.com> wrote:
>
> On Fri, Mar 22, 2019 at 4:22 PM Roman Lebedev <lebedev.ri at gmail.com> wrote:
> >
> > On Fri, Mar 22, 2019 at 4:17 PM Diana Picus <diana.picus at linaro.org> wrote:
> > >
> > > 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.
> > Thanks for bringing this up to my attention.
> >
> > > Could you please have a look?
> > I have an idea, i'll try a quick fix soon..
> Committed r356749, let's see if that does it or not..
> If that doesn't do it, i'm not sure what is going on.

Thanks for the quick fix, I'll keep an eye on them!

> > > Thanks,
> > > Diana
> > Roman.
> >
> > > 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