summaryrefslogtreecommitdiffstats
path: root/test/CodeGenCXX/virtual-functions-incomplete-types.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenCXX/virtual-functions-incomplete-types.cpp')
-rw-r--r--test/CodeGenCXX/virtual-functions-incomplete-types.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/CodeGenCXX/virtual-functions-incomplete-types.cpp b/test/CodeGenCXX/virtual-functions-incomplete-types.cpp
new file mode 100644
index 0000000..1e1e962
--- /dev/null
+++ b/test/CodeGenCXX/virtual-functions-incomplete-types.cpp
@@ -0,0 +1,30 @@
+// RUN: clang-cc %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
+
+struct A;
+
+struct B {
+ virtual void f();
+ virtual A g();
+};
+
+void B::f() { }
+
+// CHECK: declare void @_ZN1B1gEv()
+
+struct C;
+
+struct D {
+ virtual void f();
+ virtual C g();
+};
+
+void D::f() { }
+
+struct C {
+ int a;
+};
+
+// CHECK: define i64 @_ZN1D1gEv(%struct.B* %this)
+C D::g() {
+ return C();
+}
OpenPOWER on IntegriCloud