// RUN: %clang_cc1 -fsyntax-only -verify %s
;
;
int i;
S::A<int>::Nested::type *ip = &i;
;
;
void Outer<X>::Inner0<Y>
;
void Outer<X>::Inner1<Y>
X Outer<X>::Inner1<Y>
X Outer<X>::Inner1<Y>
X* Outer<X>::Inner1<Y>
X Outer<X>::Inner1<Y>::value1 = 0;
Y Outer<X>::Inner1<Y>::value2 = ;
Y Outer<X>::Inner1<Y>::ReallyInner::value3 = ;
Y Outer<X>::Inner1<Y*>::ReallyInner::value4; // expected-error{{Outer<X>::Inner1<Y *>::ReallyInner::}}
;
;
// PR5103
;
;
// Template template parameters
;
// expected-note{{template non-type parameter}}
;
X2<int>::Inner<X2_arg> x2i1;
X2<float> x2a; // expected-note{{instantiation}}
X2<long>::Inner<X2_arg> x2i3; // expected-error{{template template argument has different}}
;