mescc: Tinycc support: foo.bar[baz], foo->bar[baz] for typedef'd struct bar.
* module/language/c99/compiler.mes (expr->accu): foo.bar[baz], foo->bar[baz] for typedef'd struct bar. * scaffold/tests/7c-dynarray.c: Test it.
This commit is contained in:
parent
3f4cc96a7b
commit
31c69b8b00
|
@ -570,7 +570,7 @@
|
|||
(let* ((info ((expr->accu* info) o))
|
||||
(type0 (ident->type info struct0))
|
||||
(type1 (field-type info type0 field0))
|
||||
(struct? (and (pair? type1) (equal? (car type1) "tag")))
|
||||
(struct? (memq (type:type (ast-type->type info type0)) '(struct union)))
|
||||
(ptr (field-pointer info type0 field0))
|
||||
(size (ast-type->size info type1)))
|
||||
(if (= ptr -3) info
|
||||
|
@ -583,7 +583,7 @@
|
|||
(let* ((info ((expr->accu* info) o))
|
||||
(type0 (ident->type info struct0))
|
||||
(type1 (field-type info type0 field0))
|
||||
(struct? (and (pair? type1) (equal? (car type1) "tag")))
|
||||
(struct? (memq (type:type (ast-type->type info type0)) '(struct union)))
|
||||
(ptr (field-pointer info type0 field0))
|
||||
(size (ast-type->size info type1)))
|
||||
(append-text info (wrap-as (append (if (and (= ptr -2) struct?) (i386:mem->accu) '())
|
||||
|
|
|
@ -46,14 +46,16 @@ add (void *ptab, int *nb_ptr, void *data)
|
|||
*nb_ptr = nb;
|
||||
}
|
||||
|
||||
struct file {
|
||||
typedef struct file {
|
||||
char name[4];
|
||||
};
|
||||
} file_struct;
|
||||
|
||||
struct state {
|
||||
int bla;
|
||||
char **paths;
|
||||
int path_count;
|
||||
struct file **files;
|
||||
//file_struct **files;
|
||||
int file_count;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue