some arith variables changed into int
This commit is contained in:
parent
c6134a1f59
commit
01b937d82e
1 changed files with 9 additions and 5 deletions
|
@ -325,10 +325,14 @@ add_field(szp, fd, fdtpp, idf, stp)
|
|||
an explicit alignment is given, a new address is needed.
|
||||
Note that the fields are packed into machine words.
|
||||
*/
|
||||
long bits_in_type = word_size * 8;
|
||||
#ifdef word_size
|
||||
#define bits_in_type ((int)(8*word_size))
|
||||
#else
|
||||
int bits_in_type = (int)word_size * 8;
|
||||
#endif
|
||||
static int field_offset = (arith)0;
|
||||
static struct type *current_struct = 0;
|
||||
static long bits_declared; /* nr of bits used in *field_offset */
|
||||
static int bits_declared; /* nr of bits used in *field_offset */
|
||||
|
||||
if (current_struct != stp) {
|
||||
/* This struct differs from the last one
|
||||
|
@ -354,7 +358,7 @@ add_field(szp, fd, fdtpp, idf, stp)
|
|||
strict("non-portable field type");
|
||||
case INT:
|
||||
/* right type; size OK? */
|
||||
if ((*fdtpp)->tp_size > word_size) {
|
||||
if ((int) (*fdtpp)->tp_size > (int) word_size) {
|
||||
error("bit field type %s does not fit in a word",
|
||||
symbol2str((*fdtpp)->tp_fund));
|
||||
*fdtpp = error_type;
|
||||
|
@ -377,7 +381,7 @@ add_field(szp, fd, fdtpp, idf, stp)
|
|||
field_offset = align(*szp, int_align);
|
||||
*szp = field_offset + int_size;
|
||||
stp->tp_align = lcm(stp->tp_align, int_align);
|
||||
bits_declared = (arith)0;
|
||||
bits_declared = 0;
|
||||
field_busy = 1;
|
||||
}
|
||||
|
||||
|
@ -419,7 +423,7 @@ add_field(szp, fd, fdtpp, idf, stp)
|
|||
else /* adjust the field at the left */
|
||||
fd->fd_shift = bits_in_type - bits_declared;
|
||||
|
||||
if (stp->tp_fund == UNION) bits_declared = (arith)0;
|
||||
if (stp->tp_fund == UNION) bits_declared = 0;
|
||||
|
||||
return field_offset;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue