aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2014-10-02 18:49:14 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2014-10-02 18:49:14 +0200
commit252c1a465c2b12af14649a30fdf73fbd5d24b66d (patch)
treeebb6b6b0c17c9099a0856aaf9ec879565bd64921 /gcc/tree-sra.c
parentd17f7d8a9dd8ef8e3152a497e0e7eede6c857c87 (diff)
downloadgcc-252c1a465c2b12af14649a30fdf73fbd5d24b66d.zip
gcc-252c1a465c2b12af14649a30fdf73fbd5d24b66d.tar.gz
gcc-252c1a465c2b12af14649a30fdf73fbd5d24b66d.tar.bz2
re PR rtl-optimization/63375 (reordering of reads across fences)
2014-10-02 Martin Jambor <mjambor@suse.cz> PR tree-optimization/63375 * tree-sra.c (build_access_from_expr_1): Disqualify volatile references. From-SVN: r215804
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 8259dba..fb24114 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1064,6 +1064,11 @@ build_access_from_expr_1 (tree expr, gimple stmt, bool write)
"component.");
return NULL;
}
+ if (TREE_THIS_VOLATILE (expr))
+ {
+ disqualify_base_of_expr (expr, "part of a volatile reference.");
+ return NULL;
+ }
switch (TREE_CODE (expr))
{