[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