@@ -14,12 +14,13 @@ using namespace cl;
1414// variable.
1515struct S1 {
1616 static constexpr sycl::specialization_id a{1 };
17- // CHECK: __SYCL_INLINE_NAMESPACE(cl) {
17+ // CHECK: #include <CL/sycl/detail/defines_elementary.hpp>
18+ // CHECK-NEXT: __SYCL_INLINE_NAMESPACE(cl) {
1819 // CHECK-NEXT: namespace sycl {
1920 // CHECK-NEXT: namespace detail {
2021 // CHECK-NEXT: template<>
2122 // CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::S1::a>() {
22- // CHECK-NEXT: return "" ;
23+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<S1::a>) ;
2324 // CHECK-NEXT: }
2425 // CHECK-NEXT: } // namespace detail
2526 // CHECK-NEXT: } // namespace sycl
@@ -31,7 +32,7 @@ constexpr sycl::specialization_id b{2};
3132// CHECK-NEXT: namespace detail {
3233// CHECK-NEXT: template<>
3334// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::b>() {
34- // CHECK-NEXT: return "" ;
35+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<b>) ;
3536// CHECK-NEXT: }
3637// CHECK-NEXT: } // namespace detail
3738// CHECK-NEXT: } // namespace sycl
@@ -42,7 +43,7 @@ inline constexpr sycl::specialization_id c{3};
4243// CHECK-NEXT: namespace detail {
4344// CHECK-NEXT: template<>
4445// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::c>() {
45- // CHECK-NEXT: return "" ;
46+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<c>) ;
4647// CHECK-NEXT: }
4748// CHECK-NEXT: } // namespace detail
4849// CHECK-NEXT: } // namespace sycl
@@ -53,7 +54,7 @@ static constexpr sycl::specialization_id d{4};
5354// CHECK-NEXT: namespace detail {
5455// CHECK-NEXT: template<>
5556// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::d>() {
56- // CHECK-NEXT: return "" ;
57+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<d>) ;
5758// CHECK-NEXT: }
5859// CHECK-NEXT: } // namespace detail
5960// CHECK-NEXT: } // namespace sycl
@@ -62,23 +63,23 @@ static constexpr sycl::specialization_id d{4};
6263namespace {
6364struct S2 {
6465 static constexpr sycl::specialization_id a{18 };
65- // CHECK-NEXT: namespace {
66- // CHECK-NEXT: namespace __sycl_detail {
67- // CHECK-NEXT: static constexpr decltype(S2::a) &__spec_id_shim_[[SHIM_ID:[0-9]+]]() {
68- // CHECK-NEXT: return S2::a;
69- // CHECK-NEXT: }
70- // CHECK-NEXT: } // namespace __sycl_detail
71- // CHECK-NEXT: } // namespace
72- // CHECK-NEXT: __SYCL_INLINE_NAMESPACE(cl) {
73- // CHECK-NEXT: namespace sycl {
74- // CHECK-NEXT: namespace detail {
75- // CHECK-NEXT: template<>
76- // CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::__sycl_detail::__spec_id_shim_[[SHIM_ID]]()>() {
77- // CHECK-NEXT: return "" ;
78- // CHECK-NEXT: }
79- // CHECK-NEXT: } // namespace detail
80- // CHECK-NEXT: } // namespace sycl
81- // CHECK-NEXT: } // __SYCL_INLINE_NAMESPACE(cl)
66+ // CHECK-NEXT: namespace {
67+ // CHECK-NEXT: namespace __sycl_detail {
68+ // CHECK-NEXT: static constexpr decltype(S2::a) &__spec_id_shim_[[SHIM_ID:[0-9]+]]() {
69+ // CHECK-NEXT: return S2::a;
70+ // CHECK-NEXT: }
71+ // CHECK-NEXT: } // namespace __sycl_detail
72+ // CHECK-NEXT: } // namespace
73+ // CHECK-NEXT: __SYCL_INLINE_NAMESPACE(cl) {
74+ // CHECK-NEXT: namespace sycl {
75+ // CHECK-NEXT: namespace detail {
76+ // CHECK-NEXT: template<>
77+ // CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::__sycl_detail::__spec_id_shim_[[SHIM_ID]]()>() {
78+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<S2::a>) ;
79+ // CHECK-NEXT: }
80+ // CHECK-NEXT: } // namespace detail
81+ // CHECK-NEXT: } // namespace sycl
82+ // CHECK-NEXT: } // __SYCL_INLINE_NAMESPACE(cl)
8283};
8384} // namespace
8485
@@ -92,7 +93,7 @@ template class S3<1>;
9293// CHECK-NEXT: namespace detail {
9394// CHECK-NEXT: template<>
9495// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::S3<1>::a>() {
95- // CHECK-NEXT: return "" ;
96+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<S3<1>::a>) ;
9697// CHECK-NEXT: }
9798// CHECK-NEXT: } // namespace detail
9899// CHECK-NEXT: } // namespace sycl
@@ -103,7 +104,7 @@ template class S3<2>;
103104// CHECK-NEXT: namespace detail {
104105// CHECK-NEXT: template<>
105106// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::S3<2>::a>() {
106- // CHECK-NEXT: return "" ;
107+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<S3<2>::a>) ;
107108// CHECK-NEXT: }
108109// CHECK-NEXT: } // namespace detail
109110// CHECK-NEXT: } // namespace sycl
@@ -116,7 +117,7 @@ constexpr sycl::specialization_id same_name{5};
116117// CHECK-NEXT: namespace detail {
117118// CHECK-NEXT: template<>
118119// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::inner::same_name>() {
119- // CHECK-NEXT: return "" ;
120+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<inner::same_name>) ;
120121// CHECK-NEXT: }
121122// CHECK-NEXT: } // namespace detail
122123// CHECK-NEXT: } // namespace sycl
@@ -128,7 +129,7 @@ constexpr sycl::specialization_id same_name{6};
128129// CHECK-NEXT: namespace detail {
129130// CHECK-NEXT: template<>
130131// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::same_name>() {
131- // CHECK-NEXT: return "" ;
132+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<same_name>) ;
132133// CHECK-NEXT: }
133134// CHECK-NEXT: } // namespace detail
134135// CHECK-NEXT: } // namespace sycl
@@ -147,7 +148,7 @@ constexpr sycl::specialization_id same_name{7};
147148// CHECK-NEXT: namespace detail {
148149// CHECK-NEXT: template<>
149150// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::__sycl_detail::__spec_id_shim_[[SHIM_ID]]()>() {
150- // CHECK-NEXT: return "" ;
151+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<same_name>) ;
151152// CHECK-NEXT: }
152153// CHECK-NEXT: } // namespace detail
153154// CHECK-NEXT: } // namespace sycl
@@ -168,7 +169,7 @@ constexpr sycl::specialization_id same_name{8};
168169// CHECK-NEXT: namespace detail {
169170// CHECK-NEXT: template<>
170171// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::__sycl_detail::__spec_id_shim_[[SHIM_ID]]()>() {
171- // CHECK-NEXT: return "" ;
172+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<inner::same_name>) ;
172173// CHECK-NEXT: }
173174// CHECK-NEXT: } // namespace detail
174175// CHECK-NEXT: } // namespace sycl
@@ -192,7 +193,7 @@ constexpr sycl::specialization_id same_name{9};
192193// CHECK-NEXT: namespace detail {
193194// CHECK-NEXT: template<>
194195// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::inner::__sycl_detail::__spec_id_shim_[[SHIM_ID]]()>() {
195- // CHECK-NEXT: return "" ;
196+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<inner::same_name>) ;
196197// CHECK-NEXT: }
197198// CHECK-NEXT: } // namespace detail
198199// CHECK-NEXT: } // namespace sycl
@@ -207,7 +208,7 @@ constexpr sycl::specialization_id same_name{10};
207208// CHECK-NEXT: namespace detail {
208209// CHECK-NEXT: template<>
209210// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::outer::same_name>() {
210- // CHECK-NEXT: return "" ;
211+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<outer::same_name>) ;
211212// CHECK-NEXT: }
212213// CHECK-NEXT: } // namespace detail
213214// CHECK-NEXT: } // namespace sycl
@@ -228,7 +229,7 @@ constexpr sycl::specialization_id same_name{11};
228229// CHECK-NEXT: namespace detail {
229230// CHECK-NEXT: template<>
230231// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::outer::__sycl_detail::__spec_id_shim_[[SHIM_ID]]()>() {
231- // CHECK-NEXT: return "" ;
232+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<outer::same_name>) ;
232233// CHECK-NEXT: }
233234// CHECK-NEXT: } // namespace detail
234235// CHECK-NEXT: } // namespace sycl
@@ -250,7 +251,7 @@ constexpr sycl::specialization_id same_name{12};
250251// CHECK-NEXT: namespace detail {
251252// CHECK-NEXT: template<>
252253// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::outer::__sycl_detail::__spec_id_shim_[[SHIM_ID]]()>() {
253- // CHECK-NEXT: return "" ;
254+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<outer::inner::same_name>) ;
254255// CHECK-NEXT: }
255256// CHECK-NEXT: } // namespace detail
256257// CHECK-NEXT: } // namespace sycl
@@ -288,7 +289,7 @@ constexpr sycl::specialization_id same_name{13};
288289// CHECK-NEXT: namespace detail {
289290// CHECK-NEXT: template<>
290291// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::outer::__sycl_detail::__spec_id_shim_[[SHIM_ID_2]]()>() {
291- // CHECK-NEXT: return "" ;
292+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<outer::inner::same_name>) ;
292293// CHECK-NEXT: }
293294// CHECK-NEXT: } // namespace detail
294295// CHECK-NEXT: } // namespace sycl
@@ -313,7 +314,7 @@ constexpr sycl::specialization_id same_name{14};
313314// CHECK-NEXT: namespace detail {
314315// CHECK-NEXT: template<>
315316// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::__sycl_detail::__spec_id_shim_[[SHIM_ID]]()>() {
316- // CHECK-NEXT: return "" ;
317+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<outer::same_name>) ;
317318// CHECK-NEXT: }
318319// CHECK-NEXT: } // namespace detail
319320// CHECK-NEXT: } // namespace sycl
@@ -343,7 +344,7 @@ constexpr sycl::specialization_id same_name{15};
343344// CHECK-NEXT: namespace detail {
344345// CHECK-NEXT: template<>
345346// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::__sycl_detail::__spec_id_shim_[[SHIM_ID2]]()>() {
346- // CHECK-NEXT: return "" ;
347+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<outer::same_name>) ;
347348// CHECK-NEXT: }
348349// CHECK-NEXT: } // namespace detail
349350// CHECK-NEXT: } // namespace sycl
@@ -373,7 +374,7 @@ constexpr sycl::specialization_id same_name{16};
373374// CHECK-NEXT: namespace detail {
374375// CHECK-NEXT: template<>
375376// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::__sycl_detail::__spec_id_shim_[[SHIM_ID2]]()>() {
376- // CHECK-NEXT: return "" ;
377+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<outer::inner::same_name>) ;
377378// CHECK-NEXT: }
378379// CHECK-NEXT: } // namespace detail
379380// CHECK-NEXT: } // namespace sycl
@@ -391,7 +392,7 @@ constexpr sycl::specialization_id same_name{17};
391392// CHECK-NEXT: namespace detail {
392393// CHECK-NEXT: template<>
393394// CHECK-NEXT: inline const char *get_spec_constant_symbolic_ID<::outer::inner::same_name>() {
394- // CHECK-NEXT: return "" ;
395+ // CHECK-NEXT: return __builtin_unique_stable_name(specialization_id_name_generator<outer::inner::same_name>) ;
395396// CHECK-NEXT: }
396397// CHECK-NEXT: } // namespace detail
397398// CHECK-NEXT: } // namespace sycl
0 commit comments