// { dg-do compile { target c++17 } } // { dg-additional-options -fconcepts } // Don't attach constraints to block-scope fn-decls and ICE template concept input_or_output_iterator = requires(_Iter __i) { { *__i } ; }; template class common_iterator { public: void frob () { if (__builtin_is_constant_evaluated()) { void __failed_assertion(); // ICEd if (!bool(_M_index == 0)) __failed_assertion(); } } private: unsigned char _M_index; }; template concept C = true; template void F () { void bad () requires C; // { dg-error "a non-templated function" } }