1 // RUN: %clang_cc1 %s -verify -fopenacc
4 void foo(); // expected-note{{declared here}}
7 void templ(); // expected-note 2{{declared here}}
10 // expected-error@+2{{use of undeclared identifier 'foo'; did you mean 'NS::foo'?}}
11 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
12 #pragma acc routine(foo)
13 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
14 #pragma acc routine(NS::foo)
16 // expected-error@+2{{use of undeclared identifier 'templ'; did you mean 'NS::templ'?}}
17 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
18 #pragma acc routine(templ)
19 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
20 #pragma acc routine(NS::templ)
22 // expected-error@+2{{use of undeclared identifier 'templ'; did you mean 'NS::templ'?}}
23 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
24 #pragma acc routine(templ<int>)
25 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
26 #pragma acc routine(NS::templ<int>)
28 // expected-error@+2{{use of undeclared identifier 'T'}}
29 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
30 #pragma acc routine(templ<T>)
31 // expected-error@+2{{use of undeclared identifier 'T'}}
32 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
33 #pragma acc routine(NS::templ<T>)
35 // expected-error@+3{{expected ')'}}
36 // expected-note@+2{{to match this '('}}
37 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
38 #pragma acc routine (NS::foo())
40 // expected-error@+2 {{expected unqualified-id}}
41 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
44 // expected-error@+2 {{expected unqualified-id}}
45 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
46 #pragma acc routine(int)