aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-data-ref.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-09-09 09:06:49 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-09-09 09:06:49 +0000
commitffd78b302f00ff445a645d33c895399ddb029420 (patch)
treeeec5fe84243c41390bb8abc1dad97211db6e76a3 /gcc/tree-data-ref.c
parentf9e72719b258491c6b07ea2e55f0a7737f57bf0b (diff)
downloadgcc-ffd78b302f00ff445a645d33c895399ddb029420.zip
gcc-ffd78b302f00ff445a645d33c895399ddb029420.tar.gz
gcc-ffd78b302f00ff445a645d33c895399ddb029420.tar.bz2
re PR middle-end/50333 (internal compiler error: in extract_ops_from_tree, at gimple.h:1909)
2011-09-09 Richard Guenther <rguenther@suse.de> PR middle-end/50333 * tree-data-ref.c (split_constant_offset): Do not try to handle ternary ops. * gcc.dg/torture/pr50333.c: New testcase. From-SVN: r178720
Diffstat (limited to 'gcc/tree-data-ref.c')
-rw-r--r--gcc/tree-data-ref.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 388ea8a..72ecfe9 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -686,7 +686,8 @@ split_constant_offset (tree exp, tree *var, tree *off)
*off = ssize_int (0);
STRIP_NOPS (exp);
- if (tree_is_chrec (exp))
+ if (tree_is_chrec (exp)
+ || get_gimple_rhs_class (TREE_CODE (exp)) == GIMPLE_TERNARY_RHS)
return;
otype = TREE_TYPE (exp);