diff options
| author | grischka <grischka> | 2013-04-30 00:33:34 +0200 |
|---|---|---|
| committer | grischka <grischka> | 2013-04-30 00:33:34 +0200 |
| commit | be1b6ba7b7175eeb0bd2f8713dee8f7a0d0ba4e9 (patch) | |
| tree | 9f5c65787736017be722628bfc5f442a900c58cc /tccgen.c | |
| parent | 41b3c7a50727f715111d09af982e2e9a0deeb688 (diff) | |
| download | tinycc-be1b6ba7b7175eeb0bd2f8713dee8f7a0d0ba4e9.tar.gz tinycc-be1b6ba7b7175eeb0bd2f8713dee8f7a0d0ba4e9.tar.bz2 | |
avoid "decl after statement" please
for compiling tcc with msc
Diffstat (limited to 'tccgen.c')
| -rw-r--r-- | tccgen.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -3995,9 +3995,10 @@ ST_FUNC void unary(void) vtop->r2 = ret.r2; /* handle packed struct return */ if (((s->type.t & VT_BTYPE) == VT_STRUCT) && !sret) { + int addr; size = type_size(&s->type, &align); loc = (loc - size) & -align; - int addr = loc; + addr = loc; vset(&ret.type, VT_LOCAL | VT_LVAL, addr); vswap(); vstore(); @@ -4493,7 +4494,8 @@ static void block(int *bsym, int *csym, int *case_sym, int *def_sym, gsym_addr(b, d); } else if (tok == '{') { Sym *llabel; - + int block_vla_sp_loc, *saved_vla_sp_loc, saved_vla_flags; + next(); /* record local declaration stack position */ s = local_stack; @@ -4503,12 +4505,11 @@ static void block(int *bsym, int *csym, int *case_sym, int *def_sym, llabel = local_label_stack; /* save VLA state */ - int block_vla_sp_loc = *vla_sp_loc; - int *saved_vla_sp_loc = vla_sp_loc; + block_vla_sp_loc = *(saved_vla_sp_loc = vla_sp_loc); if (saved_vla_sp_loc != &vla_sp_root_loc) vla_sp_loc = &block_vla_sp_loc; - int saved_vla_flags = vla_flags; + saved_vla_flags = vla_flags; vla_flags |= VLA_NEED_NEW_FRAME; /* handle local labels declarations */ |
