aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2013-04-03 14:54:50 +0200
committerMarc Glisse <glisse@gcc.gnu.org>2013-04-03 12:54:50 +0000
commit3fa352988912a70aeeea7e8cdd79466c287c18f1 (patch)
tree6b7c7c72bff2b1fe534b35aeca0f7784c1776826 /gcc
parent46e1f4bffb5f5127a2ed1332fb7580ccaf8306dc (diff)
downloadgcc-3fa352988912a70aeeea7e8cdd79466c287c18f1.zip
gcc-3fa352988912a70aeeea7e8cdd79466c287c18f1.tar.gz
gcc-3fa352988912a70aeeea7e8cdd79466c287c18f1.tar.bz2
tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle BIT_FIELD_REF.
2013-04-03 Marc Glisse <marc.glisse@inria.fr> * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle BIT_FIELD_REF. From-SVN: r197409
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-flow-inline.h8
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a9120a4..1acdadb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-03 Marc Glisse <marc.glisse@inria.fr>
+
+ * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
+ BIT_FIELD_REF.
+
2013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h
index e3a70bf..d5b2185 100644
--- a/gcc/tree-flow-inline.h
+++ b/gcc/tree-flow-inline.h
@@ -1246,7 +1246,13 @@ get_addr_base_and_unit_offset_1 (tree exp, HOST_WIDE_INT *poffset,
switch (TREE_CODE (exp))
{
case BIT_FIELD_REF:
- return NULL_TREE;
+ {
+ HOST_WIDE_INT this_off = TREE_INT_CST_LOW (TREE_OPERAND (exp, 2));
+ if (this_off % BITS_PER_UNIT)
+ return NULL_TREE;
+ byte_offset += this_off / BITS_PER_UNIT;
+ }
+ break;
case COMPONENT_REF:
{