diff options
author | Xinliang David Li <davidxl@google.com> | 2011-02-12 00:12:52 +0000 |
---|---|---|
committer | Xinliang David Li <davidxl@google.com> | 2011-02-12 00:12:52 +0000 |
commit | 6f0bae39eb4b38083fc723ea01b0849a986a5e9b (patch) | |
tree | a9b6229128c042546c7a0a161ca69a3f4c7b9ecd /gcc/tree-chrec.c | |
parent | 97fe0b8df30b12c689d7b98fd43d6a8c4f8b031c (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.c | 8 |
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; } } - |