// RUN: %clang_cc1 -std=c++20 -verify %s namespace PR46377 { template using IntPtr = int*; template auto non_dependent_typedef() { typedef int(*P)(IntPtr...); return P(); } template auto non_dependent_alias() { using P = int(*)(IntPtr...); return P(); } template auto non_dependent_via_sizeof() { using P = int(*)(int(...pack)[sizeof(sizeof(T))]); // expected-error {{invalid application of 'sizeof'}} return P(); } using a = int (*)(int*, int*); using a = decltype(non_dependent_typedef()); using a = decltype(non_dependent_alias()); using a = decltype(non_dependent_via_sizeof()); using b = decltype(non_dependent_via_sizeof()); // expected-note {{instantiation of}} }