[clang] [clang] mangle placeholder for deduced type as a template-prefix (PR #106335)

via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 28 12:16:08 PDT 2024


================
@@ -0,0 +1,12 @@
+// RUN: %clang_cc1 -std=c++20 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s
+
+template <template <class> class S>
+void create_unique()
+  requires (S{0}, true) {}
+
+template <class Fn> struct A {
+  constexpr A(Fn) {};
+};
+
+template void create_unique<A>();
+// CHECK: @_Z13create_uniqueI1AEvvQcmtlT_Li0EELb1E(
----------------
cor3ntin wrote:

So, here is an idea.
Should we
 - Land this patch in 20
 - Revert #95202 in 19 - Yes clang will be be broken but hopefully not more than it was in 18? At least it would not crash.

That seems like the cautious approach that avoid regressions/ICE in 19

As for whether we need to preserve the old behavior of mangling in an ABI flag, I'd like the opinion of more people and of what GCC's plan are. I also think we need to wait for feedback on whether it's impacting folks on the 20 cycle. And if people scream we can try to restore the old behavior. No need to carry bugs if no one rely on them

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


More information about the cfe-commits mailing list