diff options
| author | Ed Schouten <ed@FreeBSD.org> | 2009-06-02 17:52:33 +0000 | 
|---|---|---|
| committer | Ed Schouten <ed@FreeBSD.org> | 2009-06-02 17:52:33 +0000 | 
| commit | 009b1c42aa6266385f2c37e227516b24077e6dd7 (patch) | |
| tree | 64ba909838c23261cace781ece27d106134ea451 /test/FrontendC++/2007-01-06-PtrMethodInit.cpp | |
Notes
Diffstat (limited to 'test/FrontendC++/2007-01-06-PtrMethodInit.cpp')
| -rw-r--r-- | test/FrontendC++/2007-01-06-PtrMethodInit.cpp | 75 | 
1 files changed, 75 insertions, 0 deletions
| diff --git a/test/FrontendC++/2007-01-06-PtrMethodInit.cpp b/test/FrontendC++/2007-01-06-PtrMethodInit.cpp new file mode 100644 index 000000000000..f87c8d888fce --- /dev/null +++ b/test/FrontendC++/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 ()} +}; | 
