# HG changeset patch # User Christian Kamm # Date 1218882742 -7200 # Node ID 243485af65232e641ec3c8d952e6fd2d8b4323a5 # Parent 9534dbc70a56719a7bc3772a4c10901325b90109 Prevent cast error for cast(void) around expression statements. Fixes: run/e/ExpressionStatement_10_A diff -r 9534dbc70a56 -r 243485af6523 gen/statements.cpp --- 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);