1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
2 
3 struct A;
4 
5 struct B {
6   virtual void f();
7   virtual A g();
8 };
9 
10 void B::f() { }
11 
12 // CHECK-LABEL: define i32 @_ZN1D1gEv(%struct.D* %this)
13 // CHECK: declare void @_ZN1B1gEv()
14 
15 struct C;
16 
17 struct D {
18   virtual void f();
19   virtual C g();
20 };
21 
22 void D::f() { }
23 
24 struct C {
25   int a;
26 };
27 
28 C D::g() {
29   return C();
30 }
31