// RUN: %clang_cc1 -fsyntax-only -verify %s | |
template<typename T, typename U> | |
struct X0 { | |
struct Inner; | |
}; | |
template<typename T, typename U> | |
struct X0<T, U>::Inner { | |
T x; | |
U y; | |
void f() { x = y; } // expected-error{{incompatible}} | |
}; | |
void test(int i, float f) { | |
X0<int, float>::Inner inner; | |
inner.x = 5; | |
inner.y = 3.4; | |
inner.f(); | |
X0<int*, float *>::Inner inner2; | |
inner2.x = &i; | |
inner2.y = &f; | |
inner2.f(); // expected-note{{instantiation}} | |
} |