* c-exp.y (parse_number): Make it so that integer constants are
builtin_type_long_long if builtin_type_long isn't big enough or if an "LL" suffix is used. Properly handle "UL" or "LU" suffixes.
This commit is contained in:
parent
d307fed126
commit
bb1f42d4f0
1 changed files with 7 additions and 1 deletions
|
@ -1046,7 +1046,13 @@ parse_number (p, len, parsed_float, putithere)
|
|||
}
|
||||
else
|
||||
{
|
||||
high_bit = ((unsigned LONGEST)1) << (TARGET_LONG_LONG_BIT - 1);
|
||||
high_bit = (((unsigned LONGEST)1)
|
||||
<< (TARGET_LONG_LONG_BIT - 32 - 1)
|
||||
<< 16
|
||||
<< 16);
|
||||
if (high_bit == 0)
|
||||
/* A long long does not fit in a LONGEST. */
|
||||
high_bit = (unsigned LONGEST)1 << sizeof (LONGEST) * HOST_CHAR_BIT - 1;
|
||||
unsigned_type = builtin_type_unsigned_long_long;
|
||||
signed_type = builtin_type_long_long;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue