EGCS fix for VAX. It is illegal to shift by more bits than is can be
contained in the type. This was cc to die when initialize the tetra long values on vax because it was trying to shift by -64. This in turn was causing a reserved operand fault resulting in a SIGILL.
This commit is contained in:
parent
55436d0a18
commit
048bef97f2
8
gnu/dist/gcc/stor-layout.c
vendored
8
gnu/dist/gcc/stor-layout.c
vendored
@ -1249,9 +1249,11 @@ fixup_unsigned_type (type)
|
||||
= build_int_2 (precision - HOST_BITS_PER_WIDE_INT >= 0
|
||||
? -1 : ((HOST_WIDE_INT) 1 << precision) - 1,
|
||||
precision - HOST_BITS_PER_WIDE_INT > 0
|
||||
? ((unsigned HOST_WIDE_INT) ~0
|
||||
>> (HOST_BITS_PER_WIDE_INT
|
||||
- (precision - HOST_BITS_PER_WIDE_INT)))
|
||||
? (precision - HOST_BITS_PER_WIDE_INT > HOST_BITS_PER_WIDE_INT
|
||||
? (unsigned HOST_WIDE_INT) ~0
|
||||
: ((unsigned HOST_WIDE_INT) ~0
|
||||
>> (HOST_BITS_PER_WIDE_INT
|
||||
- (precision - HOST_BITS_PER_WIDE_INT))))
|
||||
: 0);
|
||||
TREE_TYPE (TYPE_MIN_VALUE (type)) = type;
|
||||
TREE_TYPE (TYPE_MAX_VALUE (type)) = type;
|
||||
|
Loading…
x
Reference in New Issue
Block a user