@@ -4655,8 +4655,8 @@ static void EmitSpecIdShims(raw_ostream &OS, unsigned &ShimCounter,
4655
4655
// function call parameters.
4656
4656
static std::string EmitSpecIdShims (raw_ostream &OS, unsigned &ShimCounter,
4657
4657
const VarDecl *VD) {
4658
- assert ( VD->isInAnonymousNamespace () &&
4659
- " Function assumes this is in an anonymous namespace " ) ;
4658
+ if (! VD->isInAnonymousNamespace ())
4659
+ return " " ;
4660
4660
std::string RelativeName = VD->getNameAsString ();
4661
4661
EmitSpecIdShims (OS, ShimCounter, VD->getDeclContext (), RelativeName);
4662
4662
return RelativeName;
@@ -4673,29 +4673,24 @@ bool SYCLIntegrationFooter::emit(raw_ostream &OS) {
4673
4673
unsigned ShimCounter = 0 ;
4674
4674
for (const VarDecl *VD : SpecConstants) {
4675
4675
VD = VD->getCanonicalDecl ();
4676
+ std::string TopShim = EmitSpecIdShims (OS, ShimCounter, VD);
4677
+ OS << " __SYCL_INLINE_NAMESPACE(cl) {\n " ;
4678
+ OS << " namespace sycl {\n " ;
4679
+ OS << " namespace detail {\n " ;
4680
+ OS << " template<>\n " ;
4681
+ OS << " inline const char *get_spec_constant_symbolic_ID<" ;
4682
+
4676
4683
if (VD->isInAnonymousNamespace ()) {
4677
- std::string TopShim = EmitSpecIdShims (OS, ShimCounter, VD);
4678
- OS << " __SYCL_INLINE_NAMESPACE(cl) {\n " ;
4679
- OS << " namespace sycl {\n " ;
4680
- OS << " namespace detail {\n " ;
4681
- OS << " template<>\n " ;
4682
- OS << " inline const char *get_spec_constant_symbolic_ID<" << TopShim
4683
- << " >() {\n " ;
4684
- OS << " return \" " ;
4685
- emitSpecIDName (OS, VD);
4686
- OS << " \" ;\n " ;
4684
+ OS << TopShim;
4687
4685
} else {
4688
- OS << " __SYCL_INLINE_NAMESPACE(cl) {\n " ;
4689
- OS << " namespace sycl {\n " ;
4690
- OS << " namespace detail {\n " ;
4691
- OS << " template<>\n " ;
4692
- OS << " inline const char *get_spec_constant_symbolic_ID<::" ;
4686
+ OS << " ::" ;
4693
4687
VD->printQualifiedName (OS, Policy);
4694
- OS << " >() {\n " ;
4695
- OS << " return \" " ;
4696
- emitSpecIDName (OS, VD);
4697
- OS << " \" ;\n " ;
4698
4688
}
4689
+
4690
+ OS << " >() {\n " ;
4691
+ OS << " return \" " ;
4692
+ emitSpecIDName (OS, VD);
4693
+ OS << " \" ;\n " ;
4699
4694
OS << " }\n " ;
4700
4695
OS << " } // namespace detail\n " ;
4701
4696
OS << " } // namespace sycl\n " ;
0 commit comments