brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 2a4ab21 Raw
80 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp -triple x86_64-apple-darwin10.6.0 -ast-print %s | FileCheck %s2// RUN: %clang_cc1 -fopenmp -triple x86_64-apple-darwin10.6.0 -x c++ -std=c++11 -emit-pch -o %t %s3// RUN: %clang_cc1 -fopenmp -triple x86_64-apple-darwin10.6.0 -std=c++11 -include-pch %t -verify %s -ast-print4// RUN: %clang_cc1 -verify -fopenmp -triple x86_64-unknown-linux-gnu -ast-print %s | FileCheck %s5// RUN: %clang_cc1 -fopenmp -fnoopenmp-use-tls -triple x86_64-unknown-linux-gnu -x c++ -std=c++11 -emit-pch -o %t %s6// RUN: %clang_cc1 -fopenmp -fnoopenmp-use-tls -triple x86_64-unknown-linux-gnu -std=c++11 -include-pch %t -verify %s -ast-print7 8// RUN: %clang_cc1 -verify -fopenmp-simd -triple x86_64-apple-darwin10.6.0 -ast-print %s | FileCheck %s9// RUN: %clang_cc1 -fopenmp-simd -triple x86_64-apple-darwin10.6.0 -x c++ -std=c++11 -emit-pch -o %t %s10// RUN: %clang_cc1 -fopenmp-simd -triple x86_64-apple-darwin10.6.0 -std=c++11 -include-pch %t -verify %s -ast-print11// RUN: %clang_cc1 -verify -fopenmp-simd -triple x86_64-unknown-linux-gnu -ast-print %s | FileCheck %s12// RUN: %clang_cc1 -fopenmp-simd -fnoopenmp-use-tls -triple x86_64-unknown-linux-gnu -x c++ -std=c++11 -emit-pch -o %t %s13// RUN: %clang_cc1 -fopenmp-simd -fnoopenmp-use-tls -triple x86_64-unknown-linux-gnu -std=c++11 -include-pch %t -verify %s -ast-print14// expected-no-diagnostics15 16#ifndef HEADER17#define HEADER18 19struct St{20 int a;21};22 23struct St1{24 int a;25 static int b;26// CHECK: static int b;27#pragma omp allocate(b)28// CHECK-NEXT: #pragma omp allocate(St1::b){{$}}29} d;30 31int a, b;32// CHECK: int a;33// CHECK: int b;34#pragma omp allocate(a)35#pragma omp allocate(a)36// CHECK-NEXT: #pragma omp allocate(a)37// CHECK-NEXT: #pragma omp allocate(a)38#pragma omp allocate(d, b)39// CHECK-NEXT: #pragma omp allocate(d,b)40 41template <class T>42struct ST {43  static T m;44  #pragma omp allocate(m)45};46 47template <class T> T foo() {48  T v;49  #pragma omp allocate(v)50  v = ST<T>::m;51  return v;52}53//CHECK: template <class T> T foo() {54//CHECK-NEXT: T v;55//CHECK-NEXT: #pragma omp allocate(v)56//CHECK: template<> int foo<int>() {57//CHECK-NEXT: int v;58//CHECK-NEXT: #pragma omp allocate(v)59 60namespace ns{61  int a;62}63// CHECK: namespace ns {64// CHECK-NEXT: int a;65// CHECK-NEXT: }66#pragma omp allocate(ns::a)67// CHECK-NEXT: #pragma omp allocate(ns::a)68 69int main () {70  static int a;71// CHECK: static int a;72#pragma omp allocate(a)73// CHECK-NEXT: #pragma omp allocate(a)74  a=2;75  return (foo<int>());76}77 78extern template int ST<int>::m;79#endif80