OSDN Git Service

* expr.c (store_field): Do nothing except elaborate side-effects if
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 2 May 2001 17:08:19 +0000 (17:08 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 2 May 2001 17:08:19 +0000 (17:08 +0000)
zero-bit field.

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

gcc/ChangeLog
gcc/expr.c

index 7dad94b..8779914 100644 (file)
@@ -1,3 +1,8 @@
+Wed May  2 13:09:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (store_field): Do nothing except elaborate side-effects if
+       zero-bit field.
+
 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * c-lex.c: NULL_PTR -> NULL.
index 0ef52f5..67cafeb 100644 (file)
@@ -5131,6 +5131,11 @@ store_field (target, bitsize, bitpos, mode, exp, value_mode,
   if (TREE_CODE (exp) == ERROR_MARK)
     return const0_rtx;
 
+  /* If we have nothing to store, do nothing unless the expression has
+     side-effects.  */
+  if (bitsize == 0)
+    return expand_expr (exp, const0_rtx, VOIDmode, 0);
+
   if (bitsize < HOST_BITS_PER_WIDE_INT)
     width_mask = ((HOST_WIDE_INT) 1 << bitsize) - 1;