From 1fb0cb9e6cf695a6e0727707e2261a787a8f84d4 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" <SND\kernelnet_cp@9b283d60-5439-405e-af05-b73fd8c4d996> Date: Wed, 16 May 2012 13:27:47 +0000 Subject: [PATCH] [0.1.x] test : diamond virtual inheritance problem git-svn-id: https://pykd.svn.codeplex.com/svn@76380 9b283d60-5439-405e-af05-b73fd8c4d996 --- test/targetapp/targetapp.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/targetapp/targetapp.cpp b/test/targetapp/targetapp.cpp index c57d391..3330dce 100644 --- a/test/targetapp/targetapp.cpp +++ b/test/targetapp/targetapp.cpp @@ -313,6 +313,38 @@ fieldSameNameStruct g_fieldSameNameStruct; //////////////////////////////////////////////////////////////////////////////// +class VirtualBaseClass1 : public virtual classBase +{ + int m_member; + +public: + VirtualBaseClass1() : m_member(123){} + + virtual void virtFunc() {} + virtual void virtFunc2() {} +}; + +class VirtualBaseClass2 : public virtual classBase +{ + int m_member; + +public: + VirtualBaseClass2() : m_member(345){} + + virtual void virtFunc() {} + virtual void virtFunc2() {} +}; + +class VirtualChildClass : public VirtualBaseClass1, public VirtualBaseClass2 +{ + void virtFunc() {} + void virtFunc2() {} +}; + +VirtualChildClass g_virtChild; + +//////////////////////////////////////////////////////////////////////////////// + WNDENUMPROC g_ptrToFunction; void *g_unTypedPtrToFunction = g_ptrToFunction; #pragma pack( pop ) @@ -393,6 +425,8 @@ void FuncWithName0() std::cout << g_fieldSameNameStruct.baseStruct2::m_field; std::cout << g_structTypeDef.m_field0; + + std::cout << g_virtChild.VirtualBaseClass1::m_baseField; } ////////////////////////////////////////////////////////////////////////////////