From: Alexey Bataev Date: Wed, 14 Feb 2018 17:38:47 +0000 (+0000) Subject: [OpenMP] Fix trailing space when printing pragmas, by Joel. E. Denny X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=62d1174367d14cb81350541c638ab1c2505f195c;p=clang [OpenMP] Fix trailing space when printing pragmas, by Joel. E. Denny Summary: -ast-print prints omp pragmas with a trailing space. While this behavior is likely of little concern to most users, surely it's unintentional, and it's annoying for some source-level work I'm pursuing. This patch focuses on omp pragmas, but it also fixes init_seg and loop hint pragmas because they share implementation. The testing strategy here is to add usually just one '{{$}}' per relevant -ast-print test file. This seems to achieve good code coverage. However, this strategy is probably easy to forget as the tests evolve. That's probably fine as this fix is far from critical. The main goal of the testing is to aid the initial review. This patch also adds a fixme for "#pragma unroll", which prints as "#pragma unroll (enable)", which is invalid syntax. Reviewers: ABataev Reviewed By: ABataev Subscribers: guansong, cfe-commits Differential Revision: https://reviews.llvm.org/D43204 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@325145 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/Attr.td b/include/clang/Basic/Attr.td index 3e72700d33..5d8b645d48 100644 --- a/include/clang/Basic/Attr.td +++ b/include/clang/Basic/Attr.td @@ -2600,7 +2600,7 @@ def InitSeg : Attr { let Documentation = [InitSegDocs]; let AdditionalMembers = [{ void printPrettyPragma(raw_ostream &OS, const PrintingPolicy &Policy) const { - OS << '(' << getSection() << ')'; + OS << " (" << getSection() << ')'; } }]; } @@ -2655,12 +2655,12 @@ def LoopHint : Attr { if (SpellingIndex == Pragma_nounroll) return; else if (SpellingIndex == Pragma_unroll) { - OS << getValueString(Policy); + OS << ' ' << getValueString(Policy); return; } assert(SpellingIndex == Pragma_clang_loop && "Unexpected spelling"); - OS << getOptionName(option) << getValueString(Policy); + OS << ' ' << getOptionName(option) << getValueString(Policy); } // Return a string containing the loop hint argument including the @@ -2747,37 +2747,37 @@ def OMPDeclareSimdDecl : Attr { void printPrettyPragma(raw_ostream & OS, const PrintingPolicy &Policy) const { if (getBranchState() != BS_Undefined) - OS << ConvertBranchStateTyToStr(getBranchState()) << " "; + OS << ' ' << ConvertBranchStateTyToStr(getBranchState()); if (auto *E = getSimdlen()) { - OS << "simdlen("; + OS << " simdlen("; E->printPretty(OS, nullptr, Policy); - OS << ") "; + OS << ")"; } if (uniforms_size() > 0) { - OS << "uniform"; + OS << " uniform"; StringRef Sep = "("; for (auto *E : uniforms()) { OS << Sep; E->printPretty(OS, nullptr, Policy); Sep = ", "; } - OS << ") "; + OS << ")"; } alignments_iterator NI = alignments_begin(); for (auto *E : aligneds()) { - OS << "aligned("; + OS << " aligned("; E->printPretty(OS, nullptr, Policy); if (*NI) { OS << ": "; (*NI)->printPretty(OS, nullptr, Policy); } - OS << ") "; + OS << ")"; ++NI; } steps_iterator I = steps_begin(); modifiers_iterator MI = modifiers_begin(); for (auto *E : linears()) { - OS << "linear("; + OS << " linear("; if (*MI != OMPC_LINEAR_unknown) OS << getOpenMPSimpleClauseTypeName(OMPC_linear, *MI) << "("; E->printPretty(OS, nullptr, Policy); @@ -2787,7 +2787,7 @@ def OMPDeclareSimdDecl : Attr { OS << ": "; (*I)->printPretty(OS, nullptr, Policy); } - OS << ") "; + OS << ")"; ++I; ++MI; } @@ -2808,7 +2808,7 @@ def OMPDeclareTargetDecl : Attr { void printPrettyPragma(raw_ostream &OS, const PrintingPolicy &Policy) const { // Use fake syntax because it is for testing and debugging purpose only. if (getMapType() != MT_To) - OS << ConvertMapTypeTyToStr(getMapType()) << " "; + OS << ' ' << ConvertMapTypeTyToStr(getMapType()); } }]; } diff --git a/lib/AST/StmtPrinter.cpp b/lib/AST/StmtPrinter.cpp index de8f6a6481..3022483046 100644 --- a/lib/AST/StmtPrinter.cpp +++ b/lib/AST/StmtPrinter.cpp @@ -1030,8 +1030,8 @@ void StmtPrinter::PrintOMPExecutableDirective(OMPExecutableDirective *S, for (ArrayRef::iterator I = Clauses.begin(), E = Clauses.end(); I != E; ++I) if (*I && !(*I)->isImplicit()) { - Printer.Visit(*I); OS << ' '; + Printer.Visit(*I); } OS << "\n"; if (!ForceNoStmt && S->hasAssociatedStmt()) @@ -1039,27 +1039,27 @@ void StmtPrinter::PrintOMPExecutableDirective(OMPExecutableDirective *S, } void StmtPrinter::VisitOMPParallelDirective(OMPParallelDirective *Node) { - Indent() << "#pragma omp parallel "; + Indent() << "#pragma omp parallel"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPSimdDirective(OMPSimdDirective *Node) { - Indent() << "#pragma omp simd "; + Indent() << "#pragma omp simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPForDirective(OMPForDirective *Node) { - Indent() << "#pragma omp for "; + Indent() << "#pragma omp for"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPForSimdDirective(OMPForSimdDirective *Node) { - Indent() << "#pragma omp for simd "; + Indent() << "#pragma omp for simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPSectionsDirective(OMPSectionsDirective *Node) { - Indent() << "#pragma omp sections "; + Indent() << "#pragma omp sections"; PrintOMPExecutableDirective(Node); } @@ -1069,7 +1069,7 @@ void StmtPrinter::VisitOMPSectionDirective(OMPSectionDirective *Node) { } void StmtPrinter::VisitOMPSingleDirective(OMPSingleDirective *Node) { - Indent() << "#pragma omp single "; + Indent() << "#pragma omp single"; PrintOMPExecutableDirective(Node); } @@ -1085,29 +1085,28 @@ void StmtPrinter::VisitOMPCriticalDirective(OMPCriticalDirective *Node) { Node->getDirectiveName().printName(OS); OS << ")"; } - OS << " "; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPParallelForDirective(OMPParallelForDirective *Node) { - Indent() << "#pragma omp parallel for "; + Indent() << "#pragma omp parallel for"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPParallelForSimdDirective( OMPParallelForSimdDirective *Node) { - Indent() << "#pragma omp parallel for simd "; + Indent() << "#pragma omp parallel for simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPParallelSectionsDirective( OMPParallelSectionsDirective *Node) { - Indent() << "#pragma omp parallel sections "; + Indent() << "#pragma omp parallel sections"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTaskDirective(OMPTaskDirective *Node) { - Indent() << "#pragma omp task "; + Indent() << "#pragma omp task"; PrintOMPExecutableDirective(Node); } @@ -1127,61 +1126,61 @@ void StmtPrinter::VisitOMPTaskwaitDirective(OMPTaskwaitDirective *Node) { } void StmtPrinter::VisitOMPTaskgroupDirective(OMPTaskgroupDirective *Node) { - Indent() << "#pragma omp taskgroup "; + Indent() << "#pragma omp taskgroup"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPFlushDirective(OMPFlushDirective *Node) { - Indent() << "#pragma omp flush "; + Indent() << "#pragma omp flush"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPOrderedDirective(OMPOrderedDirective *Node) { - Indent() << "#pragma omp ordered "; + Indent() << "#pragma omp ordered"; PrintOMPExecutableDirective(Node, Node->hasClausesOfKind()); } void StmtPrinter::VisitOMPAtomicDirective(OMPAtomicDirective *Node) { - Indent() << "#pragma omp atomic "; + Indent() << "#pragma omp atomic"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetDirective(OMPTargetDirective *Node) { - Indent() << "#pragma omp target "; + Indent() << "#pragma omp target"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetDataDirective(OMPTargetDataDirective *Node) { - Indent() << "#pragma omp target data "; + Indent() << "#pragma omp target data"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetEnterDataDirective( OMPTargetEnterDataDirective *Node) { - Indent() << "#pragma omp target enter data "; + Indent() << "#pragma omp target enter data"; PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); } void StmtPrinter::VisitOMPTargetExitDataDirective( OMPTargetExitDataDirective *Node) { - Indent() << "#pragma omp target exit data "; + Indent() << "#pragma omp target exit data"; PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); } void StmtPrinter::VisitOMPTargetParallelDirective( OMPTargetParallelDirective *Node) { - Indent() << "#pragma omp target parallel "; + Indent() << "#pragma omp target parallel"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetParallelForDirective( OMPTargetParallelForDirective *Node) { - Indent() << "#pragma omp target parallel for "; + Indent() << "#pragma omp target parallel for"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTeamsDirective(OMPTeamsDirective *Node) { - Indent() << "#pragma omp teams "; + Indent() << "#pragma omp teams"; PrintOMPExecutableDirective(Node); } @@ -1194,111 +1193,111 @@ void StmtPrinter::VisitOMPCancellationPointDirective( void StmtPrinter::VisitOMPCancelDirective(OMPCancelDirective *Node) { Indent() << "#pragma omp cancel " - << getOpenMPDirectiveName(Node->getCancelRegion()) << " "; + << getOpenMPDirectiveName(Node->getCancelRegion()); PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTaskLoopDirective(OMPTaskLoopDirective *Node) { - Indent() << "#pragma omp taskloop "; + Indent() << "#pragma omp taskloop"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTaskLoopSimdDirective( OMPTaskLoopSimdDirective *Node) { - Indent() << "#pragma omp taskloop simd "; + Indent() << "#pragma omp taskloop simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPDistributeDirective(OMPDistributeDirective *Node) { - Indent() << "#pragma omp distribute "; + Indent() << "#pragma omp distribute"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetUpdateDirective( OMPTargetUpdateDirective *Node) { - Indent() << "#pragma omp target update "; + Indent() << "#pragma omp target update"; PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); } void StmtPrinter::VisitOMPDistributeParallelForDirective( OMPDistributeParallelForDirective *Node) { - Indent() << "#pragma omp distribute parallel for "; + Indent() << "#pragma omp distribute parallel for"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPDistributeParallelForSimdDirective( OMPDistributeParallelForSimdDirective *Node) { - Indent() << "#pragma omp distribute parallel for simd "; + Indent() << "#pragma omp distribute parallel for simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPDistributeSimdDirective( OMPDistributeSimdDirective *Node) { - Indent() << "#pragma omp distribute simd "; + Indent() << "#pragma omp distribute simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetParallelForSimdDirective( OMPTargetParallelForSimdDirective *Node) { - Indent() << "#pragma omp target parallel for simd "; + Indent() << "#pragma omp target parallel for simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetSimdDirective(OMPTargetSimdDirective *Node) { - Indent() << "#pragma omp target simd "; + Indent() << "#pragma omp target simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTeamsDistributeDirective( OMPTeamsDistributeDirective *Node) { - Indent() << "#pragma omp teams distribute "; + Indent() << "#pragma omp teams distribute"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTeamsDistributeSimdDirective( OMPTeamsDistributeSimdDirective *Node) { - Indent() << "#pragma omp teams distribute simd "; + Indent() << "#pragma omp teams distribute simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTeamsDistributeParallelForSimdDirective( OMPTeamsDistributeParallelForSimdDirective *Node) { - Indent() << "#pragma omp teams distribute parallel for simd "; + Indent() << "#pragma omp teams distribute parallel for simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTeamsDistributeParallelForDirective( OMPTeamsDistributeParallelForDirective *Node) { - Indent() << "#pragma omp teams distribute parallel for "; + Indent() << "#pragma omp teams distribute parallel for"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetTeamsDirective(OMPTargetTeamsDirective *Node) { - Indent() << "#pragma omp target teams "; + Indent() << "#pragma omp target teams"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetTeamsDistributeDirective( OMPTargetTeamsDistributeDirective *Node) { - Indent() << "#pragma omp target teams distribute "; + Indent() << "#pragma omp target teams distribute"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetTeamsDistributeParallelForDirective( OMPTargetTeamsDistributeParallelForDirective *Node) { - Indent() << "#pragma omp target teams distribute parallel for "; + Indent() << "#pragma omp target teams distribute parallel for"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetTeamsDistributeParallelForSimdDirective( OMPTargetTeamsDistributeParallelForSimdDirective *Node) { - Indent() << "#pragma omp target teams distribute parallel for simd "; + Indent() << "#pragma omp target teams distribute parallel for simd"; PrintOMPExecutableDirective(Node); } void StmtPrinter::VisitOMPTargetTeamsDistributeSimdDirective( OMPTargetTeamsDistributeSimdDirective *Node) { - Indent() << "#pragma omp target teams distribute simd "; + Indent() << "#pragma omp target teams distribute simd"; PrintOMPExecutableDirective(Node); } diff --git a/test/Misc/ast-print-pragmas.cpp b/test/Misc/ast-print-pragmas.cpp index 5840c1a2c3..f1a7b2479b 100644 --- a/test/Misc/ast-print-pragmas.cpp +++ b/test/Misc/ast-print-pragmas.cpp @@ -4,7 +4,7 @@ // FIXME: A bug in ParsedAttributes causes the order of the attributes to be // reversed. The checks are consequently in the reverse order below. -// CHECK: #pragma clang loop interleave_count(8) +// CHECK: #pragma clang loop interleave_count(8){{$}} // CHECK-NEXT: #pragma clang loop vectorize_width(4) void test(int *List, int Length) { @@ -61,7 +61,7 @@ void test_templates(int *List, int Length) { #ifdef MS_EXT #pragma init_seg(compiler) -// MS-EXT: #pragma init_seg (.CRT$XCC) +// MS-EXT: #pragma init_seg (.CRT$XCC){{$}} // MS-EXT-NEXT: int x = 3 __declspec(thread); int __declspec(thread) x = 3; #endif //MS_EXT diff --git a/test/OpenMP/atomic_ast_print.cpp b/test/OpenMP/atomic_ast_print.cpp index 755828f8f7..c66249b708 100644 --- a/test/OpenMP/atomic_ast_print.cpp +++ b/test/OpenMP/atomic_ast_print.cpp @@ -48,7 +48,7 @@ T foo(T argc) { } // CHECK: T a = T(); -// CHECK-NEXT: #pragma omp atomic +// CHECK-NEXT: #pragma omp atomic{{$}} // CHECK-NEXT: a++; // CHECK-NEXT: #pragma omp atomic read // CHECK-NEXT: a = argc; diff --git a/test/OpenMP/barrier_ast_print.cpp b/test/OpenMP/barrier_ast_print.cpp index 2046d4f89b..a8db2172c1 100644 --- a/test/OpenMP/barrier_ast_print.cpp +++ b/test/OpenMP/barrier_ast_print.cpp @@ -28,7 +28,7 @@ T tmain(T argc) { return a + argc; } // CHECK: static T a; -// CHECK-NEXT: #pragma omp barrier +// CHECK-NEXT: #pragma omp barrier{{$}} // CHECK: static int a; // CHECK-NEXT: #pragma omp barrier // CHECK: static char a; diff --git a/test/OpenMP/cancel_ast_print.cpp b/test/OpenMP/cancel_ast_print.cpp index 8c80024653..b376d4ec28 100644 --- a/test/OpenMP/cancel_ast_print.cpp +++ b/test/OpenMP/cancel_ast_print.cpp @@ -26,7 +26,7 @@ int main (int argc, char **argv) { } // CHECK-NEXT: #pragma omp sections // CHECK: { -// CHECK: #pragma omp cancel sections +// CHECK: #pragma omp cancel sections{{$}} // CHECK: } #pragma omp for for (int i = 0; i < argc; ++i) { diff --git a/test/OpenMP/cancellation_point_ast_print.cpp b/test/OpenMP/cancellation_point_ast_print.cpp index 65506f26ae..d27d2b75fd 100644 --- a/test/OpenMP/cancellation_point_ast_print.cpp +++ b/test/OpenMP/cancellation_point_ast_print.cpp @@ -18,7 +18,7 @@ int main (int argc, char **argv) { } // CHECK: #pragma omp parallel // CHECK-NEXT: { -// CHECK-NEXT: #pragma omp cancellation point parallel +// CHECK-NEXT: #pragma omp cancellation point parallel{{$}} // CHECK-NEXT: } #pragma omp sections { diff --git a/test/OpenMP/critical_ast_print.cpp b/test/OpenMP/critical_ast_print.cpp index 0a00d456f3..f51145e584 100644 --- a/test/OpenMP/critical_ast_print.cpp +++ b/test/OpenMP/critical_ast_print.cpp @@ -14,10 +14,10 @@ void foo() {} // CHECK: template int tmain(T argc, char **argv) // CHECK: static int a; -// CHECK-NEXT: #pragma omp critical +// CHECK-NEXT: #pragma omp critical{{$}} // CHECK-NEXT: a = 2; // CHECK-NEXT: ++a; -// CHECK-NEXT: #pragma omp critical (the_name) hint(N) +// CHECK-NEXT: #pragma omp critical (the_name) hint(N){{$}} // CHECK-NEXT: foo(); // CHECK-NEXT: return N; // CHECK: template<> int tmain(int argc, char **argv) diff --git a/test/OpenMP/declare_reduction_ast_print.c b/test/OpenMP/declare_reduction_ast_print.c index e1d890b2fd..239b1cfd44 100644 --- a/test/OpenMP/declare_reduction_ast_print.c +++ b/test/OpenMP/declare_reduction_ast_print.c @@ -11,7 +11,7 @@ #define HEADER #pragma omp declare reduction(+ : int, char : omp_out *= omp_in) -// CHECK: #pragma omp declare reduction (+ : int : omp_out *= omp_in) +// CHECK: #pragma omp declare reduction (+ : int : omp_out *= omp_in){{$}} // CHECK-NEXT: #pragma omp declare reduction (+ : char : omp_out *= omp_in) #pragma omp declare reduction(fun : float : omp_out += omp_in) initializer(omp_priv = omp_orig + 15) diff --git a/test/OpenMP/declare_reduction_ast_print.cpp b/test/OpenMP/declare_reduction_ast_print.cpp index 09c89d2058..a8ca529c45 100644 --- a/test/OpenMP/declare_reduction_ast_print.cpp +++ b/test/OpenMP/declare_reduction_ast_print.cpp @@ -11,7 +11,7 @@ #define HEADER #pragma omp declare reduction(+ : int, char : omp_out *= omp_in) -// CHECK: #pragma omp declare reduction (+ : int : omp_out *= omp_in) +// CHECK: #pragma omp declare reduction (+ : int : omp_out *= omp_in){{$}} // CHECK-NEXT: #pragma omp declare reduction (+ : char : omp_out *= omp_in) template diff --git a/test/OpenMP/declare_simd_ast_print.c b/test/OpenMP/declare_simd_ast_print.c index 08626a3d6f..414b010387 100644 --- a/test/OpenMP/declare_simd_ast_print.c +++ b/test/OpenMP/declare_simd_ast_print.c @@ -16,10 +16,10 @@ #pragma omp declare simd notinbranch simdlen(2), uniform(s1, s2) linear(d: s1) void add_1(float *d, int s1, float *s2, double b[]) __attribute__((cold)); -// CHECK: #pragma omp declare simd notinbranch simdlen(2) uniform(s1, s2) linear(val(d): s1) -// CHECK-NEXT: #pragma omp declare simd inbranch uniform(d) linear(val(s1): 32) linear(val(s2): 32) -// CHECK-NEXT: #pragma omp declare simd simdlen(32) aligned(d) aligned(b) -// CHECK-NEXT: #pragma omp declare simd aligned(b: 64) +// CHECK: #pragma omp declare simd notinbranch simdlen(2) uniform(s1, s2) linear(val(d): s1){{$}} +// CHECK-NEXT: #pragma omp declare simd inbranch uniform(d) linear(val(s1): 32) linear(val(s2): 32){{$}} +// CHECK-NEXT: #pragma omp declare simd simdlen(32) aligned(d) aligned(b){{$}} +// CHECK-NEXT: #pragma omp declare simd aligned(b: 64){{$}} // CHECK-NEXT: void add_1(float *d, int s1, float *s2, double b[]) __attribute__((cold)) #endif diff --git a/test/OpenMP/declare_simd_ast_print.cpp b/test/OpenMP/declare_simd_ast_print.cpp index 0e3eb08972..c09f8b42e6 100644 --- a/test/OpenMP/declare_simd_ast_print.cpp +++ b/test/OpenMP/declare_simd_ast_print.cpp @@ -84,8 +84,8 @@ private: // CHECK-NEXT: float taddpf(float *a, T *&b) { // CHECK-NEXT: return *a + *b; // CHECK-NEXT: } -// CHECK: #pragma omp declare simd -// CHECK-NEXT: #pragma omp declare simd +// CHECK: #pragma omp declare simd uniform(this, b) +// CHECK-NEXT: #pragma omp declare simd{{$}} // CHECK-NEXT: int tadd(int b) { // CHECK-NEXT: return this->x[b] + b; // CHECK-NEXT: } diff --git a/test/OpenMP/declare_target_ast_print.cpp b/test/OpenMP/declare_target_ast_print.cpp index 68aa886021..bd1acc28dc 100644 --- a/test/OpenMP/declare_target_ast_print.cpp +++ b/test/OpenMP/declare_target_ast_print.cpp @@ -11,11 +11,11 @@ #define HEADER #pragma omp declare target -// CHECK: #pragma omp declare target +// CHECK: #pragma omp declare target{{$}} void foo() {} // CHECK-NEXT: void foo() #pragma omp end declare target -// CHECK: #pragma omp end declare target +// CHECK: #pragma omp end declare target{{$}} extern "C" { #pragma omp declare target @@ -87,41 +87,41 @@ int a1; void f1() { } #pragma omp declare target (a1, f1) -// CHECK: #pragma omp declare target +// CHECK: #pragma omp declare target{{$}} // CHECK: int a1; -// CHECK: #pragma omp end declare target -// CHECK: #pragma omp declare target +// CHECK: #pragma omp end declare target{{$}} +// CHECK: #pragma omp declare target{{$}} // CHECK: void f1() -// CHECK: #pragma omp end declare target +// CHECK: #pragma omp end declare target{{$}} int b1, b2, b3; void f2() { } #pragma omp declare target to(b1) to(b2), to(b3, f2) -// CHECK: #pragma omp declare target +// CHECK: #pragma omp declare target{{$}} // CHECK: int b1; -// CHECK: #pragma omp end declare target -// CHECK: #pragma omp declare target +// CHECK: #pragma omp end declare target{{$}} +// CHECK: #pragma omp declare target{{$}} // CHECK: int b2; -// CHECK: #pragma omp end declare target -// CHECK: #pragma omp declare target +// CHECK: #pragma omp end declare target{{$}} +// CHECK: #pragma omp declare target{{$}} // CHECK: int b3; -// CHECK: #pragma omp end declare target -// CHECK: #pragma omp declare target +// CHECK: #pragma omp end declare target{{$}} +// CHECK: #pragma omp declare target{{$}} // CHECK: void f2() -// CHECK: #pragma omp end declare target +// CHECK: #pragma omp end declare target{{$}} int c1, c2, c3; #pragma omp declare target link(c1) link(c2), link(c3) -// CHECK: #pragma omp declare target link +// CHECK: #pragma omp declare target link{{$}} // CHECK: int c1; -// CHECK: #pragma omp end declare target -// CHECK: #pragma omp declare target link +// CHECK: #pragma omp end declare target{{$}} +// CHECK: #pragma omp declare target link{{$}} // CHECK: int c2; -// CHECK: #pragma omp end declare target -// CHECK: #pragma omp declare target link +// CHECK: #pragma omp end declare target{{$}} +// CHECK: #pragma omp declare target link{{$}} // CHECK: int c3; -// CHECK: #pragma omp end declare target +// CHECK: #pragma omp end declare target{{$}} struct SSSt { #pragma omp declare target diff --git a/test/OpenMP/distribute_ast_print.cpp b/test/OpenMP/distribute_ast_print.cpp index be7ddf2763..f675814e57 100644 --- a/test/OpenMP/distribute_ast_print.cpp +++ b/test/OpenMP/distribute_ast_print.cpp @@ -87,7 +87,7 @@ T tmain(T argc) { static T a; // CHECK: static T a; #pragma omp distribute -// CHECK-NEXT: #pragma omp distribute +// CHECK-NEXT: #pragma omp distribute{{$}} for (int i=0; i < 2; ++i)a=2; // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; diff --git a/test/OpenMP/distribute_dist_schedule_ast_print.cpp b/test/OpenMP/distribute_dist_schedule_ast_print.cpp index 85fd85be93..de5e59aef7 100644 --- a/test/OpenMP/distribute_dist_schedule_ast_print.cpp +++ b/test/OpenMP/distribute_dist_schedule_ast_print.cpp @@ -18,7 +18,7 @@ T tmain(T argc) { static T a; // CHECK: static T a; #pragma omp distribute dist_schedule(static,10) -// CHECK-NEXT: #pragma omp distribute dist_schedule(static, 10) +// CHECK-NEXT: #pragma omp distribute dist_schedule(static, 10){{$}} for (int i=0; i < 2; ++i)a=2; // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; diff --git a/test/OpenMP/distribute_parallel_for_ast_print.cpp b/test/OpenMP/distribute_parallel_for_ast_print.cpp index d07ed64900..58e6eb8aa7 100644 --- a/test/OpenMP/distribute_parallel_for_ast_print.cpp +++ b/test/OpenMP/distribute_parallel_for_ast_print.cpp @@ -41,7 +41,7 @@ public: } }; -// CHECK: #pragma omp distribute parallel for private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp distribute parallel for private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp distribute parallel for private(this->a) private(this->a) // CHECK: #pragma omp distribute parallel for private(this->a) private(this->a) private(this->S::a) diff --git a/test/OpenMP/distribute_parallel_for_simd_ast_print.cpp b/test/OpenMP/distribute_parallel_for_simd_ast_print.cpp index cd2dcb7ec1..fff6f965b4 100644 --- a/test/OpenMP/distribute_parallel_for_simd_ast_print.cpp +++ b/test/OpenMP/distribute_parallel_for_simd_ast_print.cpp @@ -42,7 +42,7 @@ public: } }; -// CHECK: #pragma omp distribute parallel for simd private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp distribute parallel for simd private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp distribute parallel for simd private(this->a) private(this->a) linear(k) // CHECK: #pragma omp distribute parallel for simd private(this->a) private(this->a) private(this->S::a) diff --git a/test/OpenMP/distribute_simd_ast_print.cpp b/test/OpenMP/distribute_simd_ast_print.cpp index e866bab0ab..5133db695b 100644 --- a/test/OpenMP/distribute_simd_ast_print.cpp +++ b/test/OpenMP/distribute_simd_ast_print.cpp @@ -41,7 +41,7 @@ public: } }; -// CHECK: #pragma omp distribute simd private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp distribute simd private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp distribute simd private(this->a) private(this->a) // CHECK: #pragma omp distribute simd private(this->a) private(this->a) private(this->S::a) diff --git a/test/OpenMP/flush_ast_print.cpp b/test/OpenMP/flush_ast_print.cpp index 640e04c71c..8cde315a45 100644 --- a/test/OpenMP/flush_ast_print.cpp +++ b/test/OpenMP/flush_ast_print.cpp @@ -20,7 +20,7 @@ T tmain(T argc) { return a + argc; } // CHECK: static T a; -// CHECK-NEXT: #pragma omp flush +// CHECK-NEXT: #pragma omp flush{{$}} // CHECK-NEXT: #pragma omp flush (a) // CHECK: static int a; // CHECK-NEXT: #pragma omp flush diff --git a/test/OpenMP/for_ast_print.cpp b/test/OpenMP/for_ast_print.cpp index 99ff6c1ffa..82318ff800 100644 --- a/test/OpenMP/for_ast_print.cpp +++ b/test/OpenMP/for_ast_print.cpp @@ -169,7 +169,7 @@ int main(int argc, char **argv) { for (q = &buf[0]; q <= buf + 7; q++) foo(); // CHECK: #pragma omp parallel - // CHECK-NEXT: #pragma omp for + // CHECK-NEXT: #pragma omp for{{$}} // CHECK-NEXT: for (p = buf; p < &buf[8]; p++) // CHECK-NEXT: for (q = &buf[0]; q <= buf + 7; q++) // CHECK-NEXT: foo(); diff --git a/test/OpenMP/for_simd_ast_print.cpp b/test/OpenMP/for_simd_ast_print.cpp index 78f37ee7e6..13e82b4647 100644 --- a/test/OpenMP/for_simd_ast_print.cpp +++ b/test/OpenMP/for_simd_ast_print.cpp @@ -37,7 +37,7 @@ public: } }; -// CHECK: #pragma omp for simd private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp for simd private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp for simd private(this->a) private(this->a) // CHECK: #pragma omp for simd private(this->a) private(this->a) private(this->S1::a) diff --git a/test/OpenMP/master_ast_print.cpp b/test/OpenMP/master_ast_print.cpp index 474b2c24f0..40b14c5c50 100644 --- a/test/OpenMP/master_ast_print.cpp +++ b/test/OpenMP/master_ast_print.cpp @@ -25,7 +25,7 @@ int main (int argc, char **argv) { } // CHECK-NEXT: #pragma omp parallel // CHECK-NEXT: { -// CHECK-NEXT: #pragma omp master +// CHECK-NEXT: #pragma omp master{{$}} // CHECK-NEXT: { // CHECK-NEXT: a = 2; // CHECK-NEXT: } diff --git a/test/OpenMP/ordered_ast_print.cpp b/test/OpenMP/ordered_ast_print.cpp index 54ec5e865e..f36afab8b2 100644 --- a/test/OpenMP/ordered_ast_print.cpp +++ b/test/OpenMP/ordered_ast_print.cpp @@ -58,7 +58,7 @@ T tmain (T argc) { // CHECK: static T a; // CHECK-NEXT: #pragma omp for ordered // CHECK-NEXT: for (int i = 0; i < argc; ++i) -// CHECK-NEXT: #pragma omp ordered +// CHECK-NEXT: #pragma omp ordered{{$}} // CHECK-NEXT: { // CHECK-NEXT: a = 2; // CHECK-NEXT: } diff --git a/test/OpenMP/parallel_ast_print.cpp b/test/OpenMP/parallel_ast_print.cpp index cc0b390aca..19ebb70483 100644 --- a/test/OpenMP/parallel_ast_print.cpp +++ b/test/OpenMP/parallel_ast_print.cpp @@ -162,7 +162,7 @@ T tmain(T argc, T *argv) { // CHECK-NEXT: static T a; // CHECK-NEXT: S s; // CHECK-NEXT: T arr[C][10], arr1[C]; -// CHECK-NEXT: #pragma omp parallel +// CHECK-NEXT: #pragma omp parallel{{$}} // CHECK-NEXT: a = 2; // CHECK-NEXT: #pragma omp parallel default(none) private(argc,b) firstprivate(argv) shared(d) if(parallel: argc > 0) num_threads(C) copyin(S::TS,thrp) proc_bind(master) reduction(+: c,arr1[argc]) reduction(max: e,arr[:C][0:10]) // CHECK-NEXT: foo() diff --git a/test/OpenMP/parallel_for_ast_print.cpp b/test/OpenMP/parallel_for_ast_print.cpp index 8b686e33fa..1e77bc855a 100644 --- a/test/OpenMP/parallel_for_ast_print.cpp +++ b/test/OpenMP/parallel_for_ast_print.cpp @@ -39,7 +39,7 @@ public: } }; -// CHECK: #pragma omp parallel for private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp parallel for private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp parallel for private(this->a) private(this->a) // CHECK: #pragma omp parallel for private(this->a) private(this->a) private(this->S::a) diff --git a/test/OpenMP/parallel_for_simd_ast_print.cpp b/test/OpenMP/parallel_for_simd_ast_print.cpp index 48e8a6c3b3..fd4153752a 100644 --- a/test/OpenMP/parallel_for_simd_ast_print.cpp +++ b/test/OpenMP/parallel_for_simd_ast_print.cpp @@ -39,7 +39,7 @@ public: } }; -// CHECK: #pragma omp parallel for simd private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp parallel for simd private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp parallel for simd private(this->a) private(this->a) // CHECK: #pragma omp parallel for simd private(this->a) private(this->a) private(this->S1::a) diff --git a/test/OpenMP/parallel_sections_ast_print.cpp b/test/OpenMP/parallel_sections_ast_print.cpp index 192930aa41..8c0bd0bae5 100644 --- a/test/OpenMP/parallel_sections_ast_print.cpp +++ b/test/OpenMP/parallel_sections_ast_print.cpp @@ -58,7 +58,7 @@ T tmain(T argc, T *argv) { // CHECK-NEXT: T b = argc, c, d, e, f, g; // CHECK-NEXT: static T a; // CHECK-NEXT: S s; -// CHECK-NEXT: #pragma omp parallel sections +// CHECK-NEXT: #pragma omp parallel sections{{$}} // CHECK-NEXT: { // CHECK-NEXT: a = 2; // CHECK-NEXT: } diff --git a/test/OpenMP/sections_ast_print.cpp b/test/OpenMP/sections_ast_print.cpp index 8fe23f45a5..15c8c26e8c 100644 --- a/test/OpenMP/sections_ast_print.cpp +++ b/test/OpenMP/sections_ast_print.cpp @@ -23,7 +23,7 @@ T tmain(T argc) { foo(); } // CHECK-NEXT: #pragma omp parallel - // CHECK-NEXT: #pragma omp sections private(argc,b) firstprivate(c,d) lastprivate(d,f) reduction(-: g) nowait + // CHECK-NEXT: #pragma omp sections private(argc,b) firstprivate(c,d) lastprivate(d,f) reduction(-: g) nowait{{$}} // CHECK-NEXT: { // CHECK-NEXT: foo(); // CHECK-NEXT: } @@ -46,7 +46,7 @@ int main(int argc, char **argv) { // CHECK-NEXT: #pragma omp parallel // CHECK-NEXT: #pragma omp sections private(argc,b) firstprivate(argv,c) lastprivate(d,f) reduction(+: g) nowait // CHECK-NEXT: { - // CHECK-NEXT: #pragma omp section + // CHECK-NEXT: #pragma omp section{{$}} // CHECK-NEXT: foo(); // CHECK-NEXT: #pragma omp section // CHECK-NEXT: foo(); diff --git a/test/OpenMP/simd_ast_print.cpp b/test/OpenMP/simd_ast_print.cpp index 7fd903b9af..ad16fe2de9 100644 --- a/test/OpenMP/simd_ast_print.cpp +++ b/test/OpenMP/simd_ast_print.cpp @@ -38,7 +38,7 @@ public: } }; -// CHECK: #pragma omp simd aligned(this->a) +// CHECK: #pragma omp simd aligned(this->a){{$}} // CHECK: #pragma omp simd aligned(this->b: 8) // CHECK: #pragma omp simd aligned(this->a) @@ -153,7 +153,7 @@ int main (int argc, char **argv) { static int *a; // CHECK: static int *a; #pragma omp simd -// CHECK-NEXT: #pragma omp simd +// CHECK-NEXT: #pragma omp simd{{$}} for (int i=0; i < 2; ++i)*a=2; // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: *a = 2; diff --git a/test/OpenMP/single_ast_print.cpp b/test/OpenMP/single_ast_print.cpp index 6ffd918f1c..a8eaeb0bff 100644 --- a/test/OpenMP/single_ast_print.cpp +++ b/test/OpenMP/single_ast_print.cpp @@ -20,7 +20,7 @@ struct SS { #pragma omp parallel firstprivate(a, b, c) #pragma omp single copyprivate(a, this->b, (this)->c) // CHECK: #pragma omp parallel firstprivate(this->a,this->b,this->c) -// CHECK-NEXT: #pragma omp single copyprivate(this->a,this->b,this->c) +// CHECK-NEXT: #pragma omp single copyprivate(this->a,this->b,this->c){{$}} ++this->a, --b, (this)->c /= 1; } }; diff --git a/test/OpenMP/target_ast_print.cpp b/test/OpenMP/target_ast_print.cpp index 35ff7df6b5..827d6a4e3d 100644 --- a/test/OpenMP/target_ast_print.cpp +++ b/test/OpenMP/target_ast_print.cpp @@ -46,7 +46,7 @@ T tmain(T argc, T *argv) { // CHECK: template T tmain(T argc, T *argv) { // CHECK-NEXT: T i, j, a[20] -// CHECK-NEXT: #pragma omp target +// CHECK-NEXT: #pragma omp target{{$}} // CHECK-NEXT: foo(); // CHECK-NEXT: #pragma omp target if(target: argc > 0) // CHECK-NEXT: foo() diff --git a/test/OpenMP/target_data_ast_print.cpp b/test/OpenMP/target_data_ast_print.cpp index 91eb7182b7..17dace8bfa 100644 --- a/test/OpenMP/target_data_ast_print.cpp +++ b/test/OpenMP/target_data_ast_print.cpp @@ -52,7 +52,7 @@ T tmain(T argc, T *argv) { // CHECK: template T tmain(T argc, T *argv) { // CHECK-NEXT: T i, j, b, c, d, e, x[20]; -// CHECK-NEXT: #pragma omp target data map(to: c) +// CHECK-NEXT: #pragma omp target data map(to: c){{$}} // CHECK-NEXT: i = argc; // CHECK-NEXT: #pragma omp target data map(to: c) if(target data: j > 0) // CHECK-NEXT: foo(); diff --git a/test/OpenMP/target_data_use_device_ptr_ast_print.cpp b/test/OpenMP/target_data_use_device_ptr_ast_print.cpp index ac24300bbc..ba429f50fe 100644 --- a/test/OpenMP/target_data_use_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_data_use_device_ptr_ast_print.cpp @@ -26,7 +26,7 @@ struct SA { }; // CHECK: struct SA // CHECK: void func( -// CHECK: #pragma omp target data map(tofrom: this->i) use_device_ptr(this->k) +// CHECK: #pragma omp target data map(tofrom: this->i) use_device_ptr(this->k){{$}} // CHECK: #pragma omp target data map(tofrom: this->i) use_device_ptr(this->z) struct SB { unsigned A; diff --git a/test/OpenMP/target_enter_data_ast_print.cpp b/test/OpenMP/target_enter_data_ast_print.cpp index c35bbfe4b3..1df1f8e1d6 100644 --- a/test/OpenMP/target_enter_data_ast_print.cpp +++ b/test/OpenMP/target_enter_data_ast_print.cpp @@ -69,7 +69,7 @@ T tmain(T argc, T *argv) { // CHECK: template T tmain(T argc, T *argv) { // CHECK-NEXT: T i, j, b, c, d, e, x[20]; // CHECK-NEXT: i = argc; -// CHECK-NEXT: #pragma omp target enter data map(to: i) +// CHECK-NEXT: #pragma omp target enter data map(to: i){{$}} // CHECK-NEXT: #pragma omp target enter data map(to: i) if(target enter data: j > 0) // CHECK-NEXT: #pragma omp target enter data map(to: i) if(b) // CHECK-NEXT: #pragma omp target enter data map(to: c) diff --git a/test/OpenMP/target_exit_data_ast_print.cpp b/test/OpenMP/target_exit_data_ast_print.cpp index 6035137a29..1408023b06 100644 --- a/test/OpenMP/target_exit_data_ast_print.cpp +++ b/test/OpenMP/target_exit_data_ast_print.cpp @@ -73,7 +73,7 @@ T tmain(T argc, T *argv) { // CHECK: template T tmain(T argc, T *argv) { // CHECK-NEXT: T i, j, b, c, d, e, x[20]; // CHECK-NEXT: i = argc; -// CHECK-NEXT: #pragma omp target exit data map(from: i) +// CHECK-NEXT: #pragma omp target exit data map(from: i){{$}} // CHECK-NEXT: #pragma omp target exit data map(from: i) if(target exit data: j > 0) // CHECK-NEXT: #pragma omp target exit data map(from: i) if(b) // CHECK-NEXT: #pragma omp target exit data map(from: c) diff --git a/test/OpenMP/target_is_device_ptr_ast_print.cpp b/test/OpenMP/target_is_device_ptr_ast_print.cpp index 972c5625cc..4e8bf81435 100644 --- a/test/OpenMP/target_is_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_is_device_ptr_ast_print.cpp @@ -54,7 +54,7 @@ struct SA { // CHECK-NEXT: int aa[10]; // CHECK-NEXT: arr &raa = this->aa; // CHECK-NEXT: func( -// CHECK-NEXT: #pragma omp target is_device_ptr(this->k) +// CHECK-NEXT: #pragma omp target is_device_ptr(this->k){{$}} // CHECK-NEXT: { // CHECK-NEXT: } // CHECK-NEXT: #pragma omp target is_device_ptr(this->z) diff --git a/test/OpenMP/target_parallel_ast_print.cpp b/test/OpenMP/target_parallel_ast_print.cpp index e12a2c5ef1..1b61f15330 100644 --- a/test/OpenMP/target_parallel_ast_print.cpp +++ b/test/OpenMP/target_parallel_ast_print.cpp @@ -74,7 +74,7 @@ T tmain(T argc, T *argv) { // CHECK-NEXT: S s; // CHECK-NEXT: T arr[C][10], arr1[C]; // CHECK-NEXT: T i, j, a[20] -// CHECK-NEXT: #pragma omp target parallel +// CHECK-NEXT: #pragma omp target parallel{{$}} // CHECK-NEXT: h = 2; // CHECK-NEXT: #pragma omp target parallel default(none) private(argc,b) firstprivate(argv) shared(d) if(parallel: argc > 0) num_threads(C) proc_bind(master) reduction(+: c,arr1[argc]) reduction(max: e,arr[:C][0:10]) // CHECK-NEXT: foo() diff --git a/test/OpenMP/target_parallel_for_ast_print.cpp b/test/OpenMP/target_parallel_for_ast_print.cpp index 3c2ea1560c..59d3017656 100644 --- a/test/OpenMP/target_parallel_for_ast_print.cpp +++ b/test/OpenMP/target_parallel_for_ast_print.cpp @@ -39,7 +39,7 @@ public: } }; -// CHECK: #pragma omp target parallel for private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp target parallel for private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp target parallel for private(this->a) private(this->a) // CHECK: #pragma omp target parallel for private(this->a) private(this->a) private(this->S::a) diff --git a/test/OpenMP/target_parallel_for_is_device_ptr_ast_print.cpp b/test/OpenMP/target_parallel_for_is_device_ptr_ast_print.cpp index fa99810132..fe600101b8 100644 --- a/test/OpenMP/target_parallel_for_is_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_parallel_for_is_device_ptr_ast_print.cpp @@ -63,7 +63,7 @@ struct SA { // CHECK-NEXT: int aa[10]; // CHECK-NEXT: arr &raa = this->aa; // CHECK-NEXT: func( -// CHECK-NEXT: #pragma omp target parallel for is_device_ptr(this->k) +// CHECK-NEXT: #pragma omp target parallel for is_device_ptr(this->k){{$}} // CHECK-NEXT: for (int i = 0; i < 100; i++) // CHECK-NEXT: foo(); // CHECK-NEXT: #pragma omp target parallel for is_device_ptr(this->z) diff --git a/test/OpenMP/target_parallel_for_simd_ast_print.cpp b/test/OpenMP/target_parallel_for_simd_ast_print.cpp index 4532881ac7..d287a2eba5 100644 --- a/test/OpenMP/target_parallel_for_simd_ast_print.cpp +++ b/test/OpenMP/target_parallel_for_simd_ast_print.cpp @@ -39,7 +39,7 @@ public: } }; -// CHECK: #pragma omp target parallel for simd private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp target parallel for simd private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp target parallel for simd private(this->a) private(this->a) // CHECK: #pragma omp target parallel for simd private(this->a) private(this->a) private(this->S::a) diff --git a/test/OpenMP/target_parallel_for_simd_is_device_ptr_ast_print.cpp b/test/OpenMP/target_parallel_for_simd_is_device_ptr_ast_print.cpp index 5be05bc316..feeaa1ef72 100644 --- a/test/OpenMP/target_parallel_for_simd_is_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_parallel_for_simd_is_device_ptr_ast_print.cpp @@ -60,7 +60,7 @@ struct SA { // CHECK-NEXT: int aa[10]; // CHECK-NEXT: arr &raa = this->aa; // CHECK-NEXT: func( -// CHECK-NEXT: #pragma omp target parallel for simd is_device_ptr(this->k) +// CHECK-NEXT: #pragma omp target parallel for simd is_device_ptr(this->k){{$}} // CHECK-NEXT: for (int i = 0; i < 100; i++) // CHECK-NEXT: ; // CHECK-NEXT: #pragma omp target parallel for simd is_device_ptr(this->z) diff --git a/test/OpenMP/target_parallel_is_device_ptr_ast_print.cpp b/test/OpenMP/target_parallel_is_device_ptr_ast_print.cpp index 2b337abb42..16cc188e87 100644 --- a/test/OpenMP/target_parallel_is_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_parallel_is_device_ptr_ast_print.cpp @@ -54,7 +54,7 @@ struct SA { // CHECK-NEXT: int aa[10]; // CHECK-NEXT: arr &raa = this->aa; // CHECK-NEXT: func( -// CHECK-NEXT: #pragma omp target parallel is_device_ptr(this->k) +// CHECK-NEXT: #pragma omp target parallel is_device_ptr(this->k){{$}} // CHECK-NEXT: { // CHECK-NEXT: } // CHECK-NEXT: #pragma omp target parallel is_device_ptr(this->z) diff --git a/test/OpenMP/target_simd_ast_print.cpp b/test/OpenMP/target_simd_ast_print.cpp index 7f9ad2c389..80fe4a1689 100644 --- a/test/OpenMP/target_simd_ast_print.cpp +++ b/test/OpenMP/target_simd_ast_print.cpp @@ -39,7 +39,7 @@ public: } }; -// CHECK: #pragma omp target simd private(this->a) private(this->a) private(T::a) +// CHECK: #pragma omp target simd private(this->a) private(this->a) private(T::a){{$}} // CHECK: #pragma omp target simd private(this->a) private(this->a) // CHECK: #pragma omp target simd private(this->a) private(this->a) private(this->S::a) diff --git a/test/OpenMP/target_teams_ast_print.cpp b/test/OpenMP/target_teams_ast_print.cpp index 595c914f8d..a0cb63535d 100644 --- a/test/OpenMP/target_teams_ast_print.cpp +++ b/test/OpenMP/target_teams_ast_print.cpp @@ -50,7 +50,7 @@ T tmain(T argc, T *argv) { // CHECK-NEXT: T b = argc, c, d, e, f, g; // CHECK-NEXT: static T a; // CHECK-NEXT: S s; -// CHECK-NEXT: #pragma omp target teams +// CHECK-NEXT: #pragma omp target teams{{$}} // CHECK-NEXT: a = 2; // CHECK-NEXT: #pragma omp target teams default(none) private(argc,b) firstprivate(argv) shared(d) reduction(+: c) reduction(max: e) num_teams(C) thread_limit(d * C) // CHECK-NEXT: foo() diff --git a/test/OpenMP/target_teams_distribute_ast_print.cpp b/test/OpenMP/target_teams_distribute_ast_print.cpp index 5e11409c45..39a9cb9216 100644 --- a/test/OpenMP/target_teams_distribute_ast_print.cpp +++ b/test/OpenMP/target_teams_distribute_ast_print.cpp @@ -85,7 +85,7 @@ T tmain(T argc) { #pragma omp target teams distribute for (int i=0; i < 2; ++i) a = 2; -// CHECK: #pragma omp target teams distribute +// CHECK: #pragma omp target teams distribute{{$}} // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; #pragma omp target teams distribute private(argc, b), firstprivate(c, d), collapse(2) diff --git a/test/OpenMP/target_teams_distribute_parallel_for_ast_print.cpp b/test/OpenMP/target_teams_distribute_parallel_for_ast_print.cpp index a6745050a5..4041916e7b 100644 --- a/test/OpenMP/target_teams_distribute_parallel_for_ast_print.cpp +++ b/test/OpenMP/target_teams_distribute_parallel_for_ast_print.cpp @@ -93,7 +93,7 @@ T tmain(T argc) { #pragma omp target teams distribute parallel for for (int i=0; i < 2; ++i) a = 2; -// CHECK: #pragma omp target teams distribute parallel for +// CHECK: #pragma omp target teams distribute parallel for{{$}} // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; #pragma omp target teams distribute parallel for private(argc, b), firstprivate(c, d), collapse(2) diff --git a/test/OpenMP/target_teams_distribute_parallel_for_is_device_ptr_ast_print.cpp b/test/OpenMP/target_teams_distribute_parallel_for_is_device_ptr_ast_print.cpp index 590ef6a944..b3944bc195 100644 --- a/test/OpenMP/target_teams_distribute_parallel_for_is_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_teams_distribute_parallel_for_is_device_ptr_ast_print.cpp @@ -60,7 +60,7 @@ struct SA { // CHECK-NEXT: int aa[10]; // CHECK-NEXT: arr &raa = this->aa; // CHECK-NEXT: func( -// CHECK-NEXT: #pragma omp target teams distribute parallel for is_device_ptr(this->k) +// CHECK-NEXT: #pragma omp target teams distribute parallel for is_device_ptr(this->k){{$}} // CHECK-NEXT: for (int i = 0; i < 100; i++) // CHECK-NEXT: ; // CHECK-NEXT: #pragma omp target teams distribute parallel for is_device_ptr(this->z) diff --git a/test/OpenMP/target_teams_distribute_parallel_for_simd_ast_print.cpp b/test/OpenMP/target_teams_distribute_parallel_for_simd_ast_print.cpp index b02d23c542..a240f8b0e5 100644 --- a/test/OpenMP/target_teams_distribute_parallel_for_simd_ast_print.cpp +++ b/test/OpenMP/target_teams_distribute_parallel_for_simd_ast_print.cpp @@ -113,7 +113,7 @@ T tmain(T argc) { #pragma omp target teams distribute parallel for simd for (int i=0; i < 2; ++i) a = 2; -// CHECK: #pragma omp target teams distribute parallel for simd +// CHECK: #pragma omp target teams distribute parallel for simd{{$}} // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; #pragma omp target teams distribute parallel for simd private(argc, b), firstprivate(c, d), collapse(2) diff --git a/test/OpenMP/target_teams_distribute_parallel_for_simd_is_device_ptr_ast_print.cpp b/test/OpenMP/target_teams_distribute_parallel_for_simd_is_device_ptr_ast_print.cpp index 22e4832bf4..5107519672 100644 --- a/test/OpenMP/target_teams_distribute_parallel_for_simd_is_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_teams_distribute_parallel_for_simd_is_device_ptr_ast_print.cpp @@ -60,7 +60,7 @@ struct SA { // CHECK-NEXT: int aa[10]; // CHECK-NEXT: arr &raa = this->aa; // CHECK-NEXT: func( -// CHECK-NEXT: #pragma omp target teams distribute parallel for simd is_device_ptr(this->k) +// CHECK-NEXT: #pragma omp target teams distribute parallel for simd is_device_ptr(this->k){{$}} // CHECK-NEXT: for (int i = 0; i < 100; i++) // CHECK-NEXT: ; // CHECK-NEXT: #pragma omp target teams distribute parallel for simd is_device_ptr(this->z) diff --git a/test/OpenMP/target_teams_distribute_simd_ast_print.cpp b/test/OpenMP/target_teams_distribute_simd_ast_print.cpp index 9a1ed63283..da2b7784a5 100644 --- a/test/OpenMP/target_teams_distribute_simd_ast_print.cpp +++ b/test/OpenMP/target_teams_distribute_simd_ast_print.cpp @@ -107,7 +107,7 @@ T tmain(T argc) { #pragma omp target teams distribute simd for (int i=0; i < 2; ++i) a = 2; -// CHECK: #pragma omp target teams distribute simd +// CHECK: #pragma omp target teams distribute simd{{$}} // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; #pragma omp target teams distribute simd private(argc, b), firstprivate(c, d), collapse(2) diff --git a/test/OpenMP/target_teams_distribute_simd_is_device_ptr_ast_print.cpp b/test/OpenMP/target_teams_distribute_simd_is_device_ptr_ast_print.cpp index 770b123da5..eb5347d61d 100644 --- a/test/OpenMP/target_teams_distribute_simd_is_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_teams_distribute_simd_is_device_ptr_ast_print.cpp @@ -60,7 +60,7 @@ struct SA { // CHECK-NEXT: int aa[10]; // CHECK-NEXT: arr &raa = this->aa; // CHECK-NEXT: func( -// CHECK-NEXT: #pragma omp target teams distribute simd is_device_ptr(this->k) +// CHECK-NEXT: #pragma omp target teams distribute simd is_device_ptr(this->k){{$}} // CHECK-NEXT: for (int i = 0; i < 100; i++) // CHECK-NEXT: ; // CHECK-NEXT: #pragma omp target teams distribute simd is_device_ptr(this->z) diff --git a/test/OpenMP/target_teams_is_device_ptr_ast_print.cpp b/test/OpenMP/target_teams_is_device_ptr_ast_print.cpp index 1eb61af49f..19fe955ee7 100644 --- a/test/OpenMP/target_teams_is_device_ptr_ast_print.cpp +++ b/test/OpenMP/target_teams_is_device_ptr_ast_print.cpp @@ -53,7 +53,7 @@ struct SA { // CHECK-NEXT: int aa[10]; // CHECK-NEXT: arr &raa = this->aa; // CHECK-NEXT: func( -// CHECK-NEXT: #pragma omp target teams is_device_ptr(this->k) +// CHECK-NEXT: #pragma omp target teams is_device_ptr(this->k){{$}} // CHECK-NEXT: { // CHECK-NEXT: } // CHECK-NEXT: #pragma omp target teams is_device_ptr(this->z) diff --git a/test/OpenMP/target_update_ast_print.cpp b/test/OpenMP/target_update_ast_print.cpp index 81b183b7be..e60e081b32 100644 --- a/test/OpenMP/target_update_ast_print.cpp +++ b/test/OpenMP/target_update_ast_print.cpp @@ -25,7 +25,7 @@ T foo(T targ, U uarg) { // CHECK: static T a; // CHECK-NEXT: U b; // CHECK-NEXT: int l; -// CHECK-NEXT: #pragma omp target update to(a) if(l > 5) device(l) nowait depend(inout : l) +// CHECK-NEXT: #pragma omp target update to(a) if(l > 5) device(l) nowait depend(inout : l){{$}} // CHECK-NEXT: #pragma omp target update from(b) if(l < 5) device(l - 1) nowait depend(inout : l) // CHECK: static int a; // CHECK-NEXT: float b; diff --git a/test/OpenMP/task_ast_print.cpp b/test/OpenMP/task_ast_print.cpp index c5f97da066..01ffda9f87 100644 --- a/test/OpenMP/task_ast_print.cpp +++ b/test/OpenMP/task_ast_print.cpp @@ -42,7 +42,7 @@ public: }; // CHECK: #pragma omp taskgroup task_reduction(+: this->b) -// CHECK: #pragma omp task private(this->a) private(this->a) private(T::a) in_reduction(+: this->b) +// CHECK: #pragma omp task private(this->a) private(this->a) private(T::a) in_reduction(+: this->b){{$}} // CHECK: #pragma omp task private(this->a) private(this->a) // CHECK: #pragma omp task private(this->a) private(this->a) private(this->S1::a) diff --git a/test/OpenMP/taskgroup_ast_print.cpp b/test/OpenMP/taskgroup_ast_print.cpp index bac4666db2..a15600cb77 100644 --- a/test/OpenMP/taskgroup_ast_print.cpp +++ b/test/OpenMP/taskgroup_ast_print.cpp @@ -74,7 +74,7 @@ int main (int argc, char **argv) { // CHECK: static int a; #pragma omp taskgroup a=2; -// CHECK-NEXT: #pragma omp taskgroup +// CHECK-NEXT: #pragma omp taskgroup{{$}} // CHECK-NEXT: a = 2; // CHECK-NEXT: ++a; ++a; diff --git a/test/OpenMP/taskloop_ast_print.cpp b/test/OpenMP/taskloop_ast_print.cpp index 7908cefa42..97f797b7c9 100644 --- a/test/OpenMP/taskloop_ast_print.cpp +++ b/test/OpenMP/taskloop_ast_print.cpp @@ -20,7 +20,7 @@ T tmain(T argc) { #pragma omp taskgroup task_reduction(+: d) #pragma omp taskloop if(taskloop: argc > N) default(shared) untied priority(N) grainsize(N) reduction(+:g) in_reduction(+: d) // CHECK-NEXT: #pragma omp taskgroup task_reduction(+: d) - // CHECK-NEXT: #pragma omp taskloop if(taskloop: argc > N) default(shared) untied priority(N) grainsize(N) reduction(+: g) in_reduction(+: d) + // CHECK-NEXT: #pragma omp taskloop if(taskloop: argc > N) default(shared) untied priority(N) grainsize(N) reduction(+: g) in_reduction(+: d){{$}} for (int i = 0; i < 2; ++i) a = 2; // CHECK-NEXT: for (int i = 0; i < 2; ++i) diff --git a/test/OpenMP/taskloop_simd_ast_print.cpp b/test/OpenMP/taskloop_simd_ast_print.cpp index fcda302e1d..0a847f8fad 100644 --- a/test/OpenMP/taskloop_simd_ast_print.cpp +++ b/test/OpenMP/taskloop_simd_ast_print.cpp @@ -21,7 +21,7 @@ T tmain(T argc) { #pragma omp taskgroup task_reduction(+: d) #pragma omp taskloop simd if(taskloop: argc > N) default(shared) untied priority(N) safelen(N) linear(c) aligned(ptr) grainsize(N) reduction(+:g) in_reduction(+: d) // CHECK-NEXT: #pragma omp taskgroup task_reduction(+: d) - // CHECK-NEXT: #pragma omp taskloop simd if(taskloop: argc > N) default(shared) untied priority(N) safelen(N) linear(c) aligned(ptr) grainsize(N) reduction(+: g) in_reduction(+: d) + // CHECK-NEXT: #pragma omp taskloop simd if(taskloop: argc > N) default(shared) untied priority(N) safelen(N) linear(c) aligned(ptr) grainsize(N) reduction(+: g) in_reduction(+: d){{$}} for (int i = 0; i < 2; ++i) a = 2; // CHECK-NEXT: for (int i = 0; i < 2; ++i) diff --git a/test/OpenMP/taskwait_ast_print.cpp b/test/OpenMP/taskwait_ast_print.cpp index 1b96179676..9cbc46ef29 100644 --- a/test/OpenMP/taskwait_ast_print.cpp +++ b/test/OpenMP/taskwait_ast_print.cpp @@ -19,7 +19,7 @@ T tmain(T argc) { return a + argc; } // CHECK: static T a; -// CHECK-NEXT: #pragma omp taskwait +// CHECK-NEXT: #pragma omp taskwait{{$}} // CHECK: static int a; // CHECK-NEXT: #pragma omp taskwait // CHECK: static char a; diff --git a/test/OpenMP/taskyield_ast_print.cpp b/test/OpenMP/taskyield_ast_print.cpp index 54dace2a0b..7acf53dd6a 100644 --- a/test/OpenMP/taskyield_ast_print.cpp +++ b/test/OpenMP/taskyield_ast_print.cpp @@ -19,7 +19,7 @@ T tmain(T argc) { return a + argc; } // CHECK: static T a; -// CHECK-NEXT: #pragma omp taskyield +// CHECK-NEXT: #pragma omp taskyield{{$}} // CHECK: static int a; // CHECK-NEXT: #pragma omp taskyield // CHECK: static char a; diff --git a/test/OpenMP/teams_ast_print.cpp b/test/OpenMP/teams_ast_print.cpp index a87ae2c253..80300bfd4f 100644 --- a/test/OpenMP/teams_ast_print.cpp +++ b/test/OpenMP/teams_ast_print.cpp @@ -54,7 +54,7 @@ T tmain(T argc, T *argv) { // CHECK-NEXT: static T a; // CHECK-NEXT: S s; // CHECK-NEXT: #pragma omp target -// CHECK-NEXT: #pragma omp teams +// CHECK-NEXT: #pragma omp teams{{$}} // CHECK-NEXT: a = 2; // CHECK-NEXT: #pragma omp target // CHECK-NEXT: #pragma omp teams default(none) private(argc,b) firstprivate(argv) shared(d) reduction(+: c) reduction(max: e) num_teams(C) thread_limit(d * C) diff --git a/test/OpenMP/teams_distribute_ast_print.cpp b/test/OpenMP/teams_distribute_ast_print.cpp index 10f4945d63..ef07d51b5a 100644 --- a/test/OpenMP/teams_distribute_ast_print.cpp +++ b/test/OpenMP/teams_distribute_ast_print.cpp @@ -100,7 +100,7 @@ T tmain(T argc) { for (int i=0; i < 2; ++i) a = 2; // CHECK: #pragma omp target -// CHECK-NEXT: #pragma omp teams distribute +// CHECK-NEXT: #pragma omp teams distribute{{$}} // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; #pragma omp target diff --git a/test/OpenMP/teams_distribute_parallel_for_ast_print.cpp b/test/OpenMP/teams_distribute_parallel_for_ast_print.cpp index 761f5510a2..246382daff 100644 --- a/test/OpenMP/teams_distribute_parallel_for_ast_print.cpp +++ b/test/OpenMP/teams_distribute_parallel_for_ast_print.cpp @@ -108,7 +108,7 @@ T tmain(T argc) { for (int i=0; i < 2; ++i) a = 2; // CHECK: #pragma omp target -// CHECK-NEXT: #pragma omp teams distribute parallel for +// CHECK-NEXT: #pragma omp teams distribute parallel for{{$}} // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; #pragma omp target diff --git a/test/OpenMP/teams_distribute_parallel_for_simd_ast_print.cpp b/test/OpenMP/teams_distribute_parallel_for_simd_ast_print.cpp index f27ce81699..c7a0a358f6 100644 --- a/test/OpenMP/teams_distribute_parallel_for_simd_ast_print.cpp +++ b/test/OpenMP/teams_distribute_parallel_for_simd_ast_print.cpp @@ -132,7 +132,7 @@ T tmain(T argc) { for (int i=0; i < 2; ++i) a = 2; // CHECK: #pragma omp target -// CHECK-NEXT: #pragma omp teams distribute parallel for simd +// CHECK-NEXT: #pragma omp teams distribute parallel for simd{{$}} // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; #pragma omp target diff --git a/test/OpenMP/teams_distribute_simd_ast_print.cpp b/test/OpenMP/teams_distribute_simd_ast_print.cpp index 9a759964cf..b3d8ce436d 100644 --- a/test/OpenMP/teams_distribute_simd_ast_print.cpp +++ b/test/OpenMP/teams_distribute_simd_ast_print.cpp @@ -126,7 +126,7 @@ T tmain(T argc) { for (int i=0; i < 2; ++i) a = 2; // CHECK: #pragma omp target -// CHECK-NEXT: #pragma omp teams distribute simd +// CHECK-NEXT: #pragma omp teams distribute simd{{$}} // CHECK-NEXT: for (int i = 0; i < 2; ++i) // CHECK-NEXT: a = 2; #pragma omp target diff --git a/test/OpenMP/threadprivate_ast_print.cpp b/test/OpenMP/threadprivate_ast_print.cpp index 50d3685da5..a1482031f5 100644 --- a/test/OpenMP/threadprivate_ast_print.cpp +++ b/test/OpenMP/threadprivate_ast_print.cpp @@ -25,7 +25,7 @@ struct St1{ static int b; // CHECK: static int b; #pragma omp threadprivate(b) -// CHECK-NEXT: #pragma omp threadprivate(St1::b) +// CHECK-NEXT: #pragma omp threadprivate(St1::b){{$}} } d; int a, b; diff --git a/test/PCH/pragma-loop.cpp b/test/PCH/pragma-loop.cpp index 5975816f69..7f443ddb03 100644 --- a/test/PCH/pragma-loop.cpp +++ b/test/PCH/pragma-loop.cpp @@ -4,7 +4,7 @@ // FIXME: A bug in ParsedAttributes causes the order of the attributes to be // reversed. The checks are consequently in the reverse order below. -// CHECK: #pragma clang loop unroll_count(16) +// CHECK: #pragma clang loop unroll_count(16){{$}} // CHECK: #pragma clang loop interleave_count(8) // CHECK: #pragma clang loop vectorize_width(4) // CHECK: #pragma clang loop distribute(enable) @@ -15,9 +15,10 @@ // CHECK: #pragma clang loop unroll(full) // CHECK: #pragma clang loop interleave(enable) // CHECK: #pragma clang loop vectorize(disable) -// CHECK: #pragma unroll -// CHECK: #pragma unroll (32) -// CHECK: #pragma nounroll +// FIXME: "#pragma unroll (enable)" is invalid and is not the input source. +// CHECK: #pragma unroll (enable){{$}} +// CHECK: #pragma unroll (32){{$}} +// CHECK: #pragma nounroll{{$}} // CHECK: #pragma clang loop interleave_count(I) // CHECK: #pragma clang loop vectorize_width(V) diff --git a/utils/TableGen/ClangAttrEmitter.cpp b/utils/TableGen/ClangAttrEmitter.cpp index c7e3d31001..54ae76db89 100644 --- a/utils/TableGen/ClangAttrEmitter.cpp +++ b/utils/TableGen/ClangAttrEmitter.cpp @@ -1368,7 +1368,7 @@ writePrettyPrintFunction(Record &R, " OS << \"" << Prefix << Spelling; if (Variety == "Pragma") { - OS << " \";\n"; + OS << "\";\n"; OS << " printPrettyPragma(OS, Policy);\n"; OS << " OS << \"\\n\";"; OS << " break;\n";