// 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/ //" -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]) ; }