================
@@ -0,0 +1,39 @@
+// RUN: %clang_cc1 %s -std=c++26 -freflection -fsyntax-only
+
+using info = decltype(^^int);
+
+consteval void test()
+{
+ constexpr auto r = ^^int;
+ constexpr auto q = ^^int;
+
+ static_assert(__is_same(decltype(^^int), info));
+ static_assert(__is_same(decltype(^^float), info));
+ static_assert(__is_same(decltype(^^double), info));
+ static_assert(__is_same(decltype(^^long), info));
+ static_assert(__is_same(decltype(^^long long), info));
+ static_assert(__is_same(decltype(^^short), info));
+ static_assert(__is_same(decltype(^^char), info));
+ static_assert(__is_same(decltype(^^unsigned char), info));
+ static_assert(__is_same(decltype(^^unsigned short), info));
+ static_assert(__is_same(decltype(^^unsigned int), info));
+ static_assert(__is_same(decltype(^^unsigned long), info));
+ static_assert(__is_same(decltype(^^unsigned long long), info));
+
+ static_assert(__is_same(decltype(^^int), decltype(^^int)));
+ static_assert(__is_same(decltype(^^int), decltype(^^float)));
+ static_assert(__is_same(decltype(^^int), decltype(^^char)));
+ static_assert(__is_same(decltype(^^double), decltype(^^float)));
+
+ static_assert(!__is_same(decltype(^^int), int));
+
+ static_assert(sizeof(^^int) == sizeof(^^float));
+ static_assert(sizeof(^^int) == 8);
+
+
+ static_assert(^^int == ^^int);
+ static_assert(^^int != ^^float);
+ static_assert(^^float != ^^int);
+ static_assert(!(^^float == ^^int));
+ static_assert(r == q);
----------------
changkhothuychung wrote:
Right now we dont handle type alias yet, but the test `static_assert(^^int ==
^^decltype(a))` should work, let me add it. Thanks!
https://github.com/llvm/llvm-project/pull/190356
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits