mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-04 01:43:06 +00:00
0b85642898
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51695 91177308-0d34-0410-b5e6-96231b3b80d8
76 lines
1.4 KiB
C++
76 lines
1.4 KiB
C++
// 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 ()}
|
|
};
|