From fe203057c26031b556bbdd2f965a25e42fb18baa Mon Sep 17 00:00:00 2001 From: bellard Date: Fri, 17 Oct 2003 20:59:15 +0000 Subject: [PATCH] fixed assignment of const struct in struct --- tcc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tcc.c b/tcc.c index 1eee2ce9..30a35555 100644 --- a/tcc.c +++ b/tcc.c @@ -5856,7 +5856,11 @@ static void gen_assign_cast(CType *dt) /* XXX: more tests */ break; case VT_STRUCT: - if (!is_compatible_types(dt, st)) { + tmp_type1 = *dt; + tmp_type2 = *st; + tmp_type1.t &= ~(VT_CONSTANT | VT_VOLATILE); + tmp_type2.t &= ~(VT_CONSTANT | VT_VOLATILE); + if (!is_compatible_types(&tmp_type1, &tmp_type2)) { error: type_to_str(buf1, sizeof(buf1), st, NULL); type_to_str(buf2, sizeof(buf2), dt, NULL);