From: Jim Kingdon Date: Sat, 15 Jan 1994 19:51:56 +0000 (+0000) Subject: * c-exp.y (parse_number): Make it so that integer constants are X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bb1f42d4f09de23f33128e76b24d5259b46602dc;p=binutils-gdb.git * 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. --- diff --git a/gdb/c-exp.y b/gdb/c-exp.y index 6a96eb11ee4..08f7548d566 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -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; }