summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4>2014-10-02 17:11:24 +0000
committerjamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4>2014-10-02 17:11:24 +0000
commita49170e326049f7735abd75b56d49cd7edc1cf10 (patch)
tree7d6c69f55294d66d4b2cf492b922fa70dec5a0f1
parent1a46491220ef9e8537ab60d7043b89f7ca4781eb (diff)
downloadppe42-gcc-a49170e326049f7735abd75b56d49cd7edc1cf10.tar.gz
ppe42-gcc-a49170e326049f7735abd75b56d49cd7edc1cf10.zip
2014-10-02 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/63375 * tree-sra.c (build_access_from_expr_1): Disqualify volatile references. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@215806 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-sra.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7029b0b9c16..50cb1c3f541 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-10-02 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/63375
+ * tree-sra.c (build_access_from_expr_1): Disqualify volatile
+ references.
+
2014-10-01 Jakub Jelinek <jakub@redhat.com>
PR debug/63342
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index ffef13d16ff..13f6c4a8e63 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1092,6 +1092,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))
{
OpenPOWER on IntegriCloud