Mercurial > projects > ldc
diff dmd/expression.c @ 486:a34078905d01
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 10 Aug 2008 08:37:38 +0200 |
parents | e19e20103119 |
children | 6aee82889553 |
line wrap: on
line diff
--- a/dmd/expression.c Sat Aug 09 09:03:52 2008 +0200 +++ b/dmd/expression.c Sun Aug 10 08:37:38 2008 +0200 @@ -260,6 +260,10 @@ { //printf("rewriting e1 to %s's this\n", f->toChars()); n++; + + // LLVMDC seems dmd misses it sometimes here :/ + f->vthis->nestedref = 1; + e1 = new VarExp(loc, f->vthis); } } @@ -5983,6 +5987,13 @@ FuncDeclaration *f = dve->var->isFuncDeclaration(); VarDeclaration *v = dve->var->isVarDeclaration(); + // LLVMDC + if (f && f->isIntrinsic()) + { + error("cannot take the address of intrinsic function %s", e1->toChars()); + return this; + } + if (f && f->isNested()) { Expression *e;