forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			602 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			602 B
		
	
	
	
		
			C++
		
	
	
	
// 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;
 | 
						|
  }
 | 
						|
}
 |