aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm-gen.c2
-rw-r--r--c67-gen.c2
-rw-r--r--i386-gen.c2
-rw-r--r--il-gen.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/arm-gen.c b/arm-gen.c
index 189f362..e3a5629 100644
--- a/arm-gen.c
+++ b/arm-gen.c
@@ -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;
diff --git a/c67-gen.c b/c67-gen.c
index 40554bd..04f8a12 100644
--- a/c67-gen.c
+++ b/c67-gen.c
@@ -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;
diff --git a/i386-gen.c b/i386-gen.c
index a3d2743..a2564f3 100644
--- a/i386-gen.c
+++ b/i386-gen.c
@@ -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;
diff --git a/il-gen.c b/il-gen.c
index fef6194..29f0526 100644
--- a/il-gen.c
+++ b/il-gen.c
@@ -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++;
}
}