diff options
author | Chris Lattner <sabre@nondot.org> | 2007-01-07 00:02:20 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-01-07 00:02:20 +0000 |
commit | 774abfefeb4969b6bdb477d2fe0cba7ae094966f (patch) | |
tree | 9a1d4b4c6b3df7453154c9b6f848c4cb5e95c169 /test/C++Frontend/2007-01-06-PtrMethodInit.cpp | |
parent | ddc6f353c0e6746553e7042170e42d715b76a294 (diff) |
New testcase for PR1084
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32967 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/C++Frontend/2007-01-06-PtrMethodInit.cpp')
-rw-r--r-- | test/C++Frontend/2007-01-06-PtrMethodInit.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/test/C++Frontend/2007-01-06-PtrMethodInit.cpp b/test/C++Frontend/2007-01-06-PtrMethodInit.cpp new file mode 100644 index 0000000000..f87c8d888f --- /dev/null +++ b/test/C++Frontend/2007-01-06-PtrMethodInit.cpp @@ -0,0 +1,75 @@ +// RUN: %llvmgxx %s -emit-llvm -S -o - +// PR1084 + +extern "C" +{ + typedef unsigned char PRUint8; + typedef unsigned int PRUint32; +} +typedef PRUint32 nsresult; +struct nsID +{ +}; +typedef nsID nsIID; +class nsISupports +{ +}; +extern "C++" +{ + template < class T > struct nsCOMTypeInfo + { + static const nsIID & GetIID () + { + } + }; +} + +class nsIDOMEvent:public nsISupports +{ +}; +class nsIDOMEventListener:public nsISupports +{ +public:static const nsIID & GetIID () + { + } + virtual nsresult + __attribute__ ((regparm (0), cdecl)) HandleEvent (nsIDOMEvent * event) = + 0; +}; +class nsIDOMMouseListener:public nsIDOMEventListener +{ +public:static const nsIID & GetIID () + { + static const nsIID iid = { + }; + } + virtual nsresult + __attribute__ ((regparm (0), + cdecl)) MouseDown (nsIDOMEvent * aMouseEvent) = 0; +}; +typedef +typeof (&nsIDOMEventListener::HandleEvent) + GenericHandler; + struct EventDispatchData + { + PRUint32 message; + GenericHandler method; + PRUint8 bits; + }; + struct EventTypeData + { + const EventDispatchData *events; + int numEvents; + const nsIID *iid; + }; + static const EventDispatchData sMouseEvents[] = { + { + (300 + 2), + reinterpret_cast < GenericHandler > (&nsIDOMMouseListener::MouseDown), + 0x01} + }; +static const EventTypeData sEventTypes[] = { + { + sMouseEvents, (sizeof (sMouseEvents) / sizeof (sMouseEvents[0])), + &nsCOMTypeInfo < nsIDOMMouseListener >::GetIID ()} +}; |