// 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 void get_root_object(TIter& iobj) { while ( TObject* pnew_obj = iobj() ) ; } void foo(TIter& iobj) { get_root_object(iobj); }