aboutsummaryrefslogtreecommitdiff
path: root/clang/test/CodeGenCXX/member-function-pointers.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-01-05 05:04:05 +0000
committerAnders Carlsson <andersca@mac.com>2010-01-05 05:04:05 +0000
commita0b025e40f94ceffcc8f197d9c15d0f5ade65d96 (patch)
treebe4f42fe27ad4be63a4289fca003b3bc018606a1 /clang/test/CodeGenCXX/member-function-pointers.cpp
parentf741d72b8492daf5569508d1feabc25400d71afc (diff)
downloadllvm-a0b025e40f94ceffcc8f197d9c15d0f5ade65d96.zip
llvm-a0b025e40f94ceffcc8f197d9c15d0f5ade65d96.tar.gz
llvm-a0b025e40f94ceffcc8f197d9c15d0f5ade65d96.tar.bz2
When emitting member function pointers, use the canonical decl if the member function is virtual. Fixes PR5940.
llvm-svn: 92680
Diffstat (limited to 'clang/test/CodeGenCXX/member-function-pointers.cpp')
-rw-r--r--clang/test/CodeGenCXX/member-function-pointers.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/member-function-pointers.cpp b/clang/test/CodeGenCXX/member-function-pointers.cpp
index 149b560..2454dda 100644
--- a/clang/test/CodeGenCXX/member-function-pointers.cpp
+++ b/clang/test/CodeGenCXX/member-function-pointers.cpp
@@ -128,3 +128,14 @@ namespace BoolMemberPointer {
}
}
+// PR5940
+namespace PR5940 {
+ class foo {
+ public:
+ virtual void baz(void);
+ };
+
+ void foo::baz(void) {
+ void (foo::*ptr)(void) = &foo::baz;
+ }
+}