46 lines · c
1// RUN: %clang_cc1 %s -fopenacc -verify2 3short getS();4 5void Test() {6#pragma acc parallel loop async7 for (int i = 5; i < 10; ++i);8#pragma acc parallel loop async(1)9 for (int i = 5; i < 10; ++i);10#pragma acc kernels loop async(1)11 for (int i = 5; i < 10; ++i);12#pragma acc kernels loop async(-51)13 for (int i = 5; i < 10; ++i);14 15#pragma acc serial loop async(1)16 for (int i = 5; i < 10; ++i);17 18 // expected-error@+2{{expected ')'}}19 // expected-note@+1{{to match this '('}}20#pragma acc serial loop async(1, 2)21 for (int i = 5; i < 10; ++i);22 23 struct NotConvertible{} NC;24 // expected-error@+1{{OpenACC clause 'async' requires expression of integer type ('struct NotConvertible' invalid)}}25#pragma acc parallel loop async(NC)26 for (int i = 5; i < 10; ++i);27 28#pragma acc kernels loop async(getS())29 for (int i = 5; i < 10; ++i);30 31 struct Incomplete *SomeIncomplete;32 33 // expected-error@+1{{OpenACC clause 'async' requires expression of integer type ('struct Incomplete' invalid)}}34#pragma acc kernels loop async(*SomeIncomplete)35 for (int i = 5; i < 10; ++i);36 37 enum E{A} SomeE;38 39#pragma acc kernels loop async(SomeE)40 for (int i = 5; i < 10; ++i);41 42 // expected-error@+1{{OpenACC 'async' clause is not valid on 'loop' directive}}43#pragma acc loop async(1)44 for(int i = 5; i < 10;++i);45}46