aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-chrec.c
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@google.com>2011-02-12 00:12:52 +0000
committerXinliang David Li <davidxl@google.com>2011-02-12 00:12:52 +0000
commit6f0bae39eb4b38083fc723ea01b0849a986a5e9b (patch)
treea9b6229128c042546c7a0a161ca69a3f4c7b9ecd /gcc/tree-chrec.c
parent97fe0b8df30b12c689d7b98fd43d6a8c4f8b031c (diff)
Fix PR47707
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@170062 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-chrec.c')
-rw-r--r--gcc/tree-chrec.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/tree-chrec.c b/gcc/tree-chrec.c
index c721d43e33e..1e49c1d5b21 100644
--- a/gcc/tree-chrec.c
+++ b/gcc/tree-chrec.c
@@ -1238,8 +1238,11 @@ convert_affine_scev (struct loop *loop, tree type,
performed by default when CT is signed. */
new_step = *step;
if (TYPE_PRECISION (step_type) > TYPE_PRECISION (ct) && TYPE_UNSIGNED (ct))
- new_step = chrec_convert_1 (signed_type_for (ct), new_step, at_stmt,
- use_overflow_semantics);
+ {
+ tree signed_ct = build_nonstandard_integer_type (TYPE_PRECISION (ct), 0);
+ new_step = chrec_convert_1 (signed_ct, new_step, at_stmt,
+ use_overflow_semantics);
+ }
new_step = chrec_convert_1 (step_type, new_step, at_stmt, use_overflow_semantics);
if (automatically_generated_chrec_p (new_base)
@@ -1579,4 +1582,3 @@ evolution_function_right_is_integer_cst (const_tree chrec)
return false;
}
}
-