diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp index b0ed1e5e5c52b..24251e12d57dc 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp @@ -40,20 +40,12 @@ using namespace llvm::AMDGPU; // returns. #define GEN_HAS_MEMBER(member) \ class HasMember##member { \ - private: \ - struct KnownWithMember { \ - int member; \ - }; \ - class AmbiguousDerived : public AMDGPUMCKernelCodeT, \ - public KnownWithMember {}; \ template \ - static constexpr std::false_type Test(decltype(U::member) *); \ - template static constexpr std::true_type Test(...); \ + using check_member = decltype(std::declval().member); \ \ public: \ static constexpr bool RESULT = \ - std::is_same_v(nullptr)), \ - std::true_type>; \ + llvm::is_detected::value; \ }; \ class IsMCExpr##member { \ template \