1 2 3 4 5 6 7 8 9 10 11 12 13
// { dg-do assemble } template<int M, int N> class GCD { public: enum { val = (N == 0) ? M : GCD<N, M % N>::val }; // { dg-error "constant expression" "valid" { target *-*-* } 6 } // { dg-message "template argument" "valid" { target *-*-* } 6 } }; int main() { GCD< 1, 0 >::val; // { dg-message "required" } }