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