https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113170
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ice-on-invalid-code | --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I am not 100% sure this is valid or not; I suspect it is not valid but MSVC looks like goes into an similar infinite recusion too. While clang errors out: ``` <source>:11:8: error: template template argument has different template parameters than its corresponding template template parameter 11 | SS<S, int> ss; | ^ <source>:6:1: note: too many template parameters in template template argument 6 | template<typename T = int, template<typename> typename TT = SSS> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <source>:8:10: note: previous template template parameter is here 8 | template<template<typename> typename TT = S, typename T = int> | ^~~~~~~~~~~~~~~~~~ ``` But that error message seems wrong.