https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96531
Bug ID: 96531 Summary: ICE for concepts here. Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: euloanty at live dot com Target Milestone: --- #include<variant> #include<concepts> template<typename ... Args> struct pack {}; template<typename ... Args> struct uv : std::false_type {}; template<typename ... Args> struct uv<std::variant<Args...>> { using type = pack<Args...>; }; template <typename T, typename ... Args> concept is_any_of_impl_4 = requires(pack<Args>) { requires (std::same_as<T, Args> || ...); }; inline std::variant<int, double> v; template <typename T> requires is_any_of_impl_4<bool, uv<decltype(v)>::type> void bar() {} int main() { bar<int>(); } https://godbolt.org/z/WPdePT <source>: In instantiation of 'void bar() [with T = int]': <source>:22:14: required from here <source>:12:14: internal compiler error: in tsubst_pack_expansion, at cp/pt.c:12924 12 | requires (std::same_as<T, Args> || ...); | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. Compiler returned: 1