// { dg-do assemble } template class GCD { public: enum { val = (N == 0) ? M : GCD::val }; // { dg-error "constant expression" "valid" { target *-*-* } 6 } // { dg-message "template argument" "valid" { target *-*-* } 6 } }; int main() { GCD< 1, 0 >::val; // { dg-message "required" } }