From d90443b1d93d50340f8af1f50c771e34ca2d0f90 Mon Sep 17 00:00:00 2001 From: Valentin Clement Date: Tue, 23 Jun 2020 09:29:50 -0400 Subject: [PATCH] [openmp] Base of tablegen generated OpenMP common declaration Summary: As discussed previously when landing patch for OpenMP in Flang, the idea is to share common part of the OpenMP declaration between the different Frontend. While doing this it was thought that moving to tablegen instead of Macros will also give a cleaner and more powerful way of generating these declaration. This first part of a future series of patches is setting up the base .td file for DirectiveLanguage as well as the OpenMP version of it. The base file is meant to be used by other directive language such as OpenACC. In this first patch, the Directive and Clause enums are generated with tablegen instead of the macros on OMPConstants.h. The next pacth will extend this to other enum and move the Flang frontend to use it. Reviewers: jdoerfert, DavidTruby, fghanim, ABataev, jdenny, hfinkel, jhuber6, kiranchandramohan, kiranktp Reviewed By: jdoerfert, jdenny Subscribers: arphaman, martong, cfe-commits, mgorny, yaxunl, hiraditya, guansong, jfb, sstefan1, aaron.ballman, llvm-commits Tags: #llvm, #openmp, #clang Differential Revision: https://reviews.llvm.org/D81736 --- clang/lib/ARCMigrate/CMakeLists.txt | 3 + clang/lib/AST/CMakeLists.txt | 1 + clang/lib/ASTMatchers/CMakeLists.txt | 3 + clang/lib/ASTMatchers/Dynamic/CMakeLists.txt | 3 + clang/lib/Analysis/CMakeLists.txt | 3 + clang/lib/Basic/CMakeLists.txt | 3 + clang/lib/Frontend/Rewrite/CMakeLists.txt | 3 + clang/lib/Index/CMakeLists.txt | 3 + clang/lib/Parse/CMakeLists.txt | 3 + clang/lib/Parse/ParseOpenMP.cpp | 18 +- clang/lib/Sema/CMakeLists.txt | 1 + clang/lib/Sema/SemaOpenMP.cpp | 2 +- clang/lib/Serialization/CMakeLists.txt | 3 + clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt | 3 + clang/lib/StaticAnalyzer/Core/CMakeLists.txt | 3 + clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt | 3 + clang/lib/Tooling/ASTDiff/CMakeLists.txt | 3 + clang/lib/Tooling/CMakeLists.txt | 1 + clang/lib/Tooling/Refactoring/CMakeLists.txt | 3 + clang/lib/Tooling/Syntax/CMakeLists.txt | 3 + clang/lib/Tooling/Transformer/CMakeLists.txt | 3 + .../AST/ast-dump-openmp-target-parallel-for-simd.c | 60 +-- .../test/AST/ast-dump-openmp-target-parallel-for.c | 60 +-- clang/test/AST/ast-dump-openmp-target-simd.c | 20 +- ...nmp-target-teams-distribute-parallel-for-simd.c | 140 +++--- ...p-openmp-target-teams-distribute-parallel-for.c | 140 +++--- .../ast-dump-openmp-target-teams-distribute-simd.c | 60 +-- .../AST/ast-dump-openmp-target-teams-distribute.c | 60 +-- ...ump-openmp-teams-distribute-parallel-for-simd.c | 20 +- ...ast-dump-openmp-teams-distribute-parallel-for.c | 20 +- .../AST/ast-dump-openmp-teams-distribute-simd.c | 20 +- clang/test/AST/ast-dump-openmp-teams-distribute.c | 20 +- llvm/include/llvm/CMakeLists.txt | 1 + .../llvm/Frontend/Directive/DirectiveBase.td | 69 +++ llvm/include/llvm/Frontend/OpenMP/CMakeLists.txt | 3 + llvm/include/llvm/Frontend/OpenMP/OMP.td | 496 +++++++++++++++++++++ llvm/include/llvm/Frontend/OpenMP/OMPConstants.h | 21 +- llvm/lib/Frontend/OpenMP/CMakeLists.txt | 1 + llvm/lib/Frontend/OpenMP/OMPConstants.cpp | 4 +- llvm/test/TableGen/directive1.td | 42 ++ llvm/test/TableGen/directive2.td | 35 ++ llvm/utils/TableGen/CMakeLists.txt | 1 + llvm/utils/TableGen/DirectiveEmitter.cpp | 115 +++++ llvm/utils/TableGen/TableGen.cpp | 8 +- llvm/utils/TableGen/TableGenBackends.h | 1 + 45 files changed, 1145 insertions(+), 343 deletions(-) create mode 100644 llvm/include/llvm/Frontend/Directive/DirectiveBase.td create mode 100644 llvm/include/llvm/Frontend/OpenMP/CMakeLists.txt create mode 100644 llvm/include/llvm/Frontend/OpenMP/OMP.td create mode 100644 llvm/test/TableGen/directive1.td create mode 100644 llvm/test/TableGen/directive2.td create mode 100644 llvm/utils/TableGen/DirectiveEmitter.cpp diff --git a/clang/lib/ARCMigrate/CMakeLists.txt b/clang/lib/ARCMigrate/CMakeLists.txt index 619328ca5ca..6f19bea476d 100644 --- a/clang/lib/ARCMigrate/CMakeLists.txt +++ b/clang/lib/ARCMigrate/CMakeLists.txt @@ -34,4 +34,7 @@ add_clang_library(clangARCMigrate clangRewrite clangSema clangSerialization + + DEPENDS + omp_gen ) diff --git a/clang/lib/AST/CMakeLists.txt b/clang/lib/AST/CMakeLists.txt index 6018d32af8f..35099fd0dac 100644 --- a/clang/lib/AST/CMakeLists.txt +++ b/clang/lib/AST/CMakeLists.txt @@ -119,4 +119,5 @@ add_clang_library(clangAST DEPENDS Opcodes + omp_gen ) diff --git a/clang/lib/ASTMatchers/CMakeLists.txt b/clang/lib/ASTMatchers/CMakeLists.txt index cde871cd31c..68f214b7784 100644 --- a/clang/lib/ASTMatchers/CMakeLists.txt +++ b/clang/lib/ASTMatchers/CMakeLists.txt @@ -14,4 +14,7 @@ add_clang_library(clangASTMatchers clangAST clangBasic clangLex + + DEPENDS + omp_gen ) diff --git a/clang/lib/ASTMatchers/Dynamic/CMakeLists.txt b/clang/lib/ASTMatchers/Dynamic/CMakeLists.txt index 1c6c1e68ce1..adb891575b3 100644 --- a/clang/lib/ASTMatchers/Dynamic/CMakeLists.txt +++ b/clang/lib/ASTMatchers/Dynamic/CMakeLists.txt @@ -23,4 +23,7 @@ add_clang_library(clangDynamicASTMatchers clangAST clangASTMatchers clangBasic + + DEPENDS + omp_gen ) diff --git a/clang/lib/Analysis/CMakeLists.txt b/clang/lib/Analysis/CMakeLists.txt index 3333eab3b96..82cb00a8c3e 100644 --- a/clang/lib/Analysis/CMakeLists.txt +++ b/clang/lib/Analysis/CMakeLists.txt @@ -35,6 +35,9 @@ add_clang_library(clangAnalysis clangASTMatchers clangBasic clangLex + + DEPENDS + omp_gen ) add_subdirectory(plugins) diff --git a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt index 65cb9c505dd..cd310ec811b 100644 --- a/clang/lib/Basic/CMakeLists.txt +++ b/clang/lib/Basic/CMakeLists.txt @@ -94,5 +94,8 @@ add_clang_library(clangBasic XRayInstr.cpp XRayLists.cpp ${version_inc} + + DEPENDS + omp_gen ) diff --git a/clang/lib/Frontend/Rewrite/CMakeLists.txt b/clang/lib/Frontend/Rewrite/CMakeLists.txt index 61a22b5b13b..64aa651394d 100644 --- a/clang/lib/Frontend/Rewrite/CMakeLists.txt +++ b/clang/lib/Frontend/Rewrite/CMakeLists.txt @@ -20,4 +20,7 @@ add_clang_library(clangRewriteFrontend clangLex clangRewrite clangSerialization + + DEPENDS + omp_gen ) diff --git a/clang/lib/Index/CMakeLists.txt b/clang/lib/Index/CMakeLists.txt index e4ea7ea1660..68ebb5b7ede 100644 --- a/clang/lib/Index/CMakeLists.txt +++ b/clang/lib/Index/CMakeLists.txt @@ -27,4 +27,7 @@ add_clang_library(clangIndex clangRewrite clangSerialization clangToolingCore + + DEPENDS + omp_gen ) diff --git a/clang/lib/Parse/CMakeLists.txt b/clang/lib/Parse/CMakeLists.txt index 3f7ab2a74af..43cd8f6e12a 100644 --- a/clang/lib/Parse/CMakeLists.txt +++ b/clang/lib/Parse/CMakeLists.txt @@ -27,4 +27,7 @@ add_clang_library(clangParse clangBasic clangLex clangSema + + DEPENDS + omp_gen ) diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp index 6cf50a5794f..8917986d5e2 100644 --- a/clang/lib/Parse/ParseOpenMP.cpp +++ b/clang/lib/Parse/ParseOpenMP.cpp @@ -33,7 +33,7 @@ using namespace llvm::omp; namespace { enum OpenMPDirectiveKindEx { - OMPD_cancellation = unsigned(OMPD_unknown) + 1, + OMPD_cancellation = llvm::omp::Directive_enumSize + 1, OMPD_data, OMPD_declare, OMPD_end, @@ -1718,8 +1718,8 @@ Parser::DeclGroupPtrTy Parser::ParseOpenMPDeclarativeDirectiveWithExtDecl( SmallVector Clauses; if (Tok.isNot(tok::annot_pragma_openmp_end)) { SmallVector, - unsigned(OMPC_unknown) + 1> - FirstClauses(unsigned(OMPC_unknown) + 1); + llvm::omp::Clause_enumSize + 1> + FirstClauses(llvm::omp::Clause_enumSize + 1); while (Tok.isNot(tok::annot_pragma_openmp_end)) { OpenMPClauseKind CKind = Tok.isAnnotation() ? OMPC_unknown @@ -1754,8 +1754,8 @@ Parser::DeclGroupPtrTy Parser::ParseOpenMPDeclarativeDirectiveWithExtDecl( SourceLocation StartLoc = ConsumeToken(); SmallVector Clauses; SmallVector, - unsigned(OMPC_unknown) + 1> - FirstClauses(unsigned(OMPC_unknown) + 1); + llvm::omp::Clause_enumSize + 1> + FirstClauses(llvm::omp::Clause_enumSize + 1); if (Tok.is(tok::annot_pragma_openmp_end)) { Diag(Tok, diag::err_omp_expected_clause) << getOpenMPDirectiveName(OMPD_requires); @@ -2073,8 +2073,8 @@ Parser::ParseOpenMPDeclarativeOrExecutableDirective(ParsedStmtContext StmtCtx) { ParenBraceBracketBalancer BalancerRAIIObj(*this); SmallVector Clauses; SmallVector, - unsigned(OMPC_unknown) + 1> - FirstClauses(unsigned(OMPC_unknown) + 1); + llvm::omp::Clause_enumSize + 1> + FirstClauses(llvm::omp::Clause_enumSize + 1); unsigned ScopeFlags = Scope::FnScope | Scope::DeclScope | Scope::CompoundStmtScope | Scope::OpenMPDirectiveScope; SourceLocation Loc = ConsumeAnnotationToken(), EndLoc; @@ -2119,8 +2119,8 @@ Parser::ParseOpenMPDeclarativeOrExecutableDirective(ParsedStmtContext StmtCtx) { SmallVector Clauses; if (Tok.isNot(tok::annot_pragma_openmp_end)) { SmallVector, - unsigned(OMPC_unknown) + 1> - FirstClauses(unsigned(OMPC_unknown) + 1); + llvm::omp::Clause_enumSize + 1> + FirstClauses(llvm::omp::Clause_enumSize + 1); while (Tok.isNot(tok::annot_pragma_openmp_end)) { OpenMPClauseKind CKind = Tok.isAnnotation() ? OMPC_unknown diff --git a/clang/lib/Sema/CMakeLists.txt b/clang/lib/Sema/CMakeLists.txt index b59fc30882f..adadc06e209 100644 --- a/clang/lib/Sema/CMakeLists.txt +++ b/clang/lib/Sema/CMakeLists.txt @@ -72,6 +72,7 @@ add_clang_library(clangSema DEPENDS ClangOpenCLBuiltinsImpl + omp_gen LINK_LIBS clangAST diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index e005072da0a..e221a4d9ea5 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -4644,7 +4644,7 @@ static bool checkIfClauses(Sema &S, OpenMPDirectiveKind Kind, bool ErrorFound = false; unsigned NamedModifiersNumber = 0; llvm::IndexedMap FoundNameModifiers; - FoundNameModifiers.resize(unsigned(OMPD_unknown) + 1); + FoundNameModifiers.resize(llvm::omp::Directive_enumSize + 1); SmallVector NameModifierLoc; for (const OMPClause *C : Clauses) { if (const auto *IC = dyn_cast_or_null(C)) { diff --git a/clang/lib/Serialization/CMakeLists.txt b/clang/lib/Serialization/CMakeLists.txt index 1f05117bb5f..a7c5b5e4ffa 100644 --- a/clang/lib/Serialization/CMakeLists.txt +++ b/clang/lib/Serialization/CMakeLists.txt @@ -30,4 +30,7 @@ add_clang_library(clangSerialization clangBasic clangLex clangSema + + DEPENDS + omp_gen ) diff --git a/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt b/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt index 40f520d522f..80cac237fc3 100644 --- a/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt +++ b/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt @@ -134,4 +134,7 @@ add_clang_library(clangStaticAnalyzerCheckers clangBasic clangLex clangStaticAnalyzerCore + + DEPENDS + omp_gen ) diff --git a/clang/lib/StaticAnalyzer/Core/CMakeLists.txt b/clang/lib/StaticAnalyzer/Core/CMakeLists.txt index 233ffaf7995..192185b889c 100644 --- a/clang/lib/StaticAnalyzer/Core/CMakeLists.txt +++ b/clang/lib/StaticAnalyzer/Core/CMakeLists.txt @@ -60,5 +60,8 @@ add_clang_library(clangStaticAnalyzerCore clangLex clangRewrite clangToolingCore + + DEPENDS + omp_gen ) diff --git a/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt b/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt index 0c100a121f7..5293f5e0a52 100644 --- a/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt +++ b/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt @@ -23,4 +23,7 @@ add_clang_library(clangStaticAnalyzerFrontend clangLex clangStaticAnalyzerCheckers clangStaticAnalyzerCore + + DEPENDS + omp_gen ) diff --git a/clang/lib/Tooling/ASTDiff/CMakeLists.txt b/clang/lib/Tooling/ASTDiff/CMakeLists.txt index 578d8ca0cbc..38cf5370bc4 100644 --- a/clang/lib/Tooling/ASTDiff/CMakeLists.txt +++ b/clang/lib/Tooling/ASTDiff/CMakeLists.txt @@ -8,4 +8,7 @@ add_clang_library(clangToolingASTDiff clangBasic clangAST clangLex + + DEPENDS + omp_gen ) diff --git a/clang/lib/Tooling/CMakeLists.txt b/clang/lib/Tooling/CMakeLists.txt index 71b6cc55e50..7a58af59dad 100644 --- a/clang/lib/Tooling/CMakeLists.txt +++ b/clang/lib/Tooling/CMakeLists.txt @@ -31,6 +31,7 @@ add_clang_library(clangTooling DEPENDS ClangDriverOptions + omp_gen LINK_LIBS clangAST diff --git a/clang/lib/Tooling/Refactoring/CMakeLists.txt b/clang/lib/Tooling/Refactoring/CMakeLists.txt index db889d2a06b..0565de224bb 100644 --- a/clang/lib/Tooling/Refactoring/CMakeLists.txt +++ b/clang/lib/Tooling/Refactoring/CMakeLists.txt @@ -22,4 +22,7 @@ add_clang_library(clangToolingRefactoring clangLex clangRewrite clangToolingCore + + DEPENDS + omp_gen ) diff --git a/clang/lib/Tooling/Syntax/CMakeLists.txt b/clang/lib/Tooling/Syntax/CMakeLists.txt index eb266411036..e933faeb0f5 100644 --- a/clang/lib/Tooling/Syntax/CMakeLists.txt +++ b/clang/lib/Tooling/Syntax/CMakeLists.txt @@ -15,4 +15,7 @@ add_clang_library(clangToolingSyntax clangFrontend clangLex clangToolingCore + + DEPENDS + omp_gen ) diff --git a/clang/lib/Tooling/Transformer/CMakeLists.txt b/clang/lib/Tooling/Transformer/CMakeLists.txt index 150b71b1ffc..4ab4bd6f089 100644 --- a/clang/lib/Tooling/Transformer/CMakeLists.txt +++ b/clang/lib/Tooling/Transformer/CMakeLists.txt @@ -19,4 +19,7 @@ add_clang_library(clangTransformer clangLex clangToolingCore clangToolingRefactoring + + DEPENDS + omp_gen ) diff --git a/clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c b/clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c index f45aac455ac..d65a729aa40 100644 --- a/clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c @@ -71,7 +71,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -102,7 +102,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -129,7 +129,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -202,9 +202,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -250,9 +250,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -294,9 +294,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -387,9 +387,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -435,9 +435,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -479,9 +479,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -572,9 +572,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -620,9 +620,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -664,9 +664,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -774,11 +774,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} @@ -839,11 +839,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow @@ -900,11 +900,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-target-parallel-for.c b/clang/test/AST/ast-dump-openmp-target-parallel-for.c index cbc6445e30e..abfa75ba10d 100644 --- a/clang/test/AST/ast-dump-openmp-target-parallel-for.c +++ b/clang/test/AST/ast-dump-openmp-target-parallel-for.c @@ -71,7 +71,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -102,7 +102,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -129,7 +129,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -202,9 +202,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -250,9 +250,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -294,9 +294,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -387,9 +387,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -435,9 +435,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -479,9 +479,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -572,9 +572,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -620,9 +620,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -664,9 +664,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -774,11 +774,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} @@ -839,11 +839,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow @@ -900,11 +900,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-target-simd.c b/clang/test/AST/ast-dump-openmp-target-simd.c index d66cb2b42d7..404b1b197ab 100644 --- a/clang/test/AST/ast-dump-openmp-target-simd.c +++ b/clang/test/AST/ast-dump-openmp-target-simd.c @@ -73,7 +73,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -146,9 +146,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -239,9 +239,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -332,9 +332,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -442,11 +442,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c b/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c index 5edcaa5a108..acb3cf37f08 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c @@ -77,7 +77,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} @@ -104,7 +104,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow @@ -135,7 +135,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -168,7 +168,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -201,7 +201,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -228,7 +228,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -259,7 +259,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -340,9 +340,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} @@ -384,9 +384,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow @@ -432,9 +432,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -482,9 +482,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -532,9 +532,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -576,9 +576,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -624,9 +624,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -725,9 +725,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} @@ -769,9 +769,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow @@ -817,9 +817,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -867,9 +867,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -917,9 +917,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -961,9 +961,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -1009,9 +1009,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -1110,9 +1110,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} @@ -1154,9 +1154,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow @@ -1202,9 +1202,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -1252,9 +1252,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -1302,9 +1302,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -1346,9 +1346,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -1394,9 +1394,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -1512,11 +1512,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} @@ -1573,11 +1573,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow @@ -1638,11 +1638,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} @@ -1705,11 +1705,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow @@ -1772,11 +1772,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} @@ -1833,11 +1833,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow @@ -1898,11 +1898,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c b/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c index 0d816abf5f0..807d8f138c6 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c +++ b/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c @@ -77,7 +77,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} @@ -104,7 +104,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow @@ -135,7 +135,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -168,7 +168,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -201,7 +201,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -228,7 +228,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -259,7 +259,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -340,9 +340,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} @@ -384,9 +384,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow @@ -432,9 +432,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -482,9 +482,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -532,9 +532,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -576,9 +576,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -624,9 +624,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -725,9 +725,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} @@ -769,9 +769,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow @@ -817,9 +817,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -867,9 +867,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -917,9 +917,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -961,9 +961,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -1009,9 +1009,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -1110,9 +1110,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} @@ -1154,9 +1154,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow @@ -1202,9 +1202,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -1252,9 +1252,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -1302,9 +1302,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -1346,9 +1346,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -1394,9 +1394,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -1512,11 +1512,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} @@ -1573,11 +1573,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow @@ -1638,11 +1638,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} @@ -1705,11 +1705,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow @@ -1772,11 +1772,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} @@ -1833,11 +1833,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow @@ -1898,11 +1898,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c b/clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c index a113ce2ca44..83e530c87e3 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c +++ b/clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c @@ -71,7 +71,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -102,7 +102,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -129,7 +129,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -202,9 +202,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -250,9 +250,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -294,9 +294,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -387,9 +387,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -435,9 +435,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -479,9 +479,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -572,9 +572,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -620,9 +620,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -664,9 +664,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -774,11 +774,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} @@ -839,11 +839,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow @@ -900,11 +900,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-target-teams-distribute.c b/clang/test/AST/ast-dump-openmp-target-teams-distribute.c index 9754294e039..a4ebf15356e 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams-distribute.c +++ b/clang/test/AST/ast-dump-openmp-target-teams-distribute.c @@ -71,7 +71,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -102,7 +102,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -129,7 +129,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -202,9 +202,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -250,9 +250,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -294,9 +294,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -387,9 +387,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -435,9 +435,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -479,9 +479,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -572,9 +572,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | | |-DeclStmt {{.*}} @@ -620,9 +620,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow @@ -664,9 +664,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} @@ -774,11 +774,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | | |-ForStmt {{.*}} // CHECK-NEXT: | | | | |-DeclStmt {{.*}} @@ -839,11 +839,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow @@ -900,11 +900,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c b/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c index 85a67e2f7e0..204b4fe1365 100644 --- a/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c @@ -189,7 +189,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} // CHECK-NEXT: | | | `-CapturedStmt {{.*}} @@ -532,9 +532,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} // CHECK-NEXT: | | | `-CapturedStmt {{.*}} @@ -943,9 +943,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} @@ -1376,9 +1376,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} @@ -1893,11 +1893,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c b/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c index 68b99a09a55..8c86d6c8e37 100644 --- a/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c +++ b/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c @@ -189,7 +189,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} // CHECK-NEXT: | | | `-CapturedStmt {{.*}} @@ -532,9 +532,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} // CHECK-NEXT: | | | `-CapturedStmt {{.*}} @@ -943,9 +943,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} @@ -1376,9 +1376,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} @@ -1893,11 +1893,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-OMPTeamsDistributeParallelForDirective {{.*}} // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-teams-distribute-simd.c b/clang/test/AST/ast-dump-openmp-teams-distribute-simd.c index bbdb722fd76..a4ad08b8bef 100644 --- a/clang/test/AST/ast-dump-openmp-teams-distribute-simd.c +++ b/clang/test/AST/ast-dump-openmp-teams-distribute-simd.c @@ -125,7 +125,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} // CHECK-NEXT: | | | `-CapturedStmt {{.*}} @@ -308,9 +308,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} // CHECK-NEXT: | | | `-CapturedStmt {{.*}} @@ -527,9 +527,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} @@ -768,9 +768,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} @@ -1061,11 +1061,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-OMPTeamsDistributeSimdDirective {{.*}} // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-teams-distribute.c b/clang/test/AST/ast-dump-openmp-teams-distribute.c index 17689709faa..8c1e6b70cff 100644 --- a/clang/test/AST/ast-dump-openmp-teams-distribute.c +++ b/clang/test/AST/ast-dump-openmp-teams-distribute.c @@ -125,7 +125,7 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} // CHECK-NEXT: | | | `-CapturedStmt {{.*}} @@ -308,9 +308,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} // CHECK-NEXT: | | | `-CapturedStmt {{.*}} @@ -527,9 +527,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} @@ -768,9 +768,9 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} // CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} @@ -1061,11 +1061,11 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition // CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit // CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit 9 +// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-OMPTeamsDistributeDirective {{.*}} // CHECK-NEXT: | | |-OMPCollapseClause {{.*}} diff --git a/llvm/include/llvm/CMakeLists.txt b/llvm/include/llvm/CMakeLists.txt index 1d5ca3ba92b..7cf8699aa21 100644 --- a/llvm/include/llvm/CMakeLists.txt +++ b/llvm/include/llvm/CMakeLists.txt @@ -1,5 +1,6 @@ add_subdirectory(IR) add_subdirectory(Support) +add_subdirectory(Frontend/OpenMP) # If we're doing an out-of-tree build, copy a module map for generated # header files into the build area. diff --git a/llvm/include/llvm/Frontend/Directive/DirectiveBase.td b/llvm/include/llvm/Frontend/Directive/DirectiveBase.td new file mode 100644 index 00000000000..ef14b19cabd --- /dev/null +++ b/llvm/include/llvm/Frontend/Directive/DirectiveBase.td @@ -0,0 +1,69 @@ +//===-- DirectiveBase.td - Base directive definition file --*- tablegen -*-===// +// +// 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 +// +//===----------------------------------------------------------------------===// +// +// This is the base definition file directives and clauses. +// +//===----------------------------------------------------------------------===// + + +// General information about the directive language +class DirectiveLanguage { + // Name of the directive language such as omp or acc. + string name = ?; + + // The C++ namespace that code of this directive language should be placed + // into. This namespace is nested in llvm namespace. + // + // By default, uses the name of the directive language as the only namespace. + // To avoid placing in any namespace, use "". To specify nested namespaces, + // use "::" as the delimiter, e.g., given "A::B", ops will be placed in + // `namespace A { namespace B { } }`. + string cppNamespace = name; + + // Optional prefix used for the generation of the enumerator in the Directive + // enum. + string directivePrefix = ""; + + // Optional prefix used for the generation of the enumerator in the Clause + // enum. + string clausePrefix = ""; + + // Make the enum values available in the namespace. This allows us to + // write something like Enum_X if we have a `using namespace cppNamespace`. + bit makeEnumAvailableInNamespace = 0; + + // Generate include and macro to enable LLVM BitmaskEnum + bit enableBitmaskEnumInNamespace = 0; +} + +// Information about a specific clause +class Clause { + // Name of the clause + string name = c; + + // Optional class holding value of the clause in clang AST + string clangClass = ?; + + // Is clause implicit? + bit isImplicit = 0; +} + +// Information about a specific directive +class Directive { + // Name of the directive. Can be composite directive sepearted by whitespace. + string name = d; + + // List of allowed clauses for the directive. + list allowedClauses = ?; + + // List of clauses that are allowed to appear only once. + list allowedOnceClauses = ?; + + // List of clauses that are required. + list requiredClauses = ?; +} diff --git a/llvm/include/llvm/Frontend/OpenMP/CMakeLists.txt b/llvm/include/llvm/Frontend/OpenMP/CMakeLists.txt new file mode 100644 index 00000000000..9bdc4b8c551 --- /dev/null +++ b/llvm/include/llvm/Frontend/OpenMP/CMakeLists.txt @@ -0,0 +1,3 @@ +set(LLVM_TARGET_DEFINITIONS OMP.td) +tablegen(LLVM OMP.h.inc --gen-directive-decls) +add_public_tablegen_target(omp_gen) diff --git a/llvm/include/llvm/Frontend/OpenMP/OMP.td b/llvm/include/llvm/Frontend/OpenMP/OMP.td new file mode 100644 index 00000000000..107ebac2015 --- /dev/null +++ b/llvm/include/llvm/Frontend/OpenMP/OMP.td @@ -0,0 +1,496 @@ +//===-- OMP.td - OpenMP directive definition file ----------*- tablegen -*-===// +// +// 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 +// +//===----------------------------------------------------------------------===// +// +// This is the definition file for OpenMP directives and clauses. +// +//===----------------------------------------------------------------------===// + +include "llvm/Frontend/Directive/DirectiveBase.td" + +//===----------------------------------------------------------------------===// +// Definition of general OpenMP information +//===----------------------------------------------------------------------===// + +def OpenMP : DirectiveLanguage { + let name = "OpenMP"; + let cppNamespace = "omp"; // final namespace will be llvm::omp + let directivePrefix = "OMPD_"; + let clausePrefix = "OMPC_"; + let makeEnumAvailableInNamespace = 1; + let enableBitmaskEnumInNamespace = 1; +} + +//===----------------------------------------------------------------------===// +// Definition of OpenMP clauses +//===----------------------------------------------------------------------===// + +def OMPC_Allocator : Clause<"allocator"> { + let clangClass = "OMPAllocatorClause"; +} +def OMPC_If : Clause<"if"> { let clangClass = "OMPIfClause"; } +def OMPC_Final : Clause<"final"> { let clangClass = "OMPFinalClause"; } +def OMPC_NumThreads : Clause<"num_threads"> { + let clangClass = "OMPNumThreadsClause"; +} +def OMPC_SafeLen : Clause<"safelen"> { let clangClass = "OMPSafelenClause"; } +def OMPC_SimdLen : Clause<"simdlen"> { let clangClass = "OMPSimdlenClause"; } +def OMPC_Collapse : Clause<"collapse"> { let clangClass = "OMPCollapseClause"; } +def OMPC_Default : Clause<"default"> { let clangClass = "OMPDefaultClause"; } +def OMPC_Private : Clause<"private"> { let clangClass = "OMPPrivateClause"; } +def OMPC_FirstPrivate : Clause<"firstprivate"> { + let clangClass = "OMPFirstprivateClause"; +} +def OMPC_LastPrivate : Clause<"lastprivate"> { + let clangClass = "OMPLastprivateClause"; +} +def OMPC_Shared : Clause<"shared"> { let clangClass = "OMPSharedClause"; } +def OMPC_Reduction : Clause<"reduction"> { + let clangClass = "OMPReductionClause"; +} +def OMPC_Linear : Clause<"linear"> { let clangClass = "OMPLinearClause"; } +def OMPC_Aligned : Clause<"aligned"> { let clangClass = "OMPAlignedClause"; } +def OMPC_Copyin : Clause<"copyin"> { let clangClass = "OMPCopyinClause"; } +def OMPC_CopyPrivate : Clause<"copyprivate"> { + let clangClass = "OMPCopyprivateClause"; +} +def OMPC_ProcBind : Clause<"proc_bind"> { + let clangClass = "OMPProcBindClause"; +} +def OMPC_Schedule : Clause<"schedule"> { let clangClass = "OMPScheduleClause"; } +def OMPC_Ordered : Clause<"ordered"> { let clangClass = "OMPOrderedClause"; } +def OMPC_NoWait : Clause<"nowait"> { let clangClass = "OMPNowaitClause"; } +def OMPC_Untied : Clause<"untied"> { let clangClass = "OMPUntiedClause"; } +def OMPC_Mergeable : Clause<"mergeable"> { + let clangClass = "OMPMergeableClause"; +} +def OMPC_Read : Clause<"read"> { let clangClass = "OMPReadClause"; } +def OMPC_Write : Clause<"write"> { let clangClass = "OMPWriteClause"; } +def OMPC_Update : Clause<"update"> { let clangClass = "OMPUpdateClause"; } +def OMPC_Capture : Clause<"capture"> { let clangClass = "OMPCaptureClause"; } +def OMPC_SeqCst : Clause<"seq_cst"> { let clangClass = "OMPSeqCstClause"; } +def OMPC_AcqRel : Clause<"acq_rel"> { let clangClass = "OMPAcqRelClause"; } +def OMPC_Acquire : Clause<"acquire"> { let clangClass = "OMPAcquireClause"; } +def OMPC_Release : Clause<"release"> { let clangClass = "OMPReleaseClause"; } +def OMPC_Relaxed : Clause<"relaxed"> { let clangClass = "OMPRelaxedClause"; } +def OMPC_Depend : Clause<"depend"> { let clangClass = "OMPDependClause"; } +def OMPC_Device : Clause<"device"> { let clangClass = "OMPDeviceClause"; } +def OMPC_Threads : Clause<"threads"> { let clangClass = "OMPThreadsClause"; } +def OMPC_Simd : Clause<"simd"> { let clangClass = "OMPSIMDClause"; } +def OMPC_Map : Clause<"map"> { let clangClass = "OMPMapClause"; } +def OMPC_NumTeams : Clause<"num_teams"> { + let clangClass = "OMPNumTeamsClause"; +} +def OMPC_ThreadLimit : Clause<"thread_limit"> { + let clangClass = "OMPThreadLimitClause"; +} +def OMPC_Priority : Clause<"priority"> { + let clangClass = "OMPPriorityClause"; +} +def OMPC_GrainSize : Clause<"grainsize"> { + let clangClass = "OMPGrainsizeClause"; +} +def OMPC_NoGroup : Clause<"nogroup"> { + let clangClass = "OMPNogroupClause"; +} +def OMPC_NumTasks : Clause<"num_tasks"> { + let clangClass = "OMPNumTasksClause"; +} +def OMPC_Hint : Clause<"hint"> { + let clangClass = "OMPHintClause"; +} +def OMPC_DistSchedule : Clause<"dist_schedule"> { + let clangClass = "OMPDistScheduleClause"; +} +def OMPC_DefaultMap : Clause<"defaultmap"> { + let clangClass = "OMPDefaultmapClause"; +} +def OMPC_To : Clause<"to"> { + let clangClass = "OMPToClause"; +} +def OMPC_From : Clause<"from"> { let clangClass = "OMPFromClause"; } +def OMPC_UseDevicePtr : Clause<"use_device_ptr"> { + let clangClass = "OMPUseDevicePtrClause"; +} +def OMPC_IsDevicePtr : Clause<"is_device_ptr"> { + let clangClass = "OMPIsDevicePtrClause"; +} +def OMPC_TaskReduction : Clause<"task_reduction"> { + let clangClass = "OMPTaskReductionClause"; +} +def OMPC_InReduction : Clause<"in_reduction"> { + let clangClass = "OMPInReductionClause"; +} +def OMPC_UnifiedAddress : Clause<"unified_address"> { + let clangClass = "OMPUnifiedAddressClause"; +} +def OMPC_UnifiedSharedMemory : Clause<"unified_shared_memory"> { + let clangClass = "OMPUnifiedSharedMemoryClause"; +} +def OMPC_ReverseOffload : Clause<"reverse_offload"> { + let clangClass = "OMPReverseOffloadClause"; +} +def OMPC_DynamicAllocators : Clause<"dynamic_allocators"> { + let clangClass = "OMPDynamicAllocatorsClause"; +} +def OMPC_AtomicDefaultMemOrder : Clause<"atomic_default_mem_order"> { + let clangClass = "OMPAtomicDefaultMemOrderClause"; +} +def OMPC_Allocate : Clause<"allocate"> { + let clangClass = "OMPAllocateClause"; +} +def OMPC_NonTemporal : Clause<"nontemporal"> { + let clangClass = "OMPNontemporalClause"; +} +def OMPC_Order : Clause<"order"> { + let clangClass = "OMPOrderClause"; +} +def OMPC_Destroy : Clause<"destroy"> { + let clangClass = "OMPDestroyClause"; +} +def OMPC_Detach : Clause<"detach"> { + let clangClass = "OMPDetachClause"; +} +def OMPC_Inclusive : Clause<"inclusive"> { + let clangClass = "OMPInclusiveClause"; +} +def OMPC_Exclusive : Clause<"exclusive"> { + let clangClass = "OMPExclusiveClause"; +} +def OMPC_UsesAllocators : Clause<"uses_allocators"> { + let clangClass = "OMPUsesAllocatorsClause"; +} +def OMPC_Affinity : Clause<"affinity"> { + let clangClass = "OMPAffinityClause"; +} +def OMPC_UseDeviceAddr : Clause<"use_device_addr"> { + let clangClass = "OMPUseDeviceAddrClause"; +} +def OMPC_Uniform : Clause<"uniform"> {} +def OMPC_DeviceType : Clause<"device_type"> {} +def OMPC_Match : Clause<"match"> {} +def OMPC_Depobj : Clause<"depobj"> { + let clangClass = "OMPDepobjClause"; + let isImplicit = 1; +} +def OMPC_Flush : Clause<"flush"> { + let clangClass = "OMPFlushClause"; + let isImplicit = 1; +} +def OMPC_ThreadPrivate : Clause<"threadprivate"> { + // threadprivate or thread local + let isImplicit = 1; +} +def OMPC_Unknown : Clause<"unknown"> { + let isImplicit = 1; +} + +//===----------------------------------------------------------------------===// +// Definition of OpenMP directives +//===----------------------------------------------------------------------===// + +def OMP_ThreadPrivate : Directive<"threadprivate"> {} +def OMP_Parallel : Directive<"parallel"> { + let allowedClauses = [OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Private, OMPC_FirstPrivate, OMPC_Shared, OMPC_Reduction, OMPC_Copyin, + OMPC_Allocate]; +} +def OMP_Task : Directive<"task"> { + let allowedClauses = [OMPC_If, OMPC_Final, OMPC_Default, OMPC_Private, + OMPC_FirstPrivate, OMPC_Shared, OMPC_Untied, OMPC_Mergeable, OMPC_Depend, + OMPC_Priority, OMPC_InReduction, OMPC_Allocate, OMPC_Detach, + OMPC_Affinity]; +} +def OMP_Simd : Directive<"simd"> { + let allowedClauses = [OMPC_Private, OMPC_LastPrivate, OMPC_Linear, + OMPC_Aligned, OMPC_SafeLen, OMPC_SimdLen, OMPC_Collapse, OMPC_Reduction, + OMPC_Allocate, OMPC_If, OMPC_NonTemporal, OMPC_Order]; +} +def OMP_For : Directive<"for"> { + let allowedClauses = [OMPC_Private, OMPC_LastPrivate, OMPC_FirstPrivate, + OMPC_Reduction, OMPC_Collapse, OMPC_Schedule, OMPC_Ordered, OMPC_NoWait, + OMPC_Linear, OMPC_Allocate, OMPC_Order]; +} +def OMP_Sections : Directive<"sections"> { + let allowedClauses = [OMPC_Private, OMPC_LastPrivate, OMPC_FirstPrivate, + OMPC_Reduction, OMPC_NoWait, OMPC_Allocate]; +} +def OMP_Section : Directive<"section"> {} +def OMP_Single : Directive<"single"> { + let allowedClauses = [OMPC_Private, OMPC_FirstPrivate, OMPC_CopyPrivate, + OMPC_NoWait, OMPC_Allocate]; +} +def OMP_Master : Directive<"master"> {} +def OMP_Critical : Directive<"critical"> { + let allowedClauses = [OMPC_Hint]; +} +def OMP_TaskYield : Directive<"taskyield"> {} +def OMP_Barrier : Directive<"barrier"> {} +def OMP_TaskWait : Directive<"taskwait"> {} +def OMP_TaskGroup : Directive<"taskgroup"> { + let allowedClauses = [OMPC_TaskReduction, OMPC_Allocate]; +} +def OMP_Flush : Directive<"flush"> { + let allowedClauses = [OMPC_AcqRel, OMPC_Acquire, OMPC_Release, OMPC_Flush]; +} +def OMP_Ordered : Directive<"ordered"> { + let allowedClauses = [OMPC_Threads, OMPC_Simd, OMPC_Depend]; +} +def OMP_Atomic : Directive<"atomic"> { + let allowedClauses = [OMPC_Read, OMPC_Write, OMPC_Update, OMPC_Capture, + OMPC_SeqCst, OMPC_AcqRel, OMPC_Acquire, OMPC_Release, OMPC_Relaxed, + OMPC_Hint]; +} +def OMP_Target : Directive<"target"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_NoWait, OMPC_Depend, OMPC_DefaultMap, OMPC_FirstPrivate, + OMPC_IsDevicePtr, OMPC_Reduction, OMPC_Allocate, OMPC_UsesAllocators]; +} +def OMP_Teams : Directive<"teams"> { + let allowedClauses = [OMPC_Default, OMPC_Private, OMPC_FirstPrivate, + OMPC_Shared, OMPC_Reduction, OMPC_NumTeams, OMPC_ThreadLimit, + OMPC_Allocate]; +} +def OMP_Cancel : Directive<"cancel"> { + let allowedClauses = [OMPC_If]; +} +def OMP_Requires : Directive<"requires"> { + let allowedClauses = [OMPC_UnifiedAddress, OMPC_UnifiedSharedMemory, + OMPC_ReverseOffload, OMPC_DynamicAllocators, OMPC_AtomicDefaultMemOrder]; +} +def OMP_TargetData : Directive<"target data"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_UseDevicePtr, + OMPC_UseDevicePtr]; +} +def OMP_TargetEnterData : Directive<"target enter data"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_NoWait, + OMPC_Depend]; +} +def OMP_TargetExitData : Directive<"target exit data"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_NoWait, + OMPC_Depend]; +} +def OMP_TargetParallel : Directive<"target parallel"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_NoWait, + OMPC_Depend, OMPC_Private, OMPC_FirstPrivate, OMPC_DefaultMap, + OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, OMPC_Shared, OMPC_Reduction, + OMPC_IsDevicePtr, OMPC_Allocator, OMPC_UsesAllocators]; +} +def OMP_TargetParallelFor : Directive<"target parallel for"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_FirstPrivate, OMPC_LastPrivate, OMPC_NoWait, OMPC_Depend, + OMPC_DefaultMap, OMPC_NumThreads, OMPC_DefaultMap, OMPC_ProcBind, + OMPC_Shared, OMPC_Reduction, OMPC_Collapse, OMPC_Schedule, OMPC_Ordered, + OMPC_Linear, OMPC_IsDevicePtr, OMPC_Allocator, OMPC_Order, + OMPC_UsesAllocators]; +} +def OMP_TargetUpdate : Directive<"target update"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_To, OMPC_From, OMPC_NoWait, + OMPC_Depend]; +} +def OMP_ParallelFor : Directive<"parallel for"> { + let allowedClauses = [OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Private, OMPC_FirstPrivate, OMPC_Shared, OMPC_Reduction, OMPC_Copyin, + OMPC_LastPrivate, OMPC_Collapse, OMPC_Schedule, OMPC_Ordered, OMPC_Linear, + OMPC_Allocate, OMPC_Order]; +} +def OMP_ParallelForSimd : Directive<"parallel for simd"> { + let allowedClauses = [OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Private, OMPC_FirstPrivate, OMPC_Shared, OMPC_Reduction, OMPC_Copyin, + OMPC_LastPrivate, OMPC_Collapse, OMPC_Schedule, OMPC_SafeLen, + OMPC_SimdLen, OMPC_Linear, OMPC_Aligned, OMPC_Ordered, OMPC_Allocate, + OMPC_NonTemporal, OMPC_Order]; +} +def OMP_ParallelMaster : Directive<"parallel master"> { + let allowedClauses = [OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_Private, + OMPC_FirstPrivate, OMPC_Shared, OMPC_Copyin, OMPC_Reduction, + OMPC_ProcBind, OMPC_Allocate]; +} +def OMP_ParallelSections : Directive<"parallel sections"> { + let allowedClauses = [OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Private, OMPC_FirstPrivate, OMPC_Shared, OMPC_Reduction, OMPC_Copyin, + OMPC_LastPrivate, OMPC_Allocate]; +} +def OMP_ForSimd : Directive<"for simd"> { + let allowedClauses = [OMPC_Private, OMPC_FirstPrivate, OMPC_LastPrivate, + OMPC_Reduction, OMPC_Schedule, OMPC_Collapse, OMPC_NoWait, OMPC_SafeLen, + OMPC_SimdLen, OMPC_Linear, OMPC_Aligned, OMPC_Ordered, OMPC_Allocate, + OMPC_If, OMPC_NonTemporal, OMPC_Order]; +} +def OMP_CancellationPoint : Directive<"cancellation point"> {} +def OMP_DeclareReduction : Directive<"declare reduction"> {} +def OMP_DeclareMapper : Directive<"declare mapper"> { + let allowedClauses = [OMPC_Map]; +} +def OMP_DeclareSimd : Directive<"declare simd"> {} +def OMP_TaskLoop : Directive<"taskloop"> { + let allowedClauses = [OMPC_If, OMPC_Shared, OMPC_Private, OMPC_FirstPrivate, + OMPC_LastPrivate, OMPC_Default, OMPC_Collapse, OMPC_Final, OMPC_Untied, + OMPC_Mergeable, OMPC_Priority, OMPC_GrainSize, OMPC_NoGroup, + OMPC_NumTasks, OMPC_Reduction, OMPC_InReduction, OMPC_Allocate]; +} +def OMP_TaskLoopSimd : Directive<"taskloop simd"> { + let allowedClauses = [OMPC_If, OMPC_Shared, OMPC_Private, OMPC_FirstPrivate, + OMPC_LastPrivate, OMPC_Default, OMPC_Collapse, OMPC_Final, OMPC_Untied, + OMPC_Mergeable, OMPC_Priority, OMPC_Linear, OMPC_Aligned, OMPC_SafeLen, + OMPC_SimdLen, OMPC_GrainSize, OMPC_NoGroup, OMPC_NumTasks, OMPC_Reduction, + OMPC_InReduction, OMPC_Allocator, OMPC_NonTemporal, OMPC_Order]; +} +def OMP_Distribute : Directive<"distribute"> { + let allowedClauses = [OMPC_Private, OMPC_FirstPrivate, OMPC_LastPrivate, + OMPC_Collapse, OMPC_DistSchedule, OMPC_Allocate]; +} +def OMP_DeclareTarget : Directive<"declare target"> {} +def OMP_EndDeclareTarget : Directive<"end declare target"> {} +def OMP_DistributeParallelFor : Directive<"distribute parallel for"> { + let allowedClauses = [OMPC_FirstPrivate, OMPC_LastPrivate, OMPC_Collapse, + OMPC_DistSchedule, OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Private, OMPC_Shared, OMPC_Reduction, OMPC_Copyin, OMPC_Schedule, + OMPC_Allocate, OMPC_Order]; +} +def OMP_DistributeParallelForSimd : Directive<"distribute parallel for simd"> { + let allowedClauses = [OMPC_FirstPrivate, OMPC_LastPrivate, OMPC_Collapse, + OMPC_DistSchedule, OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Private, OMPC_Shared, OMPC_Reduction, OMPC_Copyin, OMPC_Schedule, + OMPC_Linear, OMPC_Aligned, OMPC_SafeLen, OMPC_SimdLen, OMPC_Allocate, + OMPC_NonTemporal, OMPC_Order]; +} +def OMP_DistributeSimd : Directive<"distribute simd"> { + let allowedClauses = [OMPC_Private, OMPC_FirstPrivate, OMPC_LastPrivate, + OMPC_Collapse, OMPC_DistSchedule, OMPC_Linear, OMPC_Aligned, OMPC_SafeLen, + OMPC_SimdLen, OMPC_Reduction, OMPC_Allocate, OMPC_If, OMPC_NonTemporal, + OMPC_Order]; +} +def OMP_TargetParallelForSimd : Directive<"target parallel for simd"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_FirstPrivate, OMPC_LastPrivate, OMPC_NoWait, OMPC_Depend, + OMPC_DefaultMap, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Shared, OMPC_Reduction, OMPC_Collapse, OMPC_Schedule, OMPC_Ordered, + OMPC_Linear, OMPC_SafeLen, OMPC_SimdLen, OMPC_Aligned, OMPC_IsDevicePtr, + OMPC_Allocate, OMPC_NonTemporal, OMPC_Order, OMPC_UsesAllocators]; +} +def OMP_TargetSimd : Directive<"target simd"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_NoWait, OMPC_Depend, OMPC_DefaultMap, OMPC_FirstPrivate, + OMPC_IsDevicePtr, OMPC_LastPrivate, OMPC_Linear, OMPC_Aligned, + OMPC_SafeLen, OMPC_SimdLen, OMPC_Collapse, OMPC_Reduction, OMPC_Allocate, + OMPC_NonTemporal, OMPC_Order, OMPC_UsesAllocators]; +} +def OMP_TeamsDistribute : Directive<"teams distribute"> { + let allowedClauses = [OMPC_Default, OMPC_Private, OMPC_FirstPrivate, + OMPC_Shared, OMPC_Reduction, OMPC_NumTeams, OMPC_ThreadLimit, + OMPC_LastPrivate, OMPC_Collapse, OMPC_DistSchedule, OMPC_Allocate]; +} +def OMP_TeamsDistributeSimd : Directive<"teams distribute simd"> { + let allowedClauses = [OMPC_Default, OMPC_Private, OMPC_FirstPrivate, + OMPC_Shared, OMPC_Reduction, OMPC_NumTeams, OMPC_ThreadLimit, + OMPC_LastPrivate, OMPC_Collapse, OMPC_DistSchedule, OMPC_Linear, + OMPC_Aligned, OMPC_SafeLen, OMPC_SimdLen, OMPC_Allocate, OMPC_If, + OMPC_NonTemporal, OMPC_Order]; +} +def OMP_TeamsDistributeParallelForSimd : + Directive<"teams distribute parallel for simd"> { + let allowedClauses = [OMPC_FirstPrivate, OMPC_LastPrivate, OMPC_Collapse, + OMPC_DistSchedule, OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Private, OMPC_Shared, OMPC_Reduction, OMPC_Schedule, OMPC_Linear, + OMPC_Aligned, OMPC_SafeLen, OMPC_SimdLen, OMPC_NumTeams, OMPC_ThreadLimit, + OMPC_Allocate, OMPC_NonTemporal, OMPC_Order]; +} +def OMP_TeamsDistributeParallelFor : + Directive<"teams distribute parallel for"> { + let allowedClauses = [OMPC_FirstPrivate, OMPC_LastPrivate, OMPC_Collapse, + OMPC_DistSchedule, OMPC_If, OMPC_NumThreads, OMPC_Default, OMPC_ProcBind, + OMPC_Private, OMPC_Shared, OMPC_Reduction, OMPC_Schedule, OMPC_NumTeams, + OMPC_ThreadLimit, OMPC_Copyin, OMPC_Allocate, OMPC_Order]; +} +def OMP_TargetTeams : Directive<"target teams"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_NoWait, OMPC_Depend, OMPC_DefaultMap, OMPC_FirstPrivate, + OMPC_IsDevicePtr, OMPC_Default, OMPC_Shared, OMPC_Reduction, + OMPC_NumTeams, OMPC_ThreadLimit, OMPC_Allocate, OMPC_UsesAllocators]; +} +def OMP_TargetTeamsDistribute : Directive<"target teams distribute"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_NoWait, OMPC_Depend, OMPC_DefaultMap, OMPC_FirstPrivate, + OMPC_IsDevicePtr, OMPC_Default, OMPC_Shared, OMPC_Reduction, + OMPC_NumTeams, OMPC_ThreadLimit, OMPC_LastPrivate, OMPC_Collapse, + OMPC_DistSchedule, OMPC_Allocate, OMPC_UsesAllocators]; +} +def OMP_TargetTeamsDistributeParallelFor : + Directive<"target teams distribute parallel for"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_NoWait, OMPC_Depend, OMPC_DefaultMap, OMPC_FirstPrivate, + OMPC_IsDevicePtr, OMPC_Default, OMPC_Shared, OMPC_Reduction, + OMPC_NumTeams, OMPC_ThreadLimit, OMPC_LastPrivate, OMPC_Collapse, + OMPC_DistSchedule, OMPC_NumThreads, OMPC_ProcBind, OMPC_Schedule, + OMPC_Allocate, OMPC_Order, OMPC_UsesAllocators]; +} +def OMP_TargetTeamsDistributeParallelForSimd : + Directive<"target teams distribute parallel for simd"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_NoWait, OMPC_Depend, OMPC_DefaultMap, OMPC_FirstPrivate, + OMPC_IsDevicePtr, OMPC_Default, OMPC_Shared, OMPC_Reduction, + OMPC_NumTeams, OMPC_ThreadLimit, OMPC_LastPrivate, OMPC_Collapse, + OMPC_DistSchedule, OMPC_NumThreads, OMPC_ProcBind, OMPC_Schedule, + OMPC_Linear, OMPC_Aligned, OMPC_SafeLen, OMPC_SimdLen, OMPC_Allocate, + OMPC_NonTemporal, OMPC_Order, OMPC_UsesAllocators]; +} +def OMP_TargetTeamsDistributeSimd : + Directive<"target teams distribute simd"> { + let allowedClauses = [OMPC_If, OMPC_Device, OMPC_Map, OMPC_Private, + OMPC_NoWait, OMPC_Depend, OMPC_DefaultMap, OMPC_FirstPrivate, + OMPC_LastPrivate, OMPC_IsDevicePtr, OMPC_Shared, OMPC_Reduction, + OMPC_NumTeams, OMPC_ThreadLimit, OMPC_Collapse, OMPC_DistSchedule, + OMPC_Linear, OMPC_Aligned, OMPC_SafeLen, OMPC_SimdLen, OMPC_Allocate, + OMPC_NonTemporal, OMPC_Order, OMPC_UsesAllocators]; +} +def OMP_Allocate : Directive<"allocate"> { + let allowedClauses = [OMPC_Allocator]; +} +def OMP_DeclareVariant : Directive<"declare variant"> { + let allowedClauses = [OMPC_Match]; +} +def OMP_MasterTaskloop : Directive<"master taskloop"> { + let allowedClauses = [ + OMPC_If, OMPC_Shared, OMPC_Private, OMPC_FirstPrivate, OMPC_LastPrivate, + OMPC_Default, OMPC_Collapse, OMPC_Final, OMPC_Untied, OMPC_Mergeable, + OMPC_Priority, OMPC_GrainSize, OMPC_NoGroup, OMPC_NumTasks, + OMPC_Reduction, OMPC_InReduction, OMPC_Allocate]; +} +def OMP_ParallelMasterTaskloop : + Directive<"parallel master taskloop"> { + let allowedClauses = [OMPC_If, OMPC_Shared, OMPC_Private, OMPC_FirstPrivate, + OMPC_LastPrivate, OMPC_Default, OMPC_Collapse, OMPC_Final, OMPC_Untied, + OMPC_Mergeable, OMPC_Priority, OMPC_GrainSize, OMPC_NoGroup, + OMPC_NumTasks, OMPC_Reduction, OMPC_Allocate, OMPC_NumThreads, + OMPC_ProcBind, OMPC_Copyin]; +} +def OMP_MasterTaskloopSimd : Directive<"master taskloop simd"> { + let allowedClauses = [OMPC_If, OMPC_Shared, OMPC_Private, OMPC_FirstPrivate, + OMPC_LastPrivate, OMPC_DefaultMap, OMPC_Collapse, OMPC_Final, OMPC_Untied, + OMPC_Mergeable, OMPC_Priority, OMPC_Linear, OMPC_Aligned, OMPC_SafeLen, + OMPC_SimdLen, OMPC_GrainSize, OMPC_NoGroup, OMPC_NumTasks, OMPC_Reduction, + OMPC_InReduction, OMPC_Allocate, OMPC_NonTemporal, OMPC_Order]; +} +def OMP_ParallelMasterTaskloopSimd : + Directive<"parallel master taskloop simd"> { + let allowedClauses = [OMPC_If, OMPC_Shared, OMPC_Private, OMPC_FirstPrivate, + OMPC_LastPrivate, OMPC_Default, OMPC_Collapse, OMPC_Final, OMPC_Untied, + OMPC_Mergeable, OMPC_Priority, OMPC_GrainSize, OMPC_NoGroup, + OMPC_NumTasks, OMPC_Reduction, OMPC_Allocate, OMPC_NumThreads, + OMPC_ProcBind, OMPC_Copyin, OMPC_Linear, OMPC_Aligned, OMPC_SafeLen, + OMPC_SimdLen, OMPC_NonTemporal, OMPC_Order]; +} +def OMP_Depobj : Directive<"depobj"> { + let allowedClauses = [OMPC_Depend, OMPC_Destroy, OMPC_Update, OMPC_Depobj]; +} +def OMP_Scan : Directive<"scan"> { + let allowedClauses = [OMPC_Inclusive, OMPC_Exclusive]; +} +def OMP_BeginDeclareVariant : Directive<"begin declare variant"> {} +def OMP_EndDeclareVariant : Directive<"end declare variant"> {} +def OMP_Unknown : Directive<"unknown"> {} diff --git a/llvm/include/llvm/Frontend/OpenMP/OMPConstants.h b/llvm/include/llvm/Frontend/OpenMP/OMPConstants.h index 1c3cd4c71c9..718808329a9 100644 --- a/llvm/include/llvm/Frontend/OpenMP/OMPConstants.h +++ b/llvm/include/llvm/Frontend/OpenMP/OMPConstants.h @@ -15,6 +15,7 @@ #define LLVM_OPENMP_CONSTANTS_H #include "llvm/ADT/BitmaskEnum.h" +#include "llvm/Frontend/OpenMP/OMP.h.inc" namespace llvm { class Type; @@ -28,26 +29,6 @@ class FunctionType; namespace omp { LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(); -/// IDs for all OpenMP directives. -enum class Directive { -#define OMP_DIRECTIVE(Enum, ...) Enum, -#include "llvm/Frontend/OpenMP/OMPKinds.def" -}; - -/// IDs for all OpenMP clauses. -enum class Clause { -#define OMP_CLAUSE(Enum, ...) Enum, -#include "llvm/Frontend/OpenMP/OMPKinds.def" -}; - -/// Make the enum values available in the llvm::omp namespace. This allows us to -/// write something like OMPD_parallel if we have a `using namespace omp`. At -/// the same time we do not loose the strong type guarantees of the enum class, -/// that is we cannot pass an unsigned as Directive without an explicit cast. -#define OMP_DIRECTIVE(Enum, ...) constexpr auto Enum = omp::Directive::Enum; -#define OMP_CLAUSE(Enum, ...) constexpr auto Enum = omp::Clause::Enum; -#include "llvm/Frontend/OpenMP/OMPKinds.def" - /// IDs for all omp runtime library (RTL) functions. enum class RuntimeFunction { #define OMP_RTL(Enum, ...) Enum, diff --git a/llvm/lib/Frontend/OpenMP/CMakeLists.txt b/llvm/lib/Frontend/OpenMP/CMakeLists.txt index 7c332c106c1..d137304ddc3 100644 --- a/llvm/lib/Frontend/OpenMP/CMakeLists.txt +++ b/llvm/lib/Frontend/OpenMP/CMakeLists.txt @@ -9,4 +9,5 @@ add_llvm_component_library(LLVMFrontendOpenMP DEPENDS intrinsics_gen + omp_gen ) diff --git a/llvm/lib/Frontend/OpenMP/OMPConstants.cpp b/llvm/lib/Frontend/OpenMP/OMPConstants.cpp index ed19ae38c69..cd7b46c38e5 100644 --- a/llvm/lib/Frontend/OpenMP/OMPConstants.cpp +++ b/llvm/lib/Frontend/OpenMP/OMPConstants.cpp @@ -56,8 +56,8 @@ StringRef llvm::omp::getOpenMPClauseName(Clause C) { bool llvm::omp::isAllowedClauseForDirective(Directive D, Clause C, unsigned Version) { - assert(unsigned(D) <= unsigned(OMPD_unknown)); - assert(unsigned(C) <= unsigned(OMPC_unknown)); + assert(unsigned(D) <= llvm::omp::Directive_enumSize); + assert(unsigned(C) <= llvm::omp::Clause_enumSize); #define OMP_DIRECTIVE_CLAUSE(Dir, MinVersion, MaxVersion, Cl) \ if (D == Dir && C == Cl && MinVersion <= Version && MaxVersion >= Version) \ return true; diff --git a/llvm/test/TableGen/directive1.td b/llvm/test/TableGen/directive1.td new file mode 100644 index 00000000000..f32c202fb58 --- /dev/null +++ b/llvm/test/TableGen/directive1.td @@ -0,0 +1,42 @@ +// RUN: llvm-tblgen -gen-directive-decls -I %p/../../include %s | FileCheck %s + +include "llvm/Frontend/Directive/DirectiveBase.td" + +def TestDirectiveLanguage : DirectiveLanguage { + let name = "tdl"; + + let cppNamespace = "tdl"; + let directivePrefix = "TDLD_"; + let clausePrefix = "TDLC_"; + let makeEnumAvailableInNamespace = 1; + let enableBitmaskEnumInNamespace = 1; +} + +def TDLC_ClauseA : Clause<"clausea"> {} +def TDLC_ClauseB : Clause<"clauseb"> {} + +def TDL_DirA : Directive<"dira"> { + let allowedClauses = [TDLC_ClauseA, TDLC_ClauseB]; +} + +// CHECK: #ifndef LLVM_tdl_INC +// CHECK-NEXT: #define LLVM_tdl_INC +// CHECK-NEXT: #include "llvm/ADT/BitmaskEnum.h" +// CHECK-NEXT: namespace llvm { +// CHECK-NEXT: namespace tdl { +// CHECK-NEXT: LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(); +// CHECK-NEXT: enum class Directive { +// CHECK-NEXT: TDLD_dira, +// CHECK-NEXT: } +// CHECK-NEXT: static constexpr std::size_t Directive_enumSize = 1; +// CHECK-NEXT: enum class Clause { +// CHECK-NEXT: TDLC_clausea, +// CHECK-NEXT: TDLC_clauseb, +// CHECK-NEXT: } +// CHECK-NEXT: static constexpr std::size_t Clause_enumSize = 2; +// CHECK-NEXT: constexpr auto TDLD_dira = tdl::Directive::TDLD_dira; +// CHECK-NEXT: constexpr auto TDLC_clausea = tdl::Clause::TDLC_clausea; +// CHECK-NEXT: constexpr auto TDLC_clauseb = tdl::Clause::TDLC_clauseb; +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: #endif diff --git a/llvm/test/TableGen/directive2.td b/llvm/test/TableGen/directive2.td new file mode 100644 index 00000000000..99823da1a59 --- /dev/null +++ b/llvm/test/TableGen/directive2.td @@ -0,0 +1,35 @@ +// RUN: llvm-tblgen -gen-directive-decls -I %p/../../include %s | FileCheck %s + +include "llvm/Frontend/Directive/DirectiveBase.td" + +def TestDirectiveLanguage : DirectiveLanguage { + let name = "tdl"; + + let cppNamespace = "tdl"; + let directivePrefix = "TDLD_"; + let clausePrefix = "TDLC_"; +} + +def TDLC_ClauseA : Clause<"clausea"> {} +def TDLC_ClauseB : Clause<"clauseb"> {} + +def TDL_DirA : Directive<"dira"> { + let allowedClauses = [TDLC_ClauseA, TDLC_ClauseB]; +} + +// CHECK: #ifndef LLVM_tdl_INC +// CHECK-NEXT: #define LLVM_tdl_INC +// CHECK-NEXT: namespace llvm { +// CHECK-NEXT: namespace tdl { +// CHECK-NEXT: enum class Directive { +// CHECK-NEXT: TDLD_dira, +// CHECK-NEXT: } +// CHECK-NEXT: static constexpr std::size_t Directive_enumSize = 1; +// CHECK-NEXT: enum class Clause { +// CHECK-NEXT: TDLC_clausea, +// CHECK-NEXT: TDLC_clauseb, +// CHECK-NEXT: } +// CHECK-NEXT: static constexpr std::size_t Clause_enumSize = 2; +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: #endif diff --git a/llvm/utils/TableGen/CMakeLists.txt b/llvm/utils/TableGen/CMakeLists.txt index dbca62c5c78..8673a257246 100644 --- a/llvm/utils/TableGen/CMakeLists.txt +++ b/llvm/utils/TableGen/CMakeLists.txt @@ -23,6 +23,7 @@ add_tablegen(llvm-tblgen LLVM DAGISelMatcher.cpp DFAEmitter.cpp DFAPacketizerEmitter.cpp + DirectiveEmitter.cpp DisassemblerEmitter.cpp ExegesisEmitter.cpp FastISelEmitter.cpp diff --git a/llvm/utils/TableGen/DirectiveEmitter.cpp b/llvm/utils/TableGen/DirectiveEmitter.cpp new file mode 100644 index 00000000000..5555494ccf4 --- /dev/null +++ b/llvm/utils/TableGen/DirectiveEmitter.cpp @@ -0,0 +1,115 @@ +//===- DirectiveEmitter.cpp - Directive Language Emitter ------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// +// +// DirectiveEmitter uses the descriptions of directives and clauses to construct +// common code declarations to be used in Frontends. +// +//===----------------------------------------------------------------------===// + +#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringExtras.h" +#include "llvm/TableGen/Error.h" +#include "llvm/TableGen/Record.h" +#include "llvm/TableGen/TableGenBackend.h" + +namespace llvm { +void EmitDirectivesEnums(RecordKeeper &Records, raw_ostream &OS) { + + const auto &DirectiveLanguages = + Records.getAllDerivedDefinitions("DirectiveLanguage"); + + if (DirectiveLanguages.size() != 1) { + PrintError("A single definition of DirectiveLanguage is needed."); + return; + } + + const auto &DirectiveLanguage = DirectiveLanguages[0]; + StringRef languageName = DirectiveLanguage->getValueAsString("name"); + StringRef DirectivePrefix = + DirectiveLanguage->getValueAsString("directivePrefix"); + StringRef ClausePrefix = DirectiveLanguage->getValueAsString("clausePrefix"); + StringRef CppNamespace = DirectiveLanguage->getValueAsString("cppNamespace"); + bool MakeEnumAvailableInNamespace = + DirectiveLanguage->getValueAsBit("makeEnumAvailableInNamespace"); + bool EnableBitmaskEnumInNamespace = + DirectiveLanguage->getValueAsBit("enableBitmaskEnumInNamespace"); + + OS << "#ifndef LLVM_" << languageName << "_INC\n"; + OS << "#define LLVM_" << languageName << "_INC\n"; + + if (EnableBitmaskEnumInNamespace) + OS << "#include \"llvm/ADT/BitmaskEnum.h\"\n"; + + OS << "namespace llvm {\n"; + + // Open namespaces defined in the directive language + llvm::SmallVector Namespaces; + llvm::SplitString(CppNamespace, Namespaces, "::"); + for (auto Ns : Namespaces) + OS << "namespace " << Ns << " {\n"; + + if (EnableBitmaskEnumInNamespace) + OS << "LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();\n"; + + // Emit Directive enumeration + OS << "enum class Directive {\n"; + const auto &Directives = Records.getAllDerivedDefinitions("Directive"); + for (const auto &D : Directives) { + const auto Name = D->getValueAsString("name"); + std::string N = Name.str(); + std::replace(N.begin(), N.end(), ' ', '_'); + OS << DirectivePrefix << N << ",\n"; + } + OS << "};\n"; + + OS << "static constexpr std::size_t Directive_enumSize = " + << Directives.size() << ";\n"; + + // Emit Clause enumeration + OS << "enum class Clause {\n"; + const auto &Clauses = Records.getAllDerivedDefinitions("Clause"); + for (const auto &C : Clauses) { + const auto Name = C->getValueAsString("name"); + OS << ClausePrefix << Name << ",\n"; + } + OS << "};\n"; + + OS << "static constexpr std::size_t Clause_enumSize = " << Clauses.size() + << ";\n"; + + // Make the enum values available in the defined namespace. This allows us to + // write something like Enum_X if we have a `using namespace `. + // At the same time we do not loose the strong type guarantees of the enum + // class, that is we cannot pass an unsigned as Directive without an explicit + // cast. + if (MakeEnumAvailableInNamespace) { + for (const auto &D : Directives) { + const auto Name = D->getValueAsString("name"); + std::string N = Name.str(); + std::replace(N.begin(), N.end(), ' ', '_'); + OS << "constexpr auto " << DirectivePrefix << N << " = " << CppNamespace + << "::Directive::" << DirectivePrefix << N << ";\n"; + } + + for (const auto &C : Clauses) { + const auto Name = C->getValueAsString("name"); + OS << "constexpr auto " << ClausePrefix << Name << " = " << CppNamespace + << "::Clause::" << ClausePrefix << Name << ";\n"; + } + } + + // Closing namespaces + for (auto Ns : llvm::reverse(Namespaces)) + OS << "} // namespace " << Ns << "\n"; + + OS << "} // namespace llvm\n"; + + OS << "#endif"; +} +} // namespace llvm diff --git a/llvm/utils/TableGen/TableGen.cpp b/llvm/utils/TableGen/TableGen.cpp index 6da6599eb54..8bb85dff92e 100644 --- a/llvm/utils/TableGen/TableGen.cpp +++ b/llvm/utils/TableGen/TableGen.cpp @@ -54,6 +54,7 @@ enum ActionType { GenRegisterBank, GenExegesis, GenAutomata, + GenDirectivesEnums, }; namespace llvm { @@ -128,7 +129,9 @@ cl::opt Action( "Generate registers bank descriptions"), clEnumValN(GenExegesis, "gen-exegesis", "Generate llvm-exegesis tables"), - clEnumValN(GenAutomata, "gen-automata", "Generate generic automata"))); + clEnumValN(GenAutomata, "gen-automata", "Generate generic automata"), + clEnumValN(GenDirectivesEnums, "gen-directive-decls", + "Generate directive related declaration code"))); cl::OptionCategory PrintEnumsCat("Options for -print-enums"); cl::opt Class("class", cl::desc("Print Enum list for this class"), @@ -253,6 +256,9 @@ bool LLVMTableGenMain(raw_ostream &OS, RecordKeeper &Records) { case GenAutomata: EmitAutomata(Records, OS); break; + case GenDirectivesEnums: + EmitDirectivesEnums(Records, OS); + break; } return false; diff --git a/llvm/utils/TableGen/TableGenBackends.h b/llvm/utils/TableGen/TableGenBackends.h index 9eef77a4577..3e65ad03b4a 100644 --- a/llvm/utils/TableGen/TableGenBackends.h +++ b/llvm/utils/TableGen/TableGenBackends.h @@ -90,6 +90,7 @@ void EmitX86FoldTables(RecordKeeper &RK, raw_ostream &OS); void EmitRegisterBank(RecordKeeper &RK, raw_ostream &OS); void EmitExegesis(RecordKeeper &RK, raw_ostream &OS); void EmitAutomata(RecordKeeper &RK, raw_ostream &OS); +void EmitDirectivesEnums(RecordKeeper &RK, raw_ostream &OS); } // End llvm namespace -- 2.11.0