1 // RUN: %clang_cc1 -ast-print -fsycl-is-device %s -o - | FileCheck %s 2 3 template <typename T> WrappedInTemplate(T t)4void WrappedInTemplate(T t) { 5 (void)__builtin_sycl_unique_stable_name(T); 6 (void)__builtin_sycl_unique_stable_name(typename T::type); 7 (void)__builtin_sycl_unique_stable_name(decltype(t.foo())); 8 } 9 10 struct Type { 11 using type = int; 12 13 double foo(); 14 }; 15 use()16void use() { 17 WrappedInTemplate(Type{}); 18 } 19 20 // CHECK: template <typename T> void WrappedInTemplate(T t) 21 // CHECK: __builtin_sycl_unique_stable_name(T); 22 // CHECK: __builtin_sycl_unique_stable_name(typename T::type); 23 // CHECK: __builtin_sycl_unique_stable_name(decltype(t.foo())); 24 25 // CHECK: template<> void WrappedInTemplate<Type>(Type t) 26 // CHECK: __builtin_sycl_unique_stable_name(Type); 27 // CHECK: __builtin_sycl_unique_stable_name(typename Type::type); 28 // CHECK: __builtin_sycl_unique_stable_name(decltype(t.foo())); 29