From e5568d62af39962eeec2c89020719b6fafbdc838 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Sat, 16 Aug 2008 12:32:22 +0200 Subject: [PATCH] Prevent cast error for cast(void) around expression statements. Fixes: run/e/ExpressionStatement_10_A --- gen/statements.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gen/statements.cpp b/gen/statements.cpp index c84424ef..1076e199 100644 --- a/gen/statements.cpp +++ b/gen/statements.cpp @@ -122,7 +122,14 @@ void ExpStatement::toIR(IRState* p) 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);