blob: 007237a7fb98bf9097dcb03a0653367255136b51 [file] [log] [blame]
Alexey Bataev80909872015-07-02 11:25:17 +00001// RUN: %clang_cc1 -verify -fopenmp -ast-print %s | FileCheck %s
2// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -emit-pch -o %t %s
3// RUN: %clang_cc1 -fopenmp -std=c++11 -include-pch %t -fsyntax-only -verify %s -ast-print | FileCheck %s
4// expected-no-diagnostics
5
6#ifndef HEADER
7#define HEADER
8
9int main (int argc, char **argv) {
10// CHECK: int main(int argc, char **argv) {
11#pragma omp parallel
12{
Alexey Bataev87933c72015-09-18 08:07:34 +000013#pragma omp cancel parallel if(argc)
Alexey Bataev80909872015-07-02 11:25:17 +000014}
15// CHECK: #pragma omp parallel
16// CHECK-NEXT: {
Alexey Bataev87933c72015-09-18 08:07:34 +000017// CHECK-NEXT: #pragma omp cancel parallel if(argc)
Alexey Bataev80909872015-07-02 11:25:17 +000018// CHECK-NEXT: }
19#pragma omp sections
20{
21#pragma omp cancel sections
22}
23// CHECK-NEXT: #pragma omp sections
24// CHECK: {
25// CHECK: #pragma omp cancel sections
26// CHECK: }
27#pragma omp for
28for (int i = 0; i < argc; ++i) {
Alexey Bataev87933c72015-09-18 08:07:34 +000029#pragma omp cancel for if(cancel:argc)
Alexey Bataev80909872015-07-02 11:25:17 +000030}
31// CHECK: #pragma omp for
32// CHECK-NEXT: for (int i = 0; i < argc; ++i) {
Alexey Bataev87933c72015-09-18 08:07:34 +000033// CHECK-NEXT: #pragma omp cancel for if(cancel: argc)
Alexey Bataev80909872015-07-02 11:25:17 +000034// CHECK-NEXT: }
35#pragma omp task
36{
37#pragma omp cancel taskgroup
38}
39// CHECK: #pragma omp task
40// CHECK: {
41// CHECK: #pragma omp cancel taskgroup
42// CHECK: }
43// CHECK: return argc;
44 return argc;
45}
46
47#endif