xref: /llvm-project/clang/test/OpenMP/declare_variant.cpp (revision 150f7cedfb2e072804f4a0887d14c97a7fe3f374)
1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -verify %s
2 
3 namespace {
4 // TODO this must be fixed. This warning shouldn't be generated.
5 // expected-warning@+1{{function '(anonymous namespace)::bar' has internal linkage but is not defined}}
6 void bar();
7 } // namespace
8 
9 #pragma omp begin declare variant match(user = {condition(1)})
bar()10 void bar() {
11 }
12 #pragma omp end declare variant
13 
14 // expected-warning@+1{{function 'baz' has internal linkage but is not defined}}
15 static void baz();
16 #pragma omp begin declare variant match(device = {kind(nohost)})
baz()17 static void baz() {}
18 #pragma omp end declare variant
19 
20 #pragma omp begin declare variant match(device = {kind(host)})
foo()21 static void foo() {}
22 #pragma omp end declare variant
23 
main()24 int main() {
25   foo();
26   // expected-note@+1{{used here}}
27   baz();
28   // expected-note@+1{{used here}}
29   bar();
30 
31   return 0;
32 }
33