[clang] [clang] fix unresolved dependent template specialization mangling (PR #135111)

Orlando Cazalet-Hyams via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 24 06:49:21 PDT 2025


================
@@ -399,3 +399,20 @@ namespace type_qualifier {
   // CHECK: @_ZN14type_qualifier1gIPiEEvDTcmcvv_ELi1EE
   template void g<int*>(int);
 }
+
+namespace unresolved_template_specialization_type {
+  template <int> struct enable_if {};
+  struct Foo {
+    static const int value = true;
+  };
+  struct HashStateBase {
+    template <typename> using is_hashable = Foo;
+  };
+  template <class> struct raw_hash_set {
+    template <typename H>
+    static enable_if<H::template is_hashable<int>::value>
+        AbslHashValue() {}
+  };
+  template enable_if<true> raw_hash_set<int>::AbslHashValue<HashStateBase>();
+  // CHECH: @_ZN39unresolved_template_specialization_type12raw_hash_setIiE13AbslHashValueINS_13HashStateBaseEEENS_9enable_ifIXsrNT_11is_hashableIiEE5valueEEEv
----------------
OCHyams wrote:

@mizvekov miss-spelled `CHECK`? (`CHECH` ). Looks like it's still [in tree](https://github.com/llvm/llvm-project/blob/main/clang/test/CodeGenCXX/mangle-template.cpp#L417) atm.

https://github.com/llvm/llvm-project/pull/135111


More information about the cfe-commits mailing list