https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97773
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |marxin at gcc dot gnu.org --- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> --- I have reduced (but invalid test-case) that ICEs: $ cat r.C template <typename _Fn, typename _Tuple> void apply(_Fn, _Tuple); template <typename... T> void hash_combine() noexcept(noexcept((T(), ...))); int operator0_t { apply(hash_combine<>, operator0_t); } I guess we can fix it in order to make clang++ accept it: $ clang++ r.C r.C:2:70: warning: pack fold expression is a C++17 extension [-Wc++17-extensions] template <typename... T> void hash_combine() noexcept(noexcept((T(), ...))); ^ r.C:4:37: error: unexpected ';' before '}' apply(hash_combine<>, operator0_t); ^ r.C:4:3: error: cannot initialize a variable of type 'int' with an rvalue of type 'void' apply(hash_combine<>, operator0_t); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ r.C:5:2: error: expected ';' after top level declarator } ^ ; 1 warning and 3 errors generated. ?