14 lines
		
	
	
		
			384 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			14 lines
		
	
	
		
			384 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -verify %s
 | 
						|
 | 
						|
struct BaseReturn {};
 | 
						|
 | 
						|
struct Base {
 | 
						|
  virtual BaseReturn Foo() = 0;  // expected-note{{overridden virtual function is here}}
 | 
						|
};
 | 
						|
struct X {};
 | 
						|
struct Derived : Base {
 | 
						|
  X Foo();  // expected-error{{virtual function 'Foo' has a different return type ('X') than the function it overrides (which has return type 'BaseReturn')}}
 | 
						|
};
 | 
						|
 | 
						|
Derived d;
 |