Preclude ambiguous conversion from G++ FE range-merge opt. <rdar://problem/9186245>
llvm-svn: 128411
diff --git a/llvm-gcc-4.2/gcc/fold-const.c b/llvm-gcc-4.2/gcc/fold-const.c
index 8e0316e..d6bc8b0 100644
--- a/llvm-gcc-4.2/gcc/fold-const.c
+++ b/llvm-gcc-4.2/gcc/fold-const.c
@@ -4307,13 +4307,11 @@
if (TREE_INT_CST_HIGH (high) == hi && TREE_INT_CST_LOW (high) == lo)
{
- if (TYPE_UNSIGNED (etype))
- {
- etype = lang_hooks.types.signed_type (etype);
- exp = fold_convert (etype, exp);
- }
- return fold_build2 (GT_EXPR, type, exp,
- build_int_cst (etype, 0));
+ /* LLVM LOCAL begin 9186245 */
+ if (!TYPE_UNSIGNED(etype))
+ return fold_build2 (GT_EXPR, type, exp,
+ build_int_cst (etype, 0));
+ /* LLVM LOCAL end 9186245 */
}
}