aboutsummaryrefslogtreecommitdiff
path: root/gcc/convert.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2017-12-21 16:22:04 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2017-12-21 16:22:04 +0000
commit6ffc0c0cf5ada5d74da5c0b68fade4b5ec0e944a (patch)
tree874f8fce52c1819336a08cb53bb1286a42af8cb7 /gcc/convert.c
parentb3eec1d68892e17c6f788a6ee723d44e97498c9d (diff)
downloadgcc-6ffc0c0cf5ada5d74da5c0b68fade4b5ec0e944a.zip
gcc-6ffc0c0cf5ada5d74da5c0b68fade4b5ec0e944a.tar.gz
gcc-6ffc0c0cf5ada5d74da5c0b68fade4b5ec0e944a.tar.bz2
re PR c++/82872 (ICE in ignore_overflows on __PTRDIFF_MAX__ index)
PR c++/82872 * convert.c (convert_to_integer_1) <POINTER_TYPE>: Do not return the shared zero if the input has overflowed. From-SVN: r255944
Diffstat (limited to 'gcc/convert.c')
-rw-r--r--gcc/convert.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/convert.c b/gcc/convert.c
index 0045c12..25aa5ad 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -671,7 +671,7 @@ convert_to_integer_1 (tree type, tree expr, bool dofold)
{
case POINTER_TYPE:
case REFERENCE_TYPE:
- if (integer_zerop (expr))
+ if (integer_zerop (expr) && !TREE_OVERFLOW (expr))
return build_int_cst (type, 0);
/* Convert to an unsigned integer of the correct width first, and from