From 719cf055a5ccad72e24fe79fc411764bc101d062 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Tue, 29 Aug 2023 21:11:29 +0900 Subject: [PATCH] [qfcc] Check validity of field expressions Even though I plan on making multi-vector types easier to use with field accesses, getting segfaults doesn't help with debugging. --- tools/qfcc/source/expr.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/qfcc/source/expr.c b/tools/qfcc/source/expr.c index e895e7efc..5d396b7be 100644 --- a/tools/qfcc/source/expr.c +++ b/tools/qfcc/source/expr.c @@ -1467,7 +1467,13 @@ prepend_expr (expr_t *block, expr_t *e) static symbol_t * get_struct_field (const type_t *t1, expr_t *e1, expr_t *e2) { - symtab_t *strct = t1->t.symtab; + symtab_t *strct = 0; + if (is_algebra (t1)) { + error (e1, "dereferencing pointer to incomplete type"); + return 0; + } else { + strct = t1->t.symtab; + } symbol_t *sym = e2->e.symbol;//FIXME need to check symbol_t *field;