[clang] [Clang] Fix various bugs in alias CTAD transform (PR #132061)
Matheus Izvekov via cfe-commits
cfe-commits at lists.llvm.org
Sat Mar 22 11:34:26 PDT 2025
================
@@ -17,3 +16,134 @@ void k() {
}
} // namespace GH64347
+
+namespace GH123591 {
+
+
+template < typename... _Types >
+struct variant {
+ template <int N = sizeof...(_Types)>
+ variant(_Types...);
+};
+
+template <class T>
+using AstNode = variant<T, T, T>;
+
+AstNode tree(42, 43, 44);
+
+}
+
+namespace GH123591_2 {
+
+template <int>
+using enable_if_t = char;
+
+template < typename... Types >
+struct variant {
+ template < enable_if_t<sizeof...(Types)>>
+ variant();
+};
+
+template <int>
+using AstNode = variant<>;
+// expected-note at -1 {{couldn't infer template argument ''}} \
+// expected-note at -1 2{{implicit deduction guide declared as}} \
+// expected-note at -1 {{candidate function template not viable}}
+
+
+AstNode tree; // expected-error {{no viable constructor or deduction guide}}
+
+}
+
+namespace GH127539 {
+
+template <class...>
+struct A {
+ template <class... ArgTs>
+ A(ArgTs...) {}
+};
+
+template <class... ArgTs>
+A(ArgTs...) -> A<typename ArgTs::value_type...>;
+
+template <class... Ts>
+using AA = A<Ts..., Ts...>;
+
+AA a{};
+
+}
+
+namespace GH129077 {
+
+using size_t = decltype(sizeof(0));
+
+struct index_type
+{
+ size_t value{~0ull};
----------------
mizvekov wrote:
This looks to be breaking on a buildbot: https://lab.llvm.org/buildbot/#/builders/135/builds/1706
You need to either change the test here, or pin the test to a certain triple, in order to avoid differences in the type of size_t between machines.
https://github.com/llvm/llvm-project/pull/132061
More information about the cfe-commits
mailing list