diff options
author | Bin Cheng <bin.cheng@arm.com> | 2017-03-02 11:25:11 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2017-03-02 11:25:11 +0000 |
commit | 653a4b32fe72e33bfd4cdd4c25493049524a3805 (patch) | |
tree | d30393d7ea34a1cb5755199e3cb75f71ce085221 /gcc/tree-ssa-loop-ivopts.c | |
parent | 6d03bdcc8196414a7d14d21629257ea746e82385 (diff) | |
download | gcc-653a4b32fe72e33bfd4cdd4c25493049524a3805.zip gcc-653a4b32fe72e33bfd4cdd4c25493049524a3805.tar.gz gcc-653a4b32fe72e33bfd4cdd4c25493049524a3805.tar.bz2 |
re PR tree-optimization/66768 (address space gets lost on literal pointer)
PR tree-optimization/66768
* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
iv_use if base object can't be determined.
gcc/testsuite
* gcc.target/i386/pr66768.c: New test.
From-SVN: r245837
Diffstat (limited to 'gcc/tree-ssa-loop-ivopts.c')
-rw-r--r-- | gcc/tree-ssa-loop-ivopts.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index c9d16b2..f3ad373 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -2324,6 +2324,10 @@ find_interesting_uses_address (struct ivopts_data *data, gimple *stmt, } civ = alloc_iv (data, base, step); + /* Fail if base object of this memory reference is unknown. */ + if (civ->base_object == NULL_TREE) + goto fail; + record_group_use (data, op_p, civ, stmt, USE_ADDRESS); return; |