[clang] [clang] CTAD alias: Respect explicit deduction guides defined after the first use of the alias template. (PR #125478)
Haojian Wu via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 5 00:52:57 PST 2025
================
@@ -237,8 +237,17 @@ static_assert(__is_same(decltype(s.t), int));
// explicit deduction guide.
Foo(int) -> Foo<X>;
AFoo s2{i};
-// FIXME: the type should be X because of the above explicit deduction guide.
-static_assert(__is_same(decltype(s2.t), int));
+static_assert(__is_same(decltype(s2.t), X));
+
+
+template<class T>
+using BFoo = AFoo<T>;
+static_assert(__is_same(decltype(BFoo(i).t), X));
+
+
+Foo(double) -> Foo<int>;
+static_assert(__is_same(decltype(AFoo(1.0).t), int));
+static_assert(__is_same(decltype(BFoo(1.0).t), int));
----------------
hokein wrote:
> > Does it fix this case: https://godbolt.org/z/b84rzhjjK if not we need to open a bug.
>
> That test case doesn't look related to these changes to me, I think it's a different issue.
This is not related to this patch. Filed #125821 for tracking (thanks for spotting it!)
https://github.com/llvm/llvm-project/pull/125478
More information about the cfe-commits
mailing list