diff --git a/tools/qfcc/source/emit.c b/tools/qfcc/source/emit.c index 003ea1407..d7bee43f0 100644 --- a/tools/qfcc/source/emit.c +++ b/tools/qfcc/source/emit.c @@ -877,7 +877,10 @@ emit_expr (expr_t *e) def = 0; if (e->e.expr.e1) def = emit_sub_expr (e->e.expr.e1, 0); - if (!def && !options.traditional && op_return_v) + if ((!def || (def->alias + && !strcmp (def->alias->name, ".return")) + || (!def->alias && !strcmp (def->name, ".return"))) + && !options.traditional && op_return_v) emit_statement (e, op_return_v, 0, 0, 0); else emit_statement (e, op_return, def, 0, 0);