| // RUN: %clang_cc1 -ast-print -fsycl-is-device %s -o - | FileCheck %s |
| |
| template <typename T> |
| void WrappedInTemplate(T t) { |
| (void)__builtin_sycl_unique_stable_name(T); |
| (void)__builtin_sycl_unique_stable_name(typename T::type); |
| (void)__builtin_sycl_unique_stable_name(decltype(t.foo())); |
| } |
| |
| struct Type { |
| using type = int; |
| |
| double foo(); |
| }; |
| |
| void use() { |
| WrappedInTemplate(Type{}); |
| } |
| |
| // CHECK: template <typename T> void WrappedInTemplate(T t) |
| // CHECK: __builtin_sycl_unique_stable_name(T); |
| // CHECK: __builtin_sycl_unique_stable_name(typename T::type); |
| // CHECK: __builtin_sycl_unique_stable_name(decltype(t.foo())); |
| |
| // CHECK: template<> void WrappedInTemplate<Type>(Type t) |
| // CHECK: __builtin_sycl_unique_stable_name(Type); |
| // CHECK: __builtin_sycl_unique_stable_name(typename Type::type); |
| // CHECK: __builtin_sycl_unique_stable_name(decltype(t.foo())); |