// REQUIRES: amdgpu-registered-target // REQUIRES: nvptx-registered-target // Overload ambiguity inside an implicit-H+D explicit-inst member without an // organic device caller: error is silenced, function body is a trap stub. // RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -fcuda-is-device -x hip \ // RUN: -emit-llvm -o - %s | FileCheck %s // RUN: %clang_cc1 -triple nvptx64-nvidia-cuda -fcuda-is-device -x hip \ // RUN: -emit-llvm -o - %s | FileCheck %s #include "Inputs/cuda.h" __host__ __device__ int pick(long); __host__ __device__ int pick(unsigned long); template struct ETI { constexpr int call(T x) { return pick(x); } }; template class ETI; __global__ void k() {} // CHECK-LABEL: define {{.*}} i32 @_ZN3ETIIiE4callEi( // CHECK: call void @llvm.trap() // CHECK-NEXT: ret i32 poison