mescc: Add 70-struct-post.c test with fix.
[mes.git] / module / mescc / compile.scm
index 4a5907ea82a694c941d32478eaf0a0957afa43c7..11e3d94c979609d4f68cdbc82de7de17d9757b6c 100644 (file)
                 (type (ident->type info name))
                 (rank (ident->rank info name))
                 (reg-size (->size "*" info))
-                (size (if (> rank 1) reg-size 1)))
+                (size (cond ((= rank 1) (ast-type->size info `(p-expr (ident ,name))))
+                            ((> rank 1) reg-size)
+                            (else 1))))
            (append-text info ((ident-add info) name size))))
 
         ((assn-expr (de-ref (post-dec (p-expr (ident ,name)))) (op ,op) ,b)
                 (type (ident->type info name))
                 (rank (ident->rank info name))
                 (reg-size (->size "*" info))
-                (size (if (> rank 1) reg-size 1)))
+                (size (cond ((= rank 1) (ast-type->size info `(p-expr (ident ,name))))
+                            ((> rank 1) reg-size)
+                            (else 1))))
            (append-text info ((ident-add info) name (- size)))))
 
         ((assn-expr ,a (op ,op) ,b)