2013-04-03 Marc Glisse <marc.glisse@inria.fr>
authorglisse <glisse@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Apr 2013 12:54:50 +0000 (12:54 +0000)
committerglisse <glisse@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Apr 2013 12:54:50 +0000 (12:54 +0000)
* tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
BIT_FIELD_REF.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197409 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-flow-inline.h

index a9120a4..1acdadb 100644 (file)
@@ -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.
index e3a70bf..d5b2185 100644 (file)
@@ -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:
          {