67 lines · c
1// RUN: %clang_cc1 %s -verify -fopenacc2// RUN: not %clang_cc1 %s -fopenacc -ast-dump | FileCheck %s3 4void foo(int Var) {5 // expected-warning@+1{{unsupported OpenACC extension clause '__extension'}}6#pragma acc parallel copy(Var) __extension copyin(Var)7 ;8 // CHECK: OpenACCComputeConstruct9 // CHECK-NEXT: copy clause10 // CHECK-NEXT: DeclRefExpr11 // CHECK-NEXT: copyin clause12 // CHECK-NEXT: DeclRefExpr13 // CHECK-NEXT: NullStmt14 15 // expected-warning@+1{{unsupported OpenACC extension clause '__extension'}}16#pragma acc parallel copy(Var) __extension(stuff) copyin(Var)17 ;18 // CHECK: OpenACCComputeConstruct19 // CHECK-NEXT: copy clause20 // CHECK-NEXT: DeclRefExpr21 // CHECK-NEXT: copyin clause22 // CHECK-NEXT: DeclRefExpr23 // CHECK-NEXT: NullStmt24 25 // expected-warning@+1{{unsupported OpenACC extension clause '__extension'}}26#pragma acc parallel copy(Var) __extension(")") copyin(Var)27 ;28 // CHECK: OpenACCComputeConstruct29 // CHECK-NEXT: copy clause30 // CHECK-NEXT: DeclRefExpr31 // CHECK-NEXT: copyin clause32 // CHECK-NEXT: DeclRefExpr33 // CHECK-NEXT: NullStmt34 35 // expected-warning@+1{{unsupported OpenACC extension clause '__extension'}}36#pragma acc parallel copy(Var) __extension(()) copyin(Var)37 ;38 // CHECK: OpenACCComputeConstruct39 // CHECK-NEXT: copy clause40 // CHECK-NEXT: DeclRefExpr41 // CHECK-NEXT: copyin clause42 // CHECK-NEXT: DeclRefExpr43 // CHECK-NEXT: NullStmt44 45 // expected-warning@+2{{unsupported OpenACC extension clause '__extension'}}46 // expected-error@+1{{expected identifier}}47#pragma acc parallel copy(Var) __extension()) copyin(Var)48 ;49 // CHECK: OpenACCComputeConstruct50 // CHECK-NEXT: copy clause51 // CHECK-NEXT: DeclRefExpr52 // Cannot recover from a bad paren, so we give up here.53 // CHECK-NEXT: NullStmt54 55 // expected-warning@+3{{unsupported OpenACC extension clause '__extension'}}56 // expected-error@+2{{expected ')'}}57 // expected-note@+1{{to match this '('}}58#pragma acc parallel copy(Var) __extension(() copyin(Var)59 ;60 // CHECK: OpenACCComputeConstruct61 // CHECK-NEXT: copy clause62 // CHECK-NEXT: DeclRefExpr63 // Cannot recover from a bad paren, so we give up here.64 // CHECK-NEXT: NullStmt65 66}67