1 // { dg-do assemble  }
2 // Origin: Jakub Jelinek <jakub@redhat.com>
3 
4 class foo {
5  public:
6    class __iterator;		// { dg-message "declaration" }
7    friend class __iterator;
8    typedef __iterator const_iterator;
~foo()9    virtual ~foo() { }
10    __iterator begin();				// { dg-message "foo::begin|no known conversion for implicit" }
11 };
iteratorTest(const foo & x)12 static void iteratorTest(const foo &x)
13 {
14    foo::const_iterator i = x.begin();		// { dg-error "incomplete type" "incomplete type" }
15    // { dg-error "const foo" "" { target *-*-* } 14 }
16    for (; i; ++i)
17       *i;
18 }
19