http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59759
--- Comment #3 from Gereon Kremer <gereon.kremer at cs dot rwth-aachen.de> --- (In reply to Marek Polacek from comment #2) > I'd say a dup of PR59115. I checked the following code from PR59115 that should also trigger this bug: template<typename T, float = 0, int = 0, typename U = int> void foo(T, U) {} void bar() { foo(0, 0); } This does not trigger an ICE for me, but produces the following, hence it does not seem like a duplicate to me... Test_GCC.cpp:15:30: error: ‘float’ is not a valid type for a template non-type parameter template<typename T, float = 0, int = 0, typename U = int> void foo(T, U) {} ^ Test_GCC.cpp:19: confused by earlier errors, bailing out