brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 465f55f Raw
81 lines · cpp
1// RUN: %clang_cc1 -emit-llvm %s -o - -triple i386-apple-macosx10.7.22// PR10843 4extern "C"5{6  typedef unsigned char PRUint8;7  typedef unsigned int PRUint32;8}9typedef PRUint32 nsresult;10struct nsID11{12};13typedef nsID nsIID;14class nsISupports15{16};17extern "C++"18{19  template < class T > struct nsCOMTypeInfo20  {21    static const nsIID & GetIID ()22    {23      static const nsIID i = {};24      return i;25    }26  };27}28 29class nsIDOMEvent:public nsISupports30{31};32class nsIDOMEventListener:public nsISupports33{34public:static const nsIID & GetIID ()35  {36    static const nsIID i = {};37    return i;38  }39  virtual nsresult40    __attribute__ ((regparm (0), cdecl)) HandleEvent (nsIDOMEvent * event) =41    0;42};43class nsIDOMMouseListener:public nsIDOMEventListener44{45public:static const nsIID & GetIID ()46  {47    static const nsIID iid = {48    };49    return iid;50  }51  virtual nsresult52    __attribute__ ((regparm (0),53		    cdecl)) MouseDown (nsIDOMEvent * aMouseEvent) = 0;54};55typedef56typeof (&nsIDOMEventListener::HandleEvent)57  GenericHandler;58     struct EventDispatchData59     {60       PRUint32 message;61       GenericHandler method;62       PRUint8 bits;63     };64     struct EventTypeData65     {66       const EventDispatchData *events;67       int numEvents;68       const nsIID *iid;69     };70     static const EventDispatchData sMouseEvents[] = {71       {72	(300 + 2),73	reinterpret_cast < GenericHandler > (&nsIDOMMouseListener::MouseDown),74	0x01}75     };76static const EventTypeData sEventTypes[] = {77  {78   sMouseEvents, (sizeof (sMouseEvents) / sizeof (sMouseEvents[0])),79   &nsCOMTypeInfo < nsIDOMMouseListener >::GetIID ()}80};81