Fixed .funcptr property of delegates, no longer uses the infamous DMD rewrites to pointer arithmetic, instead a GEPExp has been introduced.

This commit is contained in:
Tomas Lindquist Olsen
2008-09-15 02:04:26 +02:00
parent 431bc19d2f
commit 4280a86bcf
8 changed files with 67 additions and 8 deletions

View File

@@ -1496,6 +1496,26 @@ struct LineInitExp : DefaultInitExp
/****************************************************************/
#if IN_LLVM
// this stuff is strictly LLVMDC
struct GEPExp : UnaExp
{
unsigned index;
Identifier* ident;
GEPExp(Loc loc, Expression* e, Identifier* id, unsigned idx);
void toCBuffer(OutBuffer *buf, HdrGenState *hgs);
Expression *toLvalue(Scope *sc, Expression *e);
elem *toElem(IRState *irs);
};
#endif
/****************************************************************/
/* Special values used by the interpreter
*/
#define EXP_CANT_INTERPRET ((Expression *)1)