// RUN: %clang_cc1 -fsyntax-only -verify %s template <typename T> struct A { typedef int iterator; // expected-note{{declared here}} }; template <typename T> void f() { class A <T> ::iterator foo; // expected-error{{elaborated type refers to a typedef}} } void g() { f<int>(); // expected-note{{in instantiation of function template}} }