diff options
author | Richard Guenther <rguenther@suse.de> | 2007-09-22 09:39:41 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2007-09-22 09:39:41 +0000 |
commit | b9e67f8b4b38059390c4ccc0f12285544618feec (patch) | |
tree | 4d3c04a1ba5c20891e6ff625a7e0c0c52afa9b11 /gcc/tree.h | |
parent | 8deb1d3134dd1b9c1b95e861ea00cdc115d52edc (diff) | |
download | gcc-b9e67f8b4b38059390c4ccc0f12285544618feec.zip gcc-b9e67f8b4b38059390c4ccc0f12285544618feec.tar.gz gcc-b9e67f8b4b38059390c4ccc0f12285544618feec.tar.bz2 |
re PR tree-optimization/33146 (ICE in build_polynomial_chrec, at tree-chrec.h:136)
2007-09-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/33146
* fold-const.c (fold_binary): Use the original tree
for negating.
* tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
also changes "sign".
* gcc.c-torture/compile/pr33146.c: New testcase.
From-SVN: r128666
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1019,7 +1019,9 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, && (TYPE_MODE (TREE_TYPE (EXP)) \ == TYPE_MODE (TREE_TYPE (TREE_OPERAND (EXP, 0)))) \ && (TYPE_UNSIGNED (TREE_TYPE (EXP)) \ - == TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (EXP, 0))))) \ + == TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (EXP, 0)))) \ + && (POINTER_TYPE_P (TREE_TYPE (EXP)) \ + == POINTER_TYPE_P (TREE_TYPE (TREE_OPERAND (EXP, 0))))) \ (EXP) = TREE_OPERAND (EXP, 0) /* Like STRIP_NOPS, but don't alter the TREE_TYPE either. */ |