From fe203057c26031b556bbdd2f965a25e42fb18baa Mon Sep 17 00:00:00 2001
From: bellard <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);