// { dg-do assemble } template void accumulate(InputIterator first, BinaryOperation binary_op) { } template int p( int val, R& r ) { return val + r; } template void f(R) { accumulate(0, static_cast(p) ); } int main() { f(0); }