[clang] [Sema] Avoid an undesired pack expansion while transforming PackIndexingType (PR #90195)

via cfe-commits cfe-commits at lists.llvm.org
Sat Apr 27 01:40:39 PDT 2024


================
@@ -160,3 +160,22 @@ namespace GH88929 {
     using E = P...[0]; // expected-error {{unknown type name 'P'}} \
                        // expected-error {{expected ';' after alias declaration}}
 }
+
+namespace GH88925 {
+template <typename...> struct S {};
+
+template <int...> struct sequence {};
+
+template <typename... Args, int... indices> auto f(sequence<indices...>) {
+  return S<Args...[indices]...>(); // #use
+}
+
----------------
cor3ntin wrote:

> I guess we can perceive dependent PackIndexingExprs as LValues in such cases, like what we did for UnresolvedLookupExpr. Additionally, P2662 now limits them to id-expressions only, and hence we can probably always treat them as LValues?

Yes, they are always LValues for now.  So we might want to do that indeed

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


More information about the cfe-commits mailing list