50 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp -ast-print %s | FileCheck %s2// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -emit-pch -o %t %s3// RUN: %clang_cc1 -fopenmp -std=c++11 -include-pch %t -verify %s -ast-print | FileCheck %s4 5// RUN: %clang_cc1 -verify -fopenmp-simd -ast-print %s | FileCheck %s6// RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -emit-pch -o %t %s7// RUN: %clang_cc1 -fopenmp-simd -std=c++11 -include-pch %t -verify %s -ast-print | FileCheck %s8// expected-no-diagnostics9 10#ifndef HEADER11#define HEADER12 13struct vector {14 vector() = default;15 int at(int) { return 0; }16 int at(int) const { return 1; }17};18 19// CHECK: template <typename T> void test(const vector begin_vec) {20// CHECK: #pragma omp parallel for collapse(2)21// CHECK: for (int n = begin_vec.at(0); n < 0; n++) {22// CHECK: for (int h = begin_vec.at(1); h < 1; h++) {23// CHECK: ;24// CHECK: }25// CHECK: }26// CHECK: }27// CHECK: template<> void test<int>(const vector begin_vec) {28// CHECK: #pragma omp parallel for collapse(2)29// CHECK: for (int n = begin_vec.at(0); n < 0; n++) {30// CHECK: for (int h = begin_vec.at(1); h < 1; h++) {31// CHECK: ;32// CHECK: }33// CHECK: }34// CHECK: }35template <typename T>36void test(const vector begin_vec) {37#pragma omp parallel for collapse(2)38 for (int n = begin_vec.at(0); n < 0; n++) {39 for (int h = begin_vec.at(1); h < 1; h++) {40 ;41 }42 }43}44 45int main() {46 vector v;47 test<int>(v);48}49#endif50