mirror of
https://github.com/frida/tinycc
synced 2024-12-28 23:59:41 +03:00
Fix last commits: remove CRLF, chmod 644 tccgen.c
This commit is contained in:
parent
d351384fdc
commit
5fcd1fef1c
48
tccgen.c
Executable file → Normal file
48
tccgen.c
Executable file → Normal file
@ -4824,7 +4824,7 @@ static void decl_initializer(CType *type, Section *sec, unsigned long c,
|
||||
/* patch type size if needed */
|
||||
if (n < 0)
|
||||
s->c = array_length;
|
||||
} else if ((type->t & VT_BTYPE) == VT_STRUCT &&
|
||||
} else if ((type->t & VT_BTYPE) == VT_STRUCT &&
|
||||
(sec || !first || tok == '{')) {
|
||||
int par_count;
|
||||
|
||||
@ -4837,7 +4837,7 @@ static void decl_initializer(CType *type, Section *sec, unsigned long c,
|
||||
to do it correctly (ideally, the expression parser should
|
||||
be used in all cases) */
|
||||
par_count = 0;
|
||||
/* Coo: I think we must not deal '(' */
|
||||
/* Coo: I think we must not deal '(' */
|
||||
if (tok == '(') {
|
||||
AttributeDef ad1;
|
||||
CType type1;
|
||||
@ -4861,15 +4861,15 @@ static void decl_initializer(CType *type, Section *sec, unsigned long c,
|
||||
no_oblock = 0;
|
||||
}
|
||||
s = type->ref;
|
||||
f = s->next;
|
||||
/* Coo: skip empty struct */
|
||||
while (f->next && (f->type.t&VT_BTYPE)==VT_STRUCT && !f->type.ref->c)
|
||||
f=f->next;
|
||||
f = s->next;
|
||||
/* Coo: skip empty struct */
|
||||
while (f->next && (f->type.t&VT_BTYPE)==VT_STRUCT && !f->type.ref->c)
|
||||
f=f->next;
|
||||
array_length = 0;
|
||||
index = 0;
|
||||
n = s->c;
|
||||
while (tok != '}') {
|
||||
int bit_pos;
|
||||
int bit_pos;
|
||||
decl_designator(type, sec, c, NULL, &f, size_only);
|
||||
index = f->c;
|
||||
if (!size_only && array_length < index) {
|
||||
@ -4880,25 +4880,25 @@ static void decl_initializer(CType *type, Section *sec, unsigned long c,
|
||||
if (index > array_length)
|
||||
array_length = index;
|
||||
|
||||
/* Coo: skip fields from same union */
|
||||
if (!(f->type.t&VT_BITFIELD))
|
||||
bit_pos=index*8;
|
||||
else
|
||||
bit_pos=f->c*8+((f->type.t>>VT_STRUCT_SHIFT)&0x3f)+((f->type.t>>(VT_STRUCT_SHIFT+6))&0x3f);
|
||||
do
|
||||
f=f->next;
|
||||
while (f && (((f->type.t&VT_BTYPE)==VT_STRUCT && !f->type.ref->c) ||
|
||||
f->c*8+((f->type.t&VT_BITFIELD)?((f->type.t>>VT_STRUCT_SHIFT)&0x3f):0)<bit_pos));
|
||||
|
||||
if (no_oblock && f == NULL)
|
||||
break;
|
||||
/* Coo: skip fields from same union */
|
||||
if (!(f->type.t&VT_BITFIELD))
|
||||
bit_pos=index*8;
|
||||
else
|
||||
bit_pos=f->c*8+((f->type.t>>VT_STRUCT_SHIFT)&0x3f)+((f->type.t>>(VT_STRUCT_SHIFT+6))&0x3f);
|
||||
do
|
||||
f=f->next;
|
||||
while (f && (((f->type.t&VT_BTYPE)==VT_STRUCT && !f->type.ref->c) ||
|
||||
f->c*8+((f->type.t&VT_BITFIELD)?((f->type.t>>VT_STRUCT_SHIFT)&0x3f):0)<bit_pos));
|
||||
|
||||
if (no_oblock && f == NULL)
|
||||
break;
|
||||
if (tok == '}')
|
||||
break;
|
||||
/* Coo: skip ')' in front of ',' for initializer */
|
||||
while (tok==')' && par_count) {
|
||||
next();
|
||||
par_count--;
|
||||
}
|
||||
/* Coo: skip ')' in front of ',' for initializer */
|
||||
while (tok==')' && par_count) {
|
||||
next();
|
||||
par_count--;
|
||||
}
|
||||
skip(',');
|
||||
}
|
||||
/* put zeros at the end */
|
||||
|
Loading…
Reference in New Issue
Block a user