Hi! This testcase got accepted in 6.x, started to ICE with r236221, r236486 stopped ICEing on it and started rejecting it, r237654 accepts it again. clang++ also accepts it.
Tested on x86_64-linux, committed to trunk so that the PR can be closed. 2016-11-12 Jakub Jelinek <ja...@redhat.com> PR c++/71225 * g++.dg/cpp0x/pr71225.C: New test. --- gcc/testsuite/g++.dg/cpp0x/pr71225.C (revision 0) +++ gcc/testsuite/g++.dg/cpp0x/pr71225.C (revision 242328) @@ -0,0 +1,17 @@ +// PR c++/71225 +// { dg-do compile { target c++11 } } + +template <bool, class> struct A; +template <class T> struct B; +template <typename T> +struct C +{ + struct D + { + template <int N = 42, typename A<N == 43 || B<T>(), int>::type = 0> + void foo () const {} + template <int N = 42, typename A<N == 43 || !B<T> (), int>::type = 0> + void foo () const {} + void bar () { foo (); } + }; +}; Jakub