This commit is contained in:
Christian Kamm
2008-12-20 09:15:46 +01:00
2 changed files with 8 additions and 1 deletions

View File

@@ -1080,6 +1080,9 @@ struct SliceExp : UnaExp
int inlineCost(InlineCostState *ics);
Expression *doInline(InlineDoState *ids);
Expression *inlineScan(InlineScanState *iss);
// LDC
virtual llvm::Constant *toConstElem(IRState *irs);
};
struct ArrayLengthExp : UnaExp
@@ -1154,6 +1157,9 @@ struct IndexExp : BinExp
void scanForNestedRef(Scope *sc);
elem *toElem(IRState *irs);
// LDC
virtual llvm::Constant *toConstElem(IRState *irs);
};
/* For both i++ and i--
@@ -1565,6 +1571,7 @@ struct GEPExp : UnaExp
Expression *toLvalue(Scope *sc, Expression *e);
elem *toElem(IRState *irs);
llvm::Constant *toConstElem(IRState *irs);
};
#endif

View File

@@ -2712,7 +2712,7 @@ STUB(TupleExp);
STUB(SymbolExp);
#endif
#define CONSTSTUB(x) LLConstant* x::toConstElem(IRState * p) {error("const Exp type "#x" not implemented: '%s' type: '%s'", toChars(), type->toChars()); fatal(); return NULL; }
#define CONSTSTUB(x) LLConstant* x::toConstElem(IRState * p) {error("non-const expression '%s' or const Exp type "#x" not implemented", toChars()); fatal(); return NULL; }
CONSTSTUB(Expression);
CONSTSTUB(GEPExp);
CONSTSTUB(SliceExp);