aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-06-26 12:46:40 +0000
committerRichard Stallman <rms@gnu.org>1992-06-26 12:46:40 +0000
commitf32fd77815fe440a8f9a7a2760e74ea9c7fe5e8c (patch)
tree41b5a2e7d9f7134ea1a21986df3054d2b8960f68
parent21d7516d93aaad8b9760f77be8169582c7975964 (diff)
downloadgcc-f32fd77815fe440a8f9a7a2760e74ea9c7fe5e8c.zip
gcc-f32fd77815fe440a8f9a7a2760e74ea9c7fe5e8c.tar.gz
gcc-f32fd77815fe440a8f9a7a2760e74ea9c7fe5e8c.tar.bz2
*** empty log message ***
From-SVN: r1298
-rw-r--r--gcc/expr.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index f869b58..663a58f 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2352,6 +2352,12 @@ store_constructor (exp, target)
int bitpos;
int unsignedp;
+ /* Just ignore missing fields.
+ We cleared the whole structure, above,
+ if any fields are missing. */
+ if (field == 0)
+ continue;
+
bitsize = TREE_INT_CST_LOW (DECL_SIZE (field));
unsignedp = TREE_UNSIGNED (field);
mode = DECL_MODE (field);
@@ -2867,7 +2873,8 @@ safe_from_p (x, exp)
case 'x':
if (TREE_CODE (exp) == TREE_LIST)
- return (safe_from_p (x, TREE_VALUE (exp))
+ return ((TREE_VALUE (exp) == 0
+ || safe_from_p (x, TREE_VALUE (exp)))
&& (TREE_CHAIN (exp) == 0
|| safe_from_p (x, TREE_CHAIN (exp))));
else