diff options
author | Richard Biener <rguenther@suse.de> | 2019-05-02 14:05:27 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-05-02 14:05:27 +0000 |
commit | 420ee75d7dbdba35878d7feabea7d30d77b82943 (patch) | |
tree | 7ee11d14d0d48de5300b9cfcc2167211175d9dec /gcc/tree-ssa-structalias.c | |
parent | 5fe6af6dcfe684f9badc57442b168f0153dd8e5a (diff) | |
download | gcc-420ee75d7dbdba35878d7feabea7d30d77b82943.zip gcc-420ee75d7dbdba35878d7feabea7d30d77b82943.tar.gz gcc-420ee75d7dbdba35878d7feabea7d30d77b82943.tar.bz2 |
re PR tree-optimization/89509 (restrict doesnt work with subfield accesses)
2019-05-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/89509
* tree-ssa-structalias.c (compute_dependence_clique): Look
at the first subvar when determining whether it is restrict.
* gcc.dg/torture/restrict-8.c: New testcase.
From-SVN: r270799
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 4a0b02e..2e2b0e8 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -7588,9 +7588,12 @@ compute_dependence_clique (void) EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, j, bi) { varinfo_t oi = get_varinfo (j); + if (oi->head != j) + oi = get_varinfo (oi->head); if (oi->is_restrict_var) { - if (restrict_var) + if (restrict_var + && restrict_var != oi) { if (dump_file && (dump_flags & TDF_DETAILS)) { |