diff options
Diffstat (limited to 'gdb/objc-exp.y')
-rw-r--r-- | gdb/objc-exp.y | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gdb/objc-exp.y b/gdb/objc-exp.y index 5f6095b..d12a6c2 100644 --- a/gdb/objc-exp.y +++ b/gdb/objc-exp.y @@ -1134,16 +1134,16 @@ parse_number (p, len, parsed_float, putithere) shift it right and see whether anything remains. Note that we can't shift sizeof (LONGEST) * HOST_CHAR_BIT bits or more in one operation, because many compilers will warn about such a shift - (which always produces a zero result). Sometimes TARGET_INT_BIT - or TARGET_LONG_BIT will be that big, sometimes not. To deal with + (which always produces a zero result). Sometimes gdbarch_int_bit + or gdbarch_long_int will be that big, sometimes not. To deal with the case where it is we just always shift the value more than once, with fewer bits each time. */ un = (unsigned LONGEST)n >> 2; if (long_p == 0 - && (un >> (TARGET_INT_BIT - 2)) == 0) + && (un >> (gdbarch_int_bit (current_gdbarch) - 2)) == 0) { - high_bit = ((unsigned LONGEST)1) << (TARGET_INT_BIT-1); + high_bit = ((unsigned LONGEST)1) << (gdbarch_int_bit (current_gdbarch) - 1); /* A large decimal (not hex or octal) constant (between INT_MAX and UINT_MAX) is a long or unsigned long, according to ANSI, @@ -1155,16 +1155,16 @@ parse_number (p, len, parsed_float, putithere) signed_type = builtin_type_int; } else if (long_p <= 1 - && (un >> (TARGET_LONG_BIT - 2)) == 0) + && (un >> (gdbarch_long_bit (current_gdbarch) - 2)) == 0) { - high_bit = ((unsigned LONGEST)1) << (TARGET_LONG_BIT-1); + high_bit = ((unsigned LONGEST)1) << (gdbarch_long_bit (current_gdbarch) - 1); unsigned_type = builtin_type_unsigned_long; signed_type = builtin_type_long; } else { high_bit = (((unsigned LONGEST)1) - << (TARGET_LONG_LONG_BIT - 32 - 1) + << (gdbarch_long_long_bit (current_gdbarch) - 32 - 1) << 16 << 16); if (high_bit == 0) |