From c72c57c9e9b69944e3e009cd5e209634839581d3 Mon Sep 17 00:00:00 2001 From: dim <dim@FreeBSD.org> Date: Mon, 8 Apr 2013 18:45:10 +0000 Subject: Vendor import of clang trunk r178860: http://llvm.org/svn/llvm-project/cfe/trunk@178860 --- test/OpenMP/threadprivate_ast_print.cpp | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/OpenMP/threadprivate_ast_print.cpp (limited to 'test/OpenMP/threadprivate_ast_print.cpp') diff --git a/test/OpenMP/threadprivate_ast_print.cpp b/test/OpenMP/threadprivate_ast_print.cpp new file mode 100644 index 0000000..deb829e --- /dev/null +++ b/test/OpenMP/threadprivate_ast_print.cpp @@ -0,0 +1,43 @@ +// RUN: %clang_cc1 -verify -fopenmp -ast-print %s | FileCheck %s +// expected-no-diagnostics + +struct St{ + int a; +}; + +struct St1{ + int a; + static int b; +// CHECK: static int b; +#pragma omp threadprivate(b) +// CHECK-NEXT: #pragma omp threadprivate(b) +} d; + +int a, b; +// CHECK: int a; +// CHECK: int b; +#pragma omp threadprivate(a) +// CHECK-NEXT: #pragma omp threadprivate(a) +#pragma omp threadprivate(d, b) +// CHECK-NEXT: #pragma omp threadprivate(d,b) + +template <class T> T foo() { + static T v; + #pragma omp threadprivate(v) + return v; +} +//CHECK: template <class T = int> int foo() { +//CHECK-NEXT: static int v; +//CHECK-NEXT: #pragma omp threadprivate(v) +//CHECK: template <class T> T foo() { +//CHECK-NEXT: static T v; +//CHECK-NEXT: #pragma omp threadprivate(v) + +int main () { + static int a; +// CHECK: static int a; +#pragma omp threadprivate(a) +// CHECK-NEXT: #pragma omp threadprivate(a) + a=2; + return (foo<int>()); +} -- cgit v1.1