| // RUN: %clang_cc1 -fsyntax-only -verify %s | |
| // PR5868 | |
| struct T0 { | |
| int x; | |
| union { | |
| void *m0; | |
| }; | |
| }; | |
| template <typename T> | |
| struct T1 : public T0, public T { | |
| void f0() { | |
| m0 = 0; // expected-error{{ambiguous conversion}} | |
| } | |
| }; | |
| struct A : public T0 { }; | |
| void f1(T1<A> *S) { S->f0(); } // expected-note{{instantiation of member function}} | |
| namespace rdar8635664 { | |
| template<typename T> | |
| struct X { | |
| struct inner; | |
| struct inner { | |
| union { | |
| int x; | |
| float y; | |
| }; | |
| typedef T type; | |
| }; | |
| }; | |
| void test() { | |
| X<int>::inner i; | |
| i.x = 0; | |
| } | |
| } |