================
@@ -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(
----------------
AaronBallman wrote:

> @AaronBallman to clarify the status quo is that this crashes in 19. (and did 
> not crash in 18)

Yup, I knew it was a regression (boo!); if we fixed it a few weeks ago, I think 
it'd be an easier sell for backporting. My concern is we don't have enough bake 
time for 19.0.1, and once that goes out we no longer take ABI breaking changes 
for subsequent releases of 19.x.

> Lastly, keeping the previous behavior under a different ABI flag seems 
> problematic, as we would be also tying these bugs to the flag.

That's the usual point to the flag; we start doing the right thing by default, 
but we leave an escape hatch for people relying on the previous ABI (despite 
the bugs) because we don't know who is relying on the old behavior.

https://github.com/llvm/llvm-project/pull/106335
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to