test that the ptr-to-method is succefully eliminated, leaving just the vtable dispatch.
authorChris Lattner <sabre@nondot.org>
Mon, 13 Aug 2007 17:17:03 +0000 (17:17 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 13 Aug 2007 17:17:03 +0000 (17:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41047 91177308-0d34-0410-b5e6-96231b3b80d8

test/C++Frontend/ptr-to-method-devirt.cpp [new file with mode: 0644]

diff --git a/test/C++Frontend/ptr-to-method-devirt.cpp b/test/C++Frontend/ptr-to-method-devirt.cpp
new file mode 100644 (file)
index 0000000..358b801
--- /dev/null
@@ -0,0 +1,14 @@
+// PR1602
+// RUN: %llvmgxx -c -emit-llvm %s -o - -O3 | llvm-dis | not grep ptrtoint
+// RUN: %llvmgxx -c -emit-llvm %s -o - -O3 | llvm-dis | grep getelementptr | count 1
+
+
+struct S { virtual void f(); };
+
+typedef void (S::*P)(void);
+
+const P p = &S::f; 
+
+void g(S s) {
+   (s.*p)();
+ }