http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55998
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2013-01-15 21:56:24 UTC --- Here is the full error message: t6789.cc: In substitution of ‘template<int N> using B = A<N> [with int N = (4 - 1)]’: t6789.cc:6:35: required from ‘struct C<4>’ t6789.cc:9:19: required from here t6789.cc:6:35: error: integral expression ‘(4 - 1)’ is not constant template<typename T> void x(B<N-1>) {} ^ t6789.cc:6:35: error: trying to instantiate ‘template<int N> using B = A<N>’