summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/cond.C
blob: 394a21c9a6ba3b2546dda67cd44aa56f6cd7b527 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 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);
}