// RUN: %clang_cc1 -verify -fsyntax-only -fcomplete-member-pointers %s struct S; // expected-note {{forward declaration of 'S'}} typedef int S::*t; t foo; // expected-error {{member pointer has incomplete base type 'S'}} struct S2 { int S2::*foo; }; int S2::*bar; template <typename T> struct S3 { int T::*foo; };