diff --git a/tcc.h b/tcc.h index 2db18bca..6d378607 100644 --- a/tcc.h +++ b/tcc.h @@ -1094,7 +1094,6 @@ ST_FUNC void gexpr(void); ST_FUNC int expr_const(void); ST_FUNC void gen_inline_functions(void); ST_FUNC void decl(int l); -ST_FUNC void for_loop_init(); #if defined CONFIG_TCC_BCHECK || defined TCC_TARGET_C67 ST_FUNC Sym *get_sym_ref(CType *type, Section *sec, unsigned long offset, unsigned long size); #endif diff --git a/tccgen.c b/tccgen.c index 78a2bad3..f28caedb 100644 --- a/tccgen.c +++ b/tccgen.c @@ -4379,7 +4379,8 @@ static void block(int *bsym, int *csym, int *case_sym, int *def_sym, next(); skip('('); if (tok != ';') { - for_loop_init(); + gexpr(); + vpop(); } skip(';'); d = ind; @@ -5405,7 +5406,7 @@ ST_FUNC void gen_inline_functions(void) } /* 'l' is VT_LOCAL or VT_CONST to define default storage type */ -static void decl0(int l, int is_for_loop_init) +ST_FUNC void decl(int l) { int v, has_init, r; CType type, btype; @@ -5414,11 +5415,6 @@ static void decl0(int l, int is_for_loop_init) while (1) { if (!parse_btype(&btype, &ad)) { - if (is_for_loop_init) { - gexpr(); - vpop(); - return; - } /* skip redundant ';' */ /* XXX: find more elegant solution */ if (tok == ';') { @@ -5633,8 +5629,6 @@ static void decl0(int l, int is_for_loop_init) } } if (tok != ',') { - if (is_for_loop_init) - return; skip(';'); break; } @@ -5643,13 +5637,3 @@ static void decl0(int l, int is_for_loop_init) } } } - -ST_FUNC void for_loop_init(void) -{ - decl0(VT_LOCAL, 1); -} - -ST_FUNC void decl(int l) -{ - decl0(l, 0); -}