mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-18 14:30:42 +08:00
tree-switch-conversion.c (gen_inbound_check): Make sure the type in which we generate arithmetics is not a subrange.
2008-07-14 Martin Jambor <mjambor@suse.cz> * tree-switch-conversion.c (gen_inbound_check): Make sure the type in which we generate arithmetics is not a subrange. From-SVN: r137783
This commit is contained in:
parent
9bfb0f015e
commit
145544ab09
@ -1,3 +1,8 @@
|
||||
2008-07-14 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
* tree-switch-conversion.c (gen_inbound_check): Make sure the type
|
||||
in which we generate arithmetics is not a subrange.
|
||||
|
||||
2008-07-14 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
* Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
|
||||
|
@ -622,7 +622,7 @@ gen_inbound_check (tree swtch)
|
||||
tree label_decl3 = create_artificial_label ();
|
||||
tree label1, label2, label3;
|
||||
|
||||
tree utype = unsigned_type_for (TREE_TYPE (info.index_expr));
|
||||
tree utype;
|
||||
tree tmp_u;
|
||||
tree cast, cast_assign;
|
||||
tree ulb, minus, minus_assign;
|
||||
@ -638,6 +638,12 @@ gen_inbound_check (tree swtch)
|
||||
gcc_assert (info.default_values);
|
||||
bb0 = bb_for_stmt (swtch);
|
||||
|
||||
/* Make sure we do not generate arithmetics in a subrange. */
|
||||
if (TREE_TYPE (TREE_TYPE (info.index_expr)))
|
||||
utype = unsigned_type_for (TREE_TYPE (TREE_TYPE (info.index_expr)));
|
||||
else
|
||||
utype = unsigned_type_for (TREE_TYPE (info.index_expr));
|
||||
|
||||
/* (end of) block 0 */
|
||||
bsi = bsi_for_stmt (info.arr_ref_first);
|
||||
tmp_u = make_rename_temp (utype, "csui");
|
||||
|
Loading…
x
Reference in New Issue
Block a user