aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2010-01-21 17:04:12 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2010-01-21 17:04:12 +0100
commitfff08961d5f1bb5758b583948c096df864a451bf (patch)
treeb75efd2b1cc59db03e11cc9a9424016b3e4887d7 /gcc
parenta288b14325f9d96277e7b4c5ec4bf566490fede3 (diff)
downloadgcc-fff08961d5f1bb5758b583948c096df864a451bf.zip
gcc-fff08961d5f1bb5758b583948c096df864a451bf.tar.gz
gcc-fff08961d5f1bb5758b583948c096df864a451bf.tar.bz2
tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
2010-01-21 Martin Jambor <mjambor@suse.cz> * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields. From-SVN: r156155
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/tree-sra.c7
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 349e151..011af1d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-21 Martin Jambor <mjambor@suse.cz>
+
+ * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
+
2010-01-21 Andrew Haley <aph@redhat.com>
* gcc.c (process_command): Move lang_specific_driver before
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index dd62cc5..bc729ba 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1288,7 +1288,12 @@ build_ref_for_offset_1 (tree *res, tree type, HOST_WIDE_INT offset,
if (!tr_size || !host_integerp (tr_size, 1))
continue;
size = tree_low_cst (tr_size, 1);
- if (pos > offset || (pos + size) <= offset)
+ if (size == 0)
+ {
+ if (pos != offset)
+ continue;
+ }
+ else if (pos > offset || (pos + size) <= offset)
continue;
if (res)