aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-strlen.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-02-15 12:18:47 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2018-02-15 12:18:47 +0100
commit44e60df333a5fa63428a12887d9c8b5471e1a01b (patch)
tree3ec7961a4fa2f92e2770e60e2c4424051e745a9b /gcc/tree-ssa-strlen.c
parent3eb1eecf29e1e28982b297e565ee291be8636532 (diff)
downloadgcc-44e60df333a5fa63428a12887d9c8b5471e1a01b.zip
gcc-44e60df333a5fa63428a12887d9c8b5471e1a01b.tar.gz
gcc-44e60df333a5fa63428a12887d9c8b5471e1a01b.tar.bz2
re PR tree-optimization/84383 (ICE in maybe_diag_stxncpy_trunc)
PR tree-optimization/84383 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at dstoff nor call operand_equal_p if dstbase is NULL. * gcc.c-torture/compile/pr84383.c: New test. From-SVN: r257684
Diffstat (limited to 'gcc/tree-ssa-strlen.c')
-rw-r--r--gcc/tree-ssa-strlen.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index 94ed2be..09ffa15 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -1878,6 +1878,7 @@ maybe_diag_stxncpy_trunc (gimple_stmt_iterator gsi, tree src, tree cnt)
poly_int64 lhsoff;
tree lhsbase = get_addr_base_and_unit_offset (lhs, &lhsoff);
if (lhsbase
+ && dstbase
&& known_eq (dstoff, lhsoff)
&& operand_equal_p (dstbase, lhsbase, 0))
return false;