diff options
author | Jan Hubicka <jh@suse.cz> | 2001-12-03 16:22:47 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-12-03 15:22:47 +0000 |
commit | 9cd56be1b9ade7f19bf2a295b6d3302db0bbb84d (patch) | |
tree | f50e6822ef00b12e31e63af407c46260d2f638b7 /gcc/stor-layout.c | |
parent | 63658a9aaa0e8e7a16548f505c4c6ebd21a56c1d (diff) | |
download | gcc-9cd56be1b9ade7f19bf2a295b6d3302db0bbb84d.zip gcc-9cd56be1b9ade7f19bf2a295b6d3302db0bbb84d.tar.gz gcc-9cd56be1b9ade7f19bf2a295b6d3302db0bbb84d.tar.bz2 |
gcse.c (delete_null_pointer_checks_1): Do not use delelete_list; call purge_dead_edges after removing.
* gcse.c (delete_null_pointer_checks_1): Do not use delelete_list;
call purge_dead_edges after removing.
(delete_null_pointer_checks): Do not handle delete_list.
* cfgbuild.c (inside_basic_block_p, control_flow_insn_p): Break out from ...
(count_basic_blocks): ... here.
(find_basic_blocks, find_bb_boundaries): Cleanup.
* stor-layout.c (fixup_signed_type, fixup_unsigned_type): Avoid
overflow for types greater then 2 * HOST_WIDE_INT.
* reload.c (find_reloads): Update the duplicates after swapingg.
From-SVN: r47551
Diffstat (limited to 'gcc/stor-layout.c')
-rw-r--r-- | gcc/stor-layout.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index e4d8744..a3d122f 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -1755,6 +1755,12 @@ fixup_signed_type (type) { int precision = TYPE_PRECISION (type); + /* We can not represent properly constants greater then + 2 * HOST_BITS_PER_WIDE_INT, still we need the types + as they are used by i386 vector extensions and friends. */ + if (precision > HOST_BITS_PER_WIDE_INT * 2) + precision = HOST_BITS_PER_WIDE_INT * 2; + TYPE_MIN_VALUE (type) = build_int_2 ((precision - HOST_BITS_PER_WIDE_INT > 0 ? 0 : (HOST_WIDE_INT) (-1) << (precision - 1)), @@ -1787,6 +1793,12 @@ fixup_unsigned_type (type) { int precision = TYPE_PRECISION (type); + /* We can not represent properly constants greater then + 2 * HOST_BITS_PER_WIDE_INT, still we need the types + as they are used by i386 vector extensions and friends. */ + if (precision > HOST_BITS_PER_WIDE_INT * 2) + precision = HOST_BITS_PER_WIDE_INT * 2; + TYPE_MIN_VALUE (type) = build_int_2 (0, 0); TYPE_MAX_VALUE (type) = build_int_2 (precision - HOST_BITS_PER_WIDE_INT >= 0 |