diff options
author | Alan Lawrence <alan.lawrence@arm.com> | 2016-03-11 12:08:01 +0000 |
---|---|---|
committer | Alan Lawrence <alalaw01@gcc.gnu.org> | 2016-03-11 12:08:01 +0000 |
commit | 5c6706f77e59f7af260c306392a17f6025a934b6 (patch) | |
tree | 170ca632f40e71d1ebad458681428fa6e0c55ba9 /gcc/tree-sra.c | |
parent | 686d390a8fc1c0f72122910844e86d4a412c4e34 (diff) | |
download | gcc-5c6706f77e59f7af260c306392a17f6025a934b6.zip gcc-5c6706f77e59f7af260c306392a17f6025a934b6.tar.gz gcc-5c6706f77e59f7af260c306392a17f6025a934b6.tar.bz2 |
Fix PR/70013
gcc:
PR tree-optimization/70013
* tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
for constant-pool entries.
gcc/testsuite:
* gcc.dg/tree-ssa/sra-20.c: New.
From-SVN: r234138
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r-- | gcc/tree-sra.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 06c39c3..a3fb59c 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -2427,7 +2427,8 @@ analyze_access_subtree (struct access *root, struct access *parent, if (!hole || root->grp_total_scalarization) root->grp_covered = 1; - else if (root->grp_write || TREE_CODE (root->base) == PARM_DECL) + else if (root->grp_write || TREE_CODE (root->base) == PARM_DECL + || constant_decl_p (root->base)) root->grp_unscalarized_data = 1; /* not covered and written to */ return sth_created; } |