aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/c_eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c_eval.c')
-rw-r--r--src/c_eval.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/c_eval.c b/src/c_eval.c
index dce1457..20a5a12 100644
--- a/src/c_eval.c
+++ b/src/c_eval.c
@@ -403,11 +403,15 @@ eval(Expr *ex, enum evalmode mode)
case EGETF: goto Unop;
case ESEQ:
if (!eval(&ex->sub[0], mode)) return 0;
+ Span span = ex->span;
*ex = ex->sub[1];
+ ex->span = span;
return eval(ex, mode);
case ECOND:
if (!eval(&ex->sub[0], mode)) return 0;
+ span = ex->span;
*ex = ex->sub[2-truthy(&ex->sub[0])];
+ ex->span = span;
return eval(ex, mode);
case EINIT:
for (InitElem *v = ex->init->vals; v; v = v->next) {