Mercurial > projects > ldc
changeset 518:243485af6523
Prevent cast error for cast(void) around expression statements.
Fixes:
run/e/ExpressionStatement_10_A
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sat, 16 Aug 2008 12:32:22 +0200 |
parents | 9534dbc70a56 |
children | bc0835cd3440 |
files | gen/statements.cpp |
diffstat | 1 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/gen/statements.cpp Sat Aug 16 11:19:34 2008 +0200 +++ b/gen/statements.cpp Sat Aug 16 12:32:22 2008 +0200 @@ -122,7 +122,14 @@ if (exp) { if (global.params.llvmAnnotate) DtoAnnotation(exp->toChars()); - elem* e = exp->toElem(p); + elem* e; + // a cast(void) around the expression is allowed, but doesn't require any code + if(exp->op == TOKcast && exp->type == Type::tvoid) { + CastExp* cexp = (CastExp*)exp; + e = cexp->e1->toElem(p); + } + else + e = exp->toElem(p); delete e; } /*elem* e = exp->toElem(p);