[llvm-commits] CVS: llvm/test/Regression/C++Frontend/2007-01-06-PtrMethodInit.cpp

Chris Lattner sabre at nondot.org
Sat Jan 6 16:02:35 PST 2007



Changes in directory llvm/test/Regression/C++Frontend:

2007-01-06-PtrMethodInit.cpp added (r1.1)
---
Log message:

New testcase for PR1084: http://llvm.org/PR1084 


---
Diffs of the changes:  (+75 -0)

 2007-01-06-PtrMethodInit.cpp |   75 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+)


Index: llvm/test/Regression/C++Frontend/2007-01-06-PtrMethodInit.cpp
diff -c /dev/null llvm/test/Regression/C++Frontend/2007-01-06-PtrMethodInit.cpp:1.1
*** /dev/null	Sat Jan  6 18:02:30 2007
--- llvm/test/Regression/C++Frontend/2007-01-06-PtrMethodInit.cpp	Sat Jan  6 18:02:20 2007
***************
*** 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 ()}
+ };






More information about the llvm-commits mailing list