summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2011-08-19 23:08:33 +0000
committerEric Christopher <echristo@apple.com>2011-08-19 23:08:33 +0000
commit17db038966474d8be47964c913cdc3019fe1aa8b (patch)
treee196e8053231bfbc7b2ee29452393e35d4dd25b4 /clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp
parent7d47a66379ba8800b34f601c4bdd0606f1623bf2 (diff)
downloadbcm5719-llvm-17db038966474d8be47964c913cdc3019fe1aa8b.tar.gz
bcm5719-llvm-17db038966474d8be47964c913cdc3019fe1aa8b.zip
Migrate:
2007-01-06-PtrMethodInit.cpp 2007-04-05-PackedBitFields-1.cpp 2007-04-05-PackedBitFieldsOverlap-2.cpp 2007-04-05-PackedBitFieldsOverlap.cpp 2007-04-05-PackedBitFieldsSmall.cpp 2007-04-05-StructPackedFieldUnpacked.cpp 2007-04-10-PackedUnion.cpp 2007-04-14-FNoBuiltin.cpp 2007-05-03-VectorInit.cpp 2007-07-29-RestrictPtrArg.cpp 2007-07-29-RestrictRefArg.cpp 2007-09-10-RecursiveTypeResolution.cpp from llvm/test/FrontendC++ and FileCheckize where appropriate. llvm-svn: 138134
Diffstat (limited to 'clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp')
-rw-r--r--clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp b/clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp
new file mode 100644
index 00000000000..f3aa51e725b
--- /dev/null
+++ b/clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp
@@ -0,0 +1,75 @@
+// RUN: %clang_cc1 -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 ()}
+};
OpenPOWER on IntegriCloud