[qfcc] Improve expression line tracking

Missed a few places in expr_process.
This commit is contained in:
Bill Currie 2024-11-21 09:44:09 +09:00
parent fb497cd0b2
commit 08bdc0794a

View file

@ -77,6 +77,7 @@ proc_uexpr (const expr_t *expr)
static const expr_t * static const expr_t *
proc_field (const expr_t *expr) proc_field (const expr_t *expr)
{ {
scoped_src_loc (expr);
auto object = expr_process (expr->field.object); auto object = expr_process (expr->field.object);
auto member = expr->field.member; auto member = expr->field.member;
if (is_error (object)) { if (is_error (object)) {
@ -167,6 +168,7 @@ proc_array (const expr_t *expr)
if (is_error (index)) { if (is_error (index)) {
return index; return index;
} }
scoped_src_loc (expr);
auto e = new_array_expr (base, index); auto e = new_array_expr (base, index);
e->array.type = dereference_type (get_type (base)); e->array.type = dereference_type (get_type (base));
return e; return e;
@ -330,6 +332,7 @@ proc_return (const expr_t *expr)
static const expr_t * static const expr_t *
proc_cond (const expr_t *expr) proc_cond (const expr_t *expr)
{ {
scoped_src_loc (expr);
auto test = expr_process (expr->cond.test); auto test = expr_process (expr->cond.test);
auto true_expr = expr_process (expr->cond.true_expr); auto true_expr = expr_process (expr->cond.true_expr);
auto false_expr = expr_process (expr->cond.false_expr); auto false_expr = expr_process (expr->cond.false_expr);
@ -339,6 +342,7 @@ proc_cond (const expr_t *expr)
static const expr_t * static const expr_t *
proc_decl (const expr_t *expr) proc_decl (const expr_t *expr)
{ {
scoped_src_loc (expr);
expr_t *block = nullptr; expr_t *block = nullptr;
if (expr->decl.spec.storage == sc_local) { if (expr->decl.spec.storage == sc_local) {
scoped_src_loc (expr); scoped_src_loc (expr);