// { dg-do assemble } // Origin: Jakub Jelinek class foo { public: class __iterator; friend class __iterator; typedef __iterator const_iterator; virtual ~foo() { } __iterator begin(); // { dg-message "foo::begin|no known conversion for implicit" } }; static void iteratorTest(const foo &x) { foo::const_iterator i = x.begin(); // { dg-error "incomplete type" "incomplete type" } // { dg-message "candidate" "candidate note" { target *-*-* } 14 } // { dg-error "no matching" "no matching" { target *-*-* } 14 } for (; i; ++i) *i; }