diff options
| author | Daniel Glöckner <daniel-gl@gmx.net> | 2008-08-20 01:44:12 +0200 |
|---|---|---|
| committer | grischka <grischka> | 2008-09-12 02:36:32 +0200 |
| commit | 2c657f6608fd192e785d5b2eed2594007777842b (patch) | |
| tree | 69cffc8d038f9fa0d082193341bf6dbc6da461a9 | |
| parent | 8f7e3f325da71913891770305084a8e33af0c339 (diff) | |
| download | tinycc-2c657f6608fd192e785d5b2eed2594007777842b.tar.gz tinycc-2c657f6608fd192e785d5b2eed2594007777842b.tar.bz2 | |
Set VT_LVAL_xxx flags for function arguments in gfunc_prolog (Daniel Glöckner)
| -rw-r--r-- | arm-gen.c | 2 | ||||
| -rw-r--r-- | c67-gen.c | 2 | ||||
| -rw-r--r-- | i386-gen.c | 2 | ||||
| -rw-r--r-- | il-gen.c | 2 |
4 files changed, 4 insertions, 4 deletions
@@ -956,7 +956,7 @@ void gfunc_prolog(CType *func_type) #ifdef TCC_ARM_EABI addr = (addr + align - 1) & -align; #endif - sym_push(sym->v & ~SYM_FIELD, type, VT_LOCAL | VT_LVAL, addr); + sym_push(sym->v & ~SYM_FIELD, type, VT_LOCAL | lvalue_type(type->t), addr); addr += size; } last_itod_magic=0; @@ -1964,7 +1964,7 @@ void gfunc_prolog(CType * func_type) /* define parameters */ while ((sym = sym->next) != NULL) { type = &sym->type; - sym_push(sym->v & ~SYM_FIELD, type, VT_LOCAL | VT_LVAL, addr); + sym_push(sym->v & ~SYM_FIELD, type, VT_LOCAL | lvalue_type(type->t), addr); size = type_size(type, &align); size = (size + 3) & ~3; @@ -471,7 +471,7 @@ void gfunc_prolog(CType *func_type) addr += size; } sym_push(sym->v & ~SYM_FIELD, type, - VT_LOCAL | VT_LVAL, param_addr); + VT_LOCAL | lvalue_type(type->t), param_addr); param_index++; } func_ret_sub = 0; @@ -449,7 +449,7 @@ void gfunc_prolog(int t) while ((sym = sym->next) != NULL) { u = sym->t; sym_push(sym->v & ~SYM_FIELD, u, - VT_LOCAL | VT_LVAL, addr); + VT_LOCAL | lvalue_type(sym->type.t), addr); addr++; } } |
