From 4d05a6319d07b5a686083043b69643a5550c2eeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= Date: Mon, 15 Mar 2010 22:37:41 +0100 Subject: [PATCH] Catch array[index] with unknown sizeof(*array) We could support this for index == 0, but GCC doesn't bother, so why should we? --- tccgen.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tccgen.c b/tccgen.c index 805410b8..f1fe1ee3 100644 --- a/tccgen.c +++ b/tccgen.c @@ -1548,11 +1548,14 @@ ST_FUNC void gen_op(int op) } type1 = vtop[-1].type; type1.t &= ~VT_ARRAY; + u = pointed_size(&vtop[-1].type); + if (u < 0) + error("unknown array element size"); #ifdef TCC_TARGET_X86_64 - vpushll(pointed_size(&vtop[-1].type)); + vpushll(u); #else /* XXX: cast to int ? (long long case) */ - vpushi(pointed_size(&vtop[-1].type)); + vpushi(u); #endif gen_op('*'); #ifdef CONFIG_TCC_BCHECK