Set VT_LVAL_xxx flags for function arguments in gfunc_prolog (Daniel Glöckner)

tcc-xref
Daniel Glöckner 2008-08-20 01:44:12 +02:00 committed by grischka
parent 8f7e3f325d
commit 2c657f6608
4 changed files with 4 additions and 4 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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++;
}
}