diff options
author | Jim Wilson <wilson@tuliptree.org> | 1998-11-03 20:28:12 +0000 |
---|---|---|
committer | Jim Wilson <wilson@tuliptree.org> | 1998-11-03 20:28:12 +0000 |
commit | 66393f0e7cf1a2caa35ddbc6cbfaa29a7439c1dd (patch) | |
tree | 708651041fb8563edf2da47dbe6f2c64057b9b09 | |
parent | 29e9c76053f34485b55d7acfaf3fe8dd413d05fe (diff) | |
download | gdb-66393f0e7cf1a2caa35ddbc6cbfaa29a7439c1dd.zip gdb-66393f0e7cf1a2caa35ddbc6cbfaa29a7439c1dd.tar.gz gdb-66393f0e7cf1a2caa35ddbc6cbfaa29a7439c1dd.tar.bz2 |
Fix mn10200 build failure on redhat 5.0 linux.
* c-exp.y (parse_number): Check TARGET_LONG_LONG_BIT when setting
high_bit to avoid undefined negative shift.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/c-exp.y | 12 |
2 files changed, 13 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 909f929..0746193 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +1998-11-03 Jim Wilson <wilson@cygnus.com> + + * c-exp.y (parse_number): Check TARGET_LONG_LONG_BIT when setting + high_bit to avoid undefined negative shift. + Mon Nov 2 15:26:33 1998 Geoffrey Noer <noer@cygnus.com> * configure.in: Check cygwin* instead of cygwin32*. diff --git a/gdb/c-exp.y b/gdb/c-exp.y index a6d21ae..38279f3 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -1085,10 +1085,14 @@ parse_number (p, len, parsed_float, putithere) } else { - high_bit = (((ULONGEST)1) - << (TARGET_LONG_LONG_BIT - 32 - 1) - << 16 - << 16); + /* Avoid negative shift. */ + if (TARGET_LONG_LONG_BIT <= 32) + high_bit = ((ULONGEST)1 << TARGET_LONG_LONG_BIT - 1); + else + high_bit = (((ULONGEST)1) + << (TARGET_LONG_LONG_BIT - 32 - 1) + << 16 + << 16); if (high_bit == 0) /* A long long does not fit in a LONGEST. */ high_bit = |