| // Test without serialization: | |
| // RUN: %clang_cc1 -std=c++20 -fopenmp %s -ast-dump | FileCheck %s | |
| // Test with serialization: | |
| // RUN: %clang_cc1 -std=c++20 -fopenmp -emit-pch -o %t %s | |
| // RUN: %clang_cc1 -x c++ -std=c++20 -fopenmp -include-pch %t -ast-dump-all /dev/null \ | |
| // RUN: | sed -e "s/ <undeserialized declarations>//" -e "s/ imported//" \ | |
| // RUN: | FileCheck %s | |
| // CHECK: OMPTargetUpdateDirective | |
| // CHECK-NEXT: OMPFromClause | |
| // CHECK-NEXT: ArraySubscriptExpr | |
| // CHECK: DeclRefExpr {{.*}} 'a' | |
| // CHECK: DeclRefExpr {{.*}} 'it' | |
| void foo1() { | |
| int a[10]; | |
| #pragma omp target update from(iterator(int it = 0:10) : a[it]) | |
| ; | |
| } | |
| // CHECK: OMPTargetUpdateDirective | |
| // CHECK-NEXT: OMPToClause | |
| // CHECK-NEXT: ArraySubscriptExpr | |
| // CHECK: DeclRefExpr {{.*}} 'a' | |
| // CHECK: DeclRefExpr {{.*}} 'it' | |
| void foo2() { | |
| int a[10]; | |
| #pragma omp target update to(iterator(int it = 0:10) : a[it]) | |
| ; | |
| } |