https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91673
Bug ID: 91673 Summary: GCC ICE when partially specialising class template on a function-signature type with deduced noexcept qualifier Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: lewissbaker.opensource at gmail dot com Target Milestone: --- See https://godbolt.org/z/BndP6r Version: GCC trunk Command-line: -std=c++1z Compiling the following code: ``` template<typename Sig> struct overload; template<typename Ret, typename... Args, bool NoExcept> struct overload<Ret(Args...) noexcept(NoExcept)> { using signature_t = Ret(Args...) noexcept(NoExcept); }; overload<void()> x; ``` results in the following output: ``` <source>: In instantiation of 'struct overload<void()>': <source>:9:18: required from here <source>:6:11: internal compiler error: in tsubst_copy, at cp/pt.c:16183 6 | using signature_t = Ret(Args...) noexcept(NoExcept); | ^~~~~~~~~~~ ``` This seemed to compile without error under earlier releases of GCC.