aboutsummaryrefslogtreecommitdiff
path: root/clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-08-03 08:39:58 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-08-03 08:39:58 +0000
commit73d1be7c56e1fd92d4a27ff53bc6783a269b1362 (patch)
treeb9cf20828a5999dbc7bc804d9e7608211ff481fa /clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp
parent08ffdba6bdba3f76a81b8bdbcb06f654d2401e8b (diff)
downloadllvm-73d1be7c56e1fd92d4a27ff53bc6783a269b1362.zip
llvm-73d1be7c56e1fd92d4a27ff53bc6783a269b1362.tar.gz
llvm-73d1be7c56e1fd92d4a27ff53bc6783a269b1362.tar.bz2
Fix failed to generate vtables in certain cases.
By C++ standard, the vtable should be generated if the first non-inline virtual function is defined in the TU. Current version of clang doesn't generate vtable if the first virtual function is defaulted, because the key function is regarded as the defaulted function. Patch by Li Kan! llvm-svn: 161236
Diffstat (limited to 'clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp')
-rw-r--r--clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp b/clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp
new file mode 100644
index 0000000..705a4ad
--- /dev/null
+++ b/clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp
@@ -0,0 +1,11 @@
+// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - -std=c++11 | FileCheck %s
+// PR13424
+
+struct X {
+ virtual ~X() = default;
+ virtual void f();
+};
+
+void X::f() {}
+
+// CHECK: @_ZTV1X = unnamed_addr constant