(get_inner_reference): Delete using alternate mode for bitfield; we
authorRichard Kenner <kenner@gcc.gnu.org>
Thu, 4 Jul 1996 15:44:14 +0000 (11:44 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Thu, 4 Jul 1996 15:44:14 +0000 (11:44 -0400)
don't make bitfields anymore if not needed.

From-SVN: r12398

gcc/expr.c

index 09eff9072b42265c851c0cff6d3baf960570ab59..09fc824c092f779cf06bd3f8177e663e044416dc 100644 (file)
@@ -4240,11 +4240,9 @@ get_inner_reference (exp, pbitsize, pbitpos, poffset, pmode,
            constant = pos, var = integer_zero_node;
 
          *pbitpos += TREE_INT_CST_LOW (constant);
-
-         if (var)
-           offset = size_binop (PLUS_EXPR, offset,
-                                size_binop (EXACT_DIV_EXPR, var,
-                                            size_int (BITS_PER_UNIT)));
+         offset = size_binop (PLUS_EXPR, offset,
+                              size_binop (EXACT_DIV_EXPR, var,
+                                          size_int (BITS_PER_UNIT)));
        }
 
       else if (TREE_CODE (exp) == ARRAY_REF)
@@ -4296,20 +4294,6 @@ get_inner_reference (exp, pbitsize, pbitpos, poffset, pmode,
       exp = TREE_OPERAND (exp, 0);
     }
 
-  /* If this was a bit-field, see if there is a mode that allows direct
-     access in case EXP is in memory.  */
-  if (mode == VOIDmode && *pbitsize != 0 && *pbitpos % *pbitsize == 0)
-    {
-      mode = mode_for_size (*pbitsize,
-                           (TYPE_MODE (TREE_TYPE (orig_exp)) == BLKmode
-                            ? MODE_INT
-                            : GET_MODE_CLASS (TYPE_MODE
-                                              (TREE_TYPE (orig_exp)))),
-                           0);
-      if (mode == BLKmode)
-       mode = VOIDmode;
-    }
-
   if (integer_zerop (offset))
     offset = 0;