// PR c++/8080
// Bug: the transformation in finish_while_stmt_cond produced something
// that tsubst_expr handled badly. Fixed by not doing the transformation
// while parsing a template.
class TObject {};
struct TIter {
TObject *operator()();
};
template<class T>
void get_root_object(TIter& iobj) {
while ( TObject* pnew_obj = iobj() )
;
}
void foo(TIter& iobj)
{
get_root_object<int>(iobj);
}