Prevent cast error for cast(void) around expression statements.

Fixes:
run/e/ExpressionStatement_10_A
This commit is contained in:
Christian Kamm
2008-08-16 12:32:22 +02:00
parent ceb292ed85
commit e5568d62af

View File

@@ -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);