From c6dca3fb76a16602a501076c1261dbf03858ad14 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Sun, 10 May 2009 14:32:23 +0200 Subject: [PATCH] Fixed CTFE evaluation on .dup . Fixes ticket #288 . --- dmd/interpret.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dmd/interpret.c b/dmd/interpret.c index 2a877964..af0a3655 100644 --- a/dmd/interpret.c +++ b/dmd/interpret.c @@ -1942,6 +1942,13 @@ Expression *CallExp::interpret(InterState *istate) if (fd->ident == Id::adDup && arguments && arguments->dim == 2) { e = (Expression *)arguments->data[1]; +#if IN_LLVM + // in LDC we repaint the array argument to void[], skip past that + // or CTFE will fail! + assert(e->op == TOKcast); + CastExp* ce = (CastExp*)e; + e = ce->e1; +#endif e = e->interpret(istate); if (e != EXP_CANT_INTERPRET) {