#pragma omp begin declare variant match(device = {arch(amdgcn)})
int foo() { return 1;}
#pragma omp end declare variant
//int foo() { return 2;}
namespace FOAM {
int foo() { return 3;}
}
int main(){
using namespace FOAM;
return foo();
}
when resolving foo in main, device variant should not be considered candidate. However, when FOAM::foo is introduced, device variant becomes a candidate, which cause ambiguity. This should not happen.
In the following example:
https://godbolt.org/z/eo1hx3a6W
```
#pragma omp begin declare variant match(device = {arch(amdgcn)})
int foo() { return 1;}
#pragma omp end declare variant
//int foo() { return 2;}
namespace FOAM {
int foo() { return 3;}
}
int main(){
using namespace FOAM;
return foo();
}
```
when resolving foo in main, device variant should not be considered candidate. However, when FOAM::foo is introduced, device variant becomes a candidate, which cause ambiguity. This should not happen.
@jhuber6
In the following example:
https://godbolt.org/z/eo1hx3a6W
when resolving foo in main, device variant should not be considered candidate. However, when FOAM::foo is introduced, device variant becomes a candidate, which cause ambiguity. This should not happen.
@jhuber6