comparison gen/statements.cpp @ 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
comparison
equal deleted inserted replaced
517:9534dbc70a56 518:243485af6523
120 DtoDwarfStopPoint(loc.linnum); 120 DtoDwarfStopPoint(loc.linnum);
121 121
122 if (exp) { 122 if (exp) {
123 if (global.params.llvmAnnotate) 123 if (global.params.llvmAnnotate)
124 DtoAnnotation(exp->toChars()); 124 DtoAnnotation(exp->toChars());
125 elem* e = exp->toElem(p); 125 elem* e;
126 // a cast(void) around the expression is allowed, but doesn't require any code
127 if(exp->op == TOKcast && exp->type == Type::tvoid) {
128 CastExp* cexp = (CastExp*)exp;
129 e = cexp->e1->toElem(p);
130 }
131 else
132 e = exp->toElem(p);
126 delete e; 133 delete e;
127 } 134 }
128 /*elem* e = exp->toElem(p); 135 /*elem* e = exp->toElem(p);
129 p->buf.printf("%s", e->toChars()); 136 p->buf.printf("%s", e->toChars());
130 delete e; 137 delete e;