| // 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; | |
| }; |